mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-21 21:30:09 +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