浏览代码

Merge pull request #343 from giddie/plugin-wakeonlan

Plugin to make WOL nice & easy
Robby Russell 13 年之前
父节点
当前提交
c133f41833
共有 3 个文件被更改,包括 47 次插入0 次删除
  1. 29 0
      plugins/wakeonlan/README
  2. 4 0
      plugins/wakeonlan/_wake
  3. 14 0
      plugins/wakeonlan/wakeonlan.plugin.zsh

+ 29 - 0
plugins/wakeonlan/README

@@ -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 - 0
plugins/wakeonlan/_wake

@@ -0,0 +1,4 @@
+#compdef wake
+#autoload
+
+_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0

+ 14 - 0
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"
+}