diff options
Diffstat (limited to 'oh-my-zsh/plugins/wakeonlan')
-rw-r--r-- | oh-my-zsh/plugins/wakeonlan/README.md | 43 | ||||
-rw-r--r-- | oh-my-zsh/plugins/wakeonlan/_wake | 4 | ||||
-rw-r--r-- | oh-my-zsh/plugins/wakeonlan/wakeonlan.plugin.zsh | 14 |
3 files changed, 61 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/wakeonlan/README.md b/oh-my-zsh/plugins/wakeonlan/README.md new file mode 100644 index 0000000..3fcb6d7 --- /dev/null +++ b/oh-my-zsh/plugins/wakeonlan/README.md @@ -0,0 +1,43 @@ +# wakeonlan + +This plugin provides a wrapper around the "wakeonlan" tool available from most +distributions' package repositories, or from [the following website](https://github.com/jpoliv/wakeonlan). + +To use it, add `wakeonlan` to the plugins array in your zshrc file: + +```zsh +plugins=(... wakeonlan) +``` + +## Usage + +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: + +```console +$ wake leto +``` + +The available device names will be autocompleted, so: + +```console +$ 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. diff --git a/oh-my-zsh/plugins/wakeonlan/_wake b/oh-my-zsh/plugins/wakeonlan/_wake new file mode 100644 index 0000000..4ab10d3 --- /dev/null +++ b/oh-my-zsh/plugins/wakeonlan/_wake @@ -0,0 +1,4 @@ +#compdef wake +#autoload + +_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0 diff --git a/oh-my-zsh/plugins/wakeonlan/wakeonlan.plugin.zsh b/oh-my-zsh/plugins/wakeonlan/wakeonlan.plugin.zsh new file mode 100644 index 0000000..6cef7d4 --- /dev/null +++ b/oh-my-zsh/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -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" +} |