Skip to content

Commit

Permalink
Merge pull request ohmyzsh#343 from giddie/plugin-wakeonlan
Browse files Browse the repository at this point in the history
Plugin to make WOL nice & easy
  • Loading branch information
robbyrussell committed Dec 15, 2011
2 parents 047fcdc + 7ba54d1 commit c133f41
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
29 changes: 29 additions & 0 deletions plugins/wakeonlan/README
Original file line number Diff line number Diff line change
@@ -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 changes: 4 additions & 0 deletions plugins/wakeonlan/_wake
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#compdef wake
#autoload

_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0
14 changes: 14 additions & 0 deletions plugins/wakeonlan/wakeonlan.plugin.zsh
Original file line number Diff line number Diff line change
@@ -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"
}

0 comments on commit c133f41

Please sign in to comment.