mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-22 05:40:08 +00:00
Merge pull request #343 from giddie/plugin-wakeonlan
Plugin to make WOL nice & easy
This commit is contained in:
commit
c133f41833
3 changed files with 47 additions and 0 deletions
29
plugins/wakeonlan/README
Normal file
29
plugins/wakeonlan/README
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
This plugin provides a wrapper around the "wakeonlan" tool available from most
|
||||||
|
distributions' package repositories, or from the following website:
|
||||||
|
|
||||||
|
http://gsd.di.uminho.pt/jpo/software/wakeonlan/
|
||||||
|
|
||||||
|
In order to use this wrapper, create the ~/.wakeonlan directory, and place in
|
||||||
|
that directory one file for each device you would like to be able to wake. Give
|
||||||
|
the file a name that describes the device, such as its hostname. Each file
|
||||||
|
should contain a line with the mac address of the target device and the network
|
||||||
|
broadcast address.
|
||||||
|
|
||||||
|
For instance, there might be a file ~/.wakeonlan/leto with the following
|
||||||
|
contents:
|
||||||
|
|
||||||
|
00:11:22:33:44:55:66 192.168.0.255
|
||||||
|
|
||||||
|
To wake that device, use the following command:
|
||||||
|
|
||||||
|
# wake leto
|
||||||
|
|
||||||
|
The available device names will be autocompleted, so:
|
||||||
|
|
||||||
|
# wake <tab>
|
||||||
|
|
||||||
|
...will suggest "leto", along with any other configuration files that were
|
||||||
|
placed in the ~/.wakeonlan directory.
|
||||||
|
|
||||||
|
For more information regarding the configuration file format, check the
|
||||||
|
wakeonlan man page.
|
4
plugins/wakeonlan/_wake
Normal file
4
plugins/wakeonlan/_wake
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#compdef wake
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0
|
14
plugins/wakeonlan/wakeonlan.plugin.zsh
Normal file
14
plugins/wakeonlan/wakeonlan.plugin.zsh
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
function wake() {
|
||||||
|
local config_file="$HOME/.wakeonlan/$1"
|
||||||
|
if [[ ! -f "$config_file" ]]; then
|
||||||
|
echo "ERROR: There is no configuration file at \"$config_file\"."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( ! $+commands[wakeonlan] )); then
|
||||||
|
echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
wakeonlan -f "$config_file"
|
||||||
|
}
|
Loading…
Reference in a new issue