summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/wakeonlan
diff options
context:
space:
mode:
Diffstat (limited to 'oh-my-zsh/plugins/wakeonlan')
-rw-r--r--oh-my-zsh/plugins/wakeonlan/README.md43
-rw-r--r--oh-my-zsh/plugins/wakeonlan/_wake4
-rw-r--r--oh-my-zsh/plugins/wakeonlan/wakeonlan.plugin.zsh14
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"
+}