Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the cl-wol.cli Reference Manual, version 0.1.0, generated automatically by Declt version 3.0 "Montgomery Scott" on Sun May 15 04:19:18 2022 GMT+0.
• Introduction | What cl-wol.cli is all about | |
• Systems | The systems documentation | |
• Modules | The modules documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
* cl-wol =cl-wol= is a Common Lisp system and CLI application, which can power on remote systems using [[https://en.wikipedia.org/wiki/Wake-on-LAN][Wake on LAN (WoL)]]. * Requirements - [[https://www.quicklisp.org/beta/][Quicklisp]] * Installation =cl-wol= is not yet in Quicklisp, so in order to install it you will need to clone the repo and add it to your [[https://www.quicklisp.org/beta/faq.html][Quicklisp local-projects]]. #+begin_src shell cd ~/quicklisp/local-projects git clone https://github.com/dnaeon/cl-wol.git #+end_src If you are installing the CLI application, you will also need a recent version of [[https://github.com/dnaeon/clingon][clingon]], as the one found in Quicklisp is not yet updated to the latest release. * Systems =cl-wol= provides the following systems. The =cl-wol.core= system provides the core functionallity for powering on remote systems using [[https://en.wikipedia.org/wiki/Wake-on-LAN][Wake on LAN (WoL)]] by broadcasting a magic packet to a destination port and address. The =cl-wol.test= system provides the test suite of =cl-wol.core=. The =cl-wol.cli= system provides a command-line interface application, built on top of =cl-wol.core=, which comes with support for looking up hosts and their MAC addresses from a local SQLite database. * Usage The following formats of MAC addresses are supported by =cl-wol=. - As a string in =AA:BB:CC:DD:EE:FF= format - As a string in =AA-BB-CC-DD-EE-FF= format - As a =(simple-array (unsigned-byte 8) (6))= vector ** API The following section describes how to use the =cl-wol.core= system. First, start your Lisp REPL and load the system. #+begin_src lisp CL-USER> (ql:quickload :cl-wol.core) To load "cl-wol.core": Load 1 ASDF system: cl-wol.core ; Loading "cl-wol.core" (:CL-WOL.CORE) #+end_src In order to wake a remote system identified by a given MAC address we first need to create a new instance of =CL-WOL.CORE:MAGIC-PACKET=. #+begin_src lisp CL-USER> (defparameter *magic-packet* (cl-wol.core:make-magic-packet "aa:bb:cc:dd:ee:ff")) *MAGIC-PACKET* #+end_src The =CL-WOL.CORE:MAKE-MAGIC-PACKET= function accepts an optional second argument, which represents a =SecureOn= password. The format of the =SecureOn= password is the same as the one for MAC addresses. For example, if you need to create a magic packet with =SecureOn= password appended to the payload you can evaluate the following expression. #+begin_src lisp CL-USER> (defparameter *magic-packet* (cl-wol.core:make-magic-packet "aa:bb:cc:dd:ee:ff" "00-00-00-00-00-00")) *MAGIC-PACKET* #+end_src Another way to create a magic packet is by providing a =(simple-array (unsigned-byte 8) (6)= vector to =CL-WOL.CORE:MAKE-MAGIC-PACKET=. You can also use the =CL-WOL.CORE:MAKE-OCTET-VECTOR= function to create a new octet vector. For example. #+begin_src lisp CL-USER> (defparameter *magic-packet* (cl-wol.core:make-magic-packet (cl-wol.core:make-octet-vector #(1 2 3 4 5 6)))) *MAGIC-PACKET* #+end_src Now that we have a magic packet we can broadcast it to a given port and address. In order to do that we will use the =CL-WOL.CORE:WAKE= generic function. The following example broadcasts the magic packet to =255.255.255.255= on port =7=. #+begin_src lisp CL-USER> (cl-wol.core:wake *magic-packet* "255.255.255.255" 7) T #+end_src ** CLI [[./images/wol-demo.gif]] You can build the CLI application of =cl-wol= by executing the following command. #+begin_src shell make cli #+end_src The default Lisp implementation is SBCL, so if you are using a different implementation simply pass the =LISP= environment variable before invoking the =cli= target. This command builds the CLI application using Clozure Common Lisp for example. #+begin_src shell LISP=ccl make cli #+end_src Once the app is built you can find the executable in the =bin= directory of the =cl-wol.cli= system, which you can later install somewhere in your =PATH=, e.g. #+begin_src shell sudo install ./bin/wol /usr/local/bin #+end_src You can also generate Zsh completions for the CLI application by executing the =wol zsh-completions= sub-command, e.g. #+begin_src shell wol zsh-completions > ~/.zsh-completions/_wol #+end_src You can wake up remote systems by using the =wol wake= sub-command. Multiple MAC addresses can be specified on the command-line as separate arguments, e.g. #+begin_src shell $ wol wake 00:01:02:03:04:05 aa:bb:cc:dd:ee:ff Waking up 00:01:02:03:04:05 ... Waking up aa:bb:cc:dd:ee:ff ... #+end_src Instead of remembering MAC addresses by heart the =cl-wol= CLI application supports storing MAC addresses in a local SQLite database, which can be looked up by the various sub-commands. First, we need to initialize a new database file using the =wol init-db= sub-command. #+begin_src shell $ wol init-db --database wol.db[14:25:36] cl-migratum.core core.lisp (apply-pending) - Found 1 pending migration(s) to be applied [14:25:36] cl-migratum.core core.lisp (apply-and-register) - Applying migration 20211222183337 - add_hosts_table #+end_src Once the database is initialized you can add hosts to it. For example: #+begin_src shell wol add-host --database wol.db --address aa:bb:cc:dd:ee:ff --name box-01 wol add-host --database wol.db --address 01:02:03:04:05:06 --name box-02 #+end_src Listing the hosts from the database is done via the =wol list-hosts= sub-command. #+begin_src shell $ wol list-hosts --database wol.db +----+--------+-------------------+---------------------+ | ID | NAME | ADDR | CREATED AT | +----+--------+-------------------+---------------------+ | 1 | box-01 | aa:bb:cc:dd:ee:ff | 2021-12-26 14:27:19 | | 2 | box-02 | 01:02:03:04:05:06 | 2021-12-26 14:27:30 | +----+--------+-------------------+---------------------+ #+end_src You can now wake up hosts by referring to their names. In order to do that use the =--database= and =--name= options of the =wol wake= sub-command. The =--name= option can be repeated multiple times in order to refer to different hosts, e.g. #+begin_src shell $ wol wake --database wol.db --name box-01 --name box-02 Waking up 01:02:03:04:05:06 ... Waking up aa:bb:cc:dd:ee:ff ... #+end_src Deleting hosts from the database is done via the =wol delete-host= sub-command, e.g. #+begin_src shell wol delete-host --database wol.db box-01 box-02 #+end_src * Tests Tests are provided as part of the =:cl-wol.test= system. In order to run the tests you can evaluate the following expressions from your Lisp REPL. #+begin_src lisp CL-USER> (ql:quickload :cl-wol.test) CL-USER> (asdf:test-system :cl-wol.test) #+end_src Or you can run the tests using the =test= target instead, e.g. #+begin_src shell make test #+end_src Here's how to run the tests against SBCL, CCL and ECL for example. #+begin_src shell for lisp in sbcl ccl ecl; do echo "Running tests using ${lisp} ..." LISP=${lisp} make test > ${lisp}-tests.out done #+end_src * Docker Images You can build and run a Docker image of the CLI application by executing the following commands. #+begin_src shell docker build -t cl-wol.cli:latest -f Dockerfile . #+end_src A separate image can be built for running the test suite of =cl-wol=. #+begin_src shell docker build -t cl-wol.test:latest -f Dockerfile.tests . docker run --rm cl-wol.test:latest #+end_src * Contributing =cl-wol= is hosted on [[https://github.com/dnaeon/cl-wol][Github]]. Please contribute by reporting issues, suggesting features or by sending patches using pull requests. * License This project is Open Source and licensed under the [[http://opensource.org/licenses/BSD-2-Clause][BSD License]]. * Authors - Marin Atanasov Nikolov
Next: Modules, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The cl-wol.cli system | ||
• The cl-wol.core system |
Next: The cl-wol․core system, Previous: Systems, Up: Systems [Contents][Index]
cl-wol.cli
Marin Atanasov Nikolov <dnaeon@gmail.com>
Marin Atanasov Nikolov <dnaeon@gmail.com>
BSD 2-Clause
CLI built on top of the cl-wol.core system
* cl-wol
=cl-wol= is a Common Lisp system and CLI application, which can power
on remote systems using [[https://en.wikipedia.org/wiki/Wake-on-LAN][Wake on LAN (WoL)]].
* Requirements
- [[https://www.quicklisp.org/beta/][Quicklisp]]
* Installation
=cl-wol= is not yet in Quicklisp, so in order to install it you will need to
clone the repo and add it to your [[https://www.quicklisp.org/beta/faq.html][Quicklisp local-projects]].
#+begin_src shell
cd ~/quicklisp/local-projects
git clone https://github.com/dnaeon/cl-wol.git
#+end_src
If you are installing the CLI application, you will also need a recent
version of [[https://github.com/dnaeon/clingon][clingon]], as the one found in Quicklisp is not yet updated
to the latest release.
* Systems
=cl-wol= provides the following systems.
The =cl-wol.core= system provides the core functionallity for powering
on remote systems using [[https://en.wikipedia.org/wiki/Wake-on-LAN][Wake on LAN (WoL)]] by broadcasting a magic
packet to a destination port and address.
The =cl-wol.test= system provides the test suite of =cl-wol.core=.
The =cl-wol.cli= system provides a command-line interface application,
built on top of =cl-wol.core=, which comes with support for looking up
hosts and their MAC addresses from a local SQLite database.
* Usage
The following formats of MAC addresses are supported by =cl-wol=.
- As a string in =AA:BB:CC:DD:EE:FF= format
- As a string in =AA-BB-CC-DD-EE-FF= format
- As a =(simple-array (unsigned-byte 8) (6))= vector
** API
The following section describes how to use the =cl-wol.core= system.
First, start your Lisp REPL and load the system.
#+begin_src lisp
CL-USER> (ql:quickload :cl-wol.core)
To load "cl-wol.core":
Load 1 ASDF system:
cl-wol.core
; Loading "cl-wol.core"
(:CL-WOL.CORE)
#+end_src
In order to wake a remote system identified by a given MAC address we
first need to create a new instance of =CL-WOL.CORE:MAGIC-PACKET=.
#+begin_src lisp
CL-USER> (defparameter *magic-packet*
(cl-wol.core:make-magic-packet "aa:bb:cc:dd:ee:ff"))
*MAGIC-PACKET*
#+end_src
The =CL-WOL.CORE:MAKE-MAGIC-PACKET= function accepts an optional
second argument, which represents a =SecureOn= password. The format of
the =SecureOn= password is the same as the one for MAC addresses. For
example, if you need to create a magic packet with =SecureOn= password
appended to the payload you can evaluate the following expression.
#+begin_src lisp
CL-USER> (defparameter *magic-packet*
(cl-wol.core:make-magic-packet "aa:bb:cc:dd:ee:ff" "00-00-00-00-00-00"))
*MAGIC-PACKET*
#+end_src
Another way to create a magic packet is by providing a =(simple-array
(unsigned-byte 8) (6)= vector to =CL-WOL.CORE:MAKE-MAGIC-PACKET=. You
can also use the =CL-WOL.CORE:MAKE-OCTET-VECTOR= function to create a
new octet vector. For example.
#+begin_src lisp
CL-USER> (defparameter *magic-packet*
(cl-wol.core:make-magic-packet (cl-wol.core:make-octet-vector #(1 2 3 4 5 6))))
*MAGIC-PACKET*
#+end_src
Now that we have a magic packet we can broadcast it to a given port
and address. In order to do that we will use the =CL-WOL.CORE:WAKE=
generic function. The following example broadcasts the magic packet
to =255.255.255.255= on port =7=.
#+begin_src lisp
CL-USER> (cl-wol.core:wake *magic-packet* "255.255.255.255" 7)
T
#+end_src
** CLI
[[./images/wol-demo.gif]]
You can build the CLI application of =cl-wol= by executing the
following command.
#+begin_src shell
make cli
#+end_src
The default Lisp implementation is SBCL, so if you are using a
different implementation simply pass the =LISP= environment variable
before invoking the =cli= target. This command builds the CLI
application using Clozure Common Lisp for example.
#+begin_src shell
LISP=ccl make cli
#+end_src
Once the app is built you can find the executable in the =bin=
directory of the =cl-wol.cli= system, which you can later install
somewhere in your =PATH=, e.g.
#+begin_src shell
sudo install ./bin/wol /usr/local/bin
#+end_src
You can also generate Zsh completions for the CLI application by
executing the =wol zsh-completions= sub-command, e.g.
#+begin_src shell
wol zsh-completions > ~/.zsh-completions/_wol
#+end_src
You can wake up remote systems by using the =wol wake=
sub-command. Multiple MAC addresses can be specified on the
command-line as separate arguments, e.g.
#+begin_src shell
$ wol wake 00:01:02:03:04:05 aa:bb:cc:dd:ee:ff
Waking up 00:01:02:03:04:05 ...
Waking up aa:bb:cc:dd:ee:ff ...
#+end_src
Instead of remembering MAC addresses by heart the =cl-wol= CLI
application supports storing MAC addresses in a local SQLite database,
which can be looked up by the various sub-commands.
First, we need to initialize a new database file using the =wol
init-db= sub-command.
#+begin_src shell
$ wol init-db –database wol.db
<INFO> [14:25:36] cl-migratum.core core.lisp (apply-pending) -
Found 1 pending migration(s) to be applied
<INFO> [14:25:36] cl-migratum.core core.lisp (apply-and-register) -
Applying migration 20211222183337 - add_hosts_table
#+end_src
Once the database is initialized you can add hosts to it. For example:
#+begin_src shell
wol add-host –database wol.db –address aa:bb:cc:dd:ee:ff –name box-01
wol add-host –database wol.db –address 01:02:03:04:05:06 –name box-02
#+end_src
Listing the hosts from the database is done via the =wol list-hosts=
sub-command.
#+begin_src shell
$ wol list-hosts –database wol.db
+—-+——–+——————-+———————+
| ID | NAME | ADDR | CREATED AT |
+—-+——–+——————-+———————+
| 1 | box-01 | aa:bb:cc:dd:ee:ff | 2021-12-26 14:27:19 |
| 2 | box-02 | 01:02:03:04:05:06 | 2021-12-26 14:27:30 |
+—-+——–+——————-+———————+
#+end_src
You can now wake up hosts by referring to their names. In order to do
that use the =–database= and =–name= options of the =wol wake=
sub-command. The =–name= option can be repeated multiple times in
order to refer to different hosts, e.g.
#+begin_src shell
$ wol wake –database wol.db –name box-01 –name box-02
Waking up 01:02:03:04:05:06 ...
Waking up aa:bb:cc:dd:ee:ff ...
#+end_src
Deleting hosts from the database is done via the =wol delete-host=
sub-command, e.g.
#+begin_src shell
wol delete-host –database wol.db box-01 box-02
#+end_src
* Tests
Tests are provided as part of the =:cl-wol.test= system.
In order to run the tests you can evaluate the following expressions
from your Lisp REPL.
#+begin_src lisp
CL-USER> (ql:quickload :cl-wol.test)
CL-USER> (asdf:test-system :cl-wol.test)
#+end_src
Or you can run the tests using the =test= target instead, e.g.
#+begin_src shell
make test
#+end_src
Here’s how to run the tests against SBCL, CCL and ECL for example.
#+begin_src shell
for lisp in sbcl ccl ecl; do
echo "Running tests using ${lisp} ..."
LISP=${lisp} make test > ${lisp}-tests.out
done
#+end_src
* Docker Images
You can build and run a Docker image of the CLI application by
executing the following commands.
#+begin_src shell
docker build -t cl-wol.cli:latest -f Dockerfile .
#+end_src
A separate image can be built for running the test suite of =cl-wol=.
#+begin_src shell
docker build -t cl-wol.test:latest -f Dockerfile.tests .
docker run –rm cl-wol.test:latest
#+end_src
* Contributing
=cl-wol= is hosted on [[https://github.com/dnaeon/cl-wol][Github]]. Please contribute by reporting issues,
suggesting features or by sending patches using pull requests.
* License
This project is Open Source and licensed under the [[http://opensource.org/licenses/BSD-2-Clause][BSD License]].
* Authors
- Marin Atanasov Nikolov <dnaeon@gmail.com>
0.1.0
cl-wol.cli.asd (file)
Previous: The cl-wol․cli system, Up: Systems [Contents][Index]
cl-wol.core
Marin Atanasov Nikolov <dnaeon@gmail.com>
Marin Atanasov Nikolov <dnaeon@gmail.com>
BSD 2-Clause
Core Wake On Lan (WoL) Common Lisp System
* cl-wol
=cl-wol= is a Common Lisp system and CLI application, which can power
on remote systems using [[https://en.wikipedia.org/wiki/Wake-on-LAN][Wake on LAN (WoL)]].
* Requirements
- [[https://www.quicklisp.org/beta/][Quicklisp]]
* Installation
=cl-wol= is not yet in Quicklisp, so in order to install it you will need to
clone the repo and add it to your [[https://www.quicklisp.org/beta/faq.html][Quicklisp local-projects]].
#+begin_src shell
cd ~/quicklisp/local-projects
git clone https://github.com/dnaeon/cl-wol.git
#+end_src
If you are installing the CLI application, you will also need a recent
version of [[https://github.com/dnaeon/clingon][clingon]], as the one found in Quicklisp is not yet updated
to the latest release.
* Systems
=cl-wol= provides the following systems.
The =cl-wol.core= system provides the core functionallity for powering
on remote systems using [[https://en.wikipedia.org/wiki/Wake-on-LAN][Wake on LAN (WoL)]] by broadcasting a magic
packet to a destination port and address.
The =cl-wol.test= system provides the test suite of =cl-wol.core=.
The =cl-wol.cli= system provides a command-line interface application,
built on top of =cl-wol.core=, which comes with support for looking up
hosts and their MAC addresses from a local SQLite database.
* Usage
The following formats of MAC addresses are supported by =cl-wol=.
- As a string in =AA:BB:CC:DD:EE:FF= format
- As a string in =AA-BB-CC-DD-EE-FF= format
- As a =(simple-array (unsigned-byte 8) (6))= vector
** API
The following section describes how to use the =cl-wol.core= system.
First, start your Lisp REPL and load the system.
#+begin_src lisp
CL-USER> (ql:quickload :cl-wol.core)
To load "cl-wol.core":
Load 1 ASDF system:
cl-wol.core
; Loading "cl-wol.core"
(:CL-WOL.CORE)
#+end_src
In order to wake a remote system identified by a given MAC address we
first need to create a new instance of =CL-WOL.CORE:MAGIC-PACKET=.
#+begin_src lisp
CL-USER> (defparameter *magic-packet*
(cl-wol.core:make-magic-packet "aa:bb:cc:dd:ee:ff"))
*MAGIC-PACKET*
#+end_src
The =CL-WOL.CORE:MAKE-MAGIC-PACKET= function accepts an optional
second argument, which represents a =SecureOn= password. The format of
the =SecureOn= password is the same as the one for MAC addresses. For
example, if you need to create a magic packet with =SecureOn= password
appended to the payload you can evaluate the following expression.
#+begin_src lisp
CL-USER> (defparameter *magic-packet*
(cl-wol.core:make-magic-packet "aa:bb:cc:dd:ee:ff" "00-00-00-00-00-00"))
*MAGIC-PACKET*
#+end_src
Another way to create a magic packet is by providing a =(simple-array
(unsigned-byte 8) (6)= vector to =CL-WOL.CORE:MAKE-MAGIC-PACKET=. You
can also use the =CL-WOL.CORE:MAKE-OCTET-VECTOR= function to create a
new octet vector. For example.
#+begin_src lisp
CL-USER> (defparameter *magic-packet*
(cl-wol.core:make-magic-packet (cl-wol.core:make-octet-vector #(1 2 3 4 5 6))))
*MAGIC-PACKET*
#+end_src
Now that we have a magic packet we can broadcast it to a given port
and address. In order to do that we will use the =CL-WOL.CORE:WAKE=
generic function. The following example broadcasts the magic packet
to =255.255.255.255= on port =7=.
#+begin_src lisp
CL-USER> (cl-wol.core:wake *magic-packet* "255.255.255.255" 7)
T
#+end_src
** CLI
[[./images/wol-demo.gif]]
You can build the CLI application of =cl-wol= by executing the
following command.
#+begin_src shell
make cli
#+end_src
The default Lisp implementation is SBCL, so if you are using a
different implementation simply pass the =LISP= environment variable
before invoking the =cli= target. This command builds the CLI
application using Clozure Common Lisp for example.
#+begin_src shell
LISP=ccl make cli
#+end_src
Once the app is built you can find the executable in the =bin=
directory of the =cl-wol.cli= system, which you can later install
somewhere in your =PATH=, e.g.
#+begin_src shell
sudo install ./bin/wol /usr/local/bin
#+end_src
You can also generate Zsh completions for the CLI application by
executing the =wol zsh-completions= sub-command, e.g.
#+begin_src shell
wol zsh-completions > ~/.zsh-completions/_wol
#+end_src
You can wake up remote systems by using the =wol wake=
sub-command. Multiple MAC addresses can be specified on the
command-line as separate arguments, e.g.
#+begin_src shell
$ wol wake 00:01:02:03:04:05 aa:bb:cc:dd:ee:ff
Waking up 00:01:02:03:04:05 ...
Waking up aa:bb:cc:dd:ee:ff ...
#+end_src
Instead of remembering MAC addresses by heart the =cl-wol= CLI
application supports storing MAC addresses in a local SQLite database,
which can be looked up by the various sub-commands.
First, we need to initialize a new database file using the =wol
init-db= sub-command.
#+begin_src shell
$ wol init-db –database wol.db
<INFO> [14:25:36] cl-migratum.core core.lisp (apply-pending) -
Found 1 pending migration(s) to be applied
<INFO> [14:25:36] cl-migratum.core core.lisp (apply-and-register) -
Applying migration 20211222183337 - add_hosts_table
#+end_src
Once the database is initialized you can add hosts to it. For example:
#+begin_src shell
wol add-host –database wol.db –address aa:bb:cc:dd:ee:ff –name box-01
wol add-host –database wol.db –address 01:02:03:04:05:06 –name box-02
#+end_src
Listing the hosts from the database is done via the =wol list-hosts=
sub-command.
#+begin_src shell
$ wol list-hosts –database wol.db
+—-+——–+——————-+———————+
| ID | NAME | ADDR | CREATED AT |
+—-+——–+——————-+———————+
| 1 | box-01 | aa:bb:cc:dd:ee:ff | 2021-12-26 14:27:19 |
| 2 | box-02 | 01:02:03:04:05:06 | 2021-12-26 14:27:30 |
+—-+——–+——————-+———————+
#+end_src
You can now wake up hosts by referring to their names. In order to do
that use the =–database= and =–name= options of the =wol wake=
sub-command. The =–name= option can be repeated multiple times in
order to refer to different hosts, e.g.
#+begin_src shell
$ wol wake –database wol.db –name box-01 –name box-02
Waking up 01:02:03:04:05:06 ...
Waking up aa:bb:cc:dd:ee:ff ...
#+end_src
Deleting hosts from the database is done via the =wol delete-host=
sub-command, e.g.
#+begin_src shell
wol delete-host –database wol.db box-01 box-02
#+end_src
* Tests
Tests are provided as part of the =:cl-wol.test= system.
In order to run the tests you can evaluate the following expressions
from your Lisp REPL.
#+begin_src lisp
CL-USER> (ql:quickload :cl-wol.test)
CL-USER> (asdf:test-system :cl-wol.test)
#+end_src
Or you can run the tests using the =test= target instead, e.g.
#+begin_src shell
make test
#+end_src
Here’s how to run the tests against SBCL, CCL and ECL for example.
#+begin_src shell
for lisp in sbcl ccl ecl; do
echo "Running tests using ${lisp} ..."
LISP=${lisp} make test > ${lisp}-tests.out
done
#+end_src
* Docker Images
You can build and run a Docker image of the CLI application by
executing the following commands.
#+begin_src shell
docker build -t cl-wol.cli:latest -f Dockerfile .
#+end_src
A separate image can be built for running the test suite of =cl-wol=.
#+begin_src shell
docker build -t cl-wol.test:latest -f Dockerfile.tests .
docker run –rm cl-wol.test:latest
#+end_src
* Contributing
=cl-wol= is hosted on [[https://github.com/dnaeon/cl-wol][Github]]. Please contribute by reporting issues,
suggesting features or by sending patches using pull requests.
* License
This project is Open Source and licensed under the [[http://opensource.org/licenses/BSD-2-Clause][BSD License]].
* Authors
- Marin Atanasov Nikolov <dnaeon@gmail.com>
0.1.0
cl-wol.core.asd (file)
core (module)
Modules are listed depth-first from the system components tree.
• The cl-wol.cli/migrations module | ||
• The cl-wol.cli/cli module | ||
• The cl-wol.core/core module |
Next: The cl-wol․cli/cli module, Previous: Modules, Up: Modules [Contents][Index]
cl-wol.cli (system)
src/cli/migrations/
Next: The cl-wol․core/core module, Previous: The cl-wol․cli/migrations module, Up: Modules [Contents][Index]
migrations (module)
cl-wol.cli (system)
src/cli/
Previous: The cl-wol․cli/cli module, Up: Modules [Contents][Index]
cl-wol.core (system)
src/core/
core.lisp (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files | ||
• Static files |
Next: Static files, Previous: Files, Up: Files [Contents][Index]
Next: The cl-wol․core․asd file, Previous: Lisp files, Up: Lisp files [Contents][Index]
cl-wol.cli.asd
cl-wol.cli (system)
Next: The cl-wol․cli/cli/package․lisp file, Previous: The cl-wol․cli․asd file, Up: Lisp files [Contents][Index]
cl-wol.core.asd
cl-wol.core (system)
Next: The cl-wol․cli/cli/db-utils․lisp file, Previous: The cl-wol․core․asd file, Up: Lisp files [Contents][Index]
cli (module)
src/cli/package.lisp
Next: The cl-wol․cli/cli/wake․lisp file, Previous: The cl-wol․cli/cli/package․lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
cli (module)
src/cli/db-utils.lisp
Next: The cl-wol․cli/cli/zsh-completions․lisp file, Previous: The cl-wol․cli/cli/db-utils․lisp file, Up: Lisp files [Contents][Index]
db-utils.lisp (file)
cli (module)
src/cli/wake.lisp
Next: The cl-wol․cli/cli/print-doc․lisp file, Previous: The cl-wol․cli/cli/wake․lisp file, Up: Lisp files [Contents][Index]
wake.lisp (file)
cli (module)
src/cli/zsh-completions.lisp
Next: The cl-wol․cli/cli/init-db․lisp file, Previous: The cl-wol․cli/cli/zsh-completions․lisp file, Up: Lisp files [Contents][Index]
zsh-completions.lisp (file)
cli (module)
src/cli/print-doc.lisp
Next: The cl-wol․cli/cli/add-host․lisp file, Previous: The cl-wol․cli/cli/print-doc․lisp file, Up: Lisp files [Contents][Index]
print-doc.lisp (file)
cli (module)
src/cli/init-db.lisp
Next: The cl-wol․cli/cli/delete-host․lisp file, Previous: The cl-wol․cli/cli/init-db․lisp file, Up: Lisp files [Contents][Index]
init-db.lisp (file)
cli (module)
src/cli/add-host.lisp
Next: The cl-wol․cli/cli/list-hosts․lisp file, Previous: The cl-wol․cli/cli/add-host․lisp file, Up: Lisp files [Contents][Index]
add-host.lisp (file)
cli (module)
src/cli/delete-host.lisp
Next: The cl-wol․cli/cli/main․lisp file, Previous: The cl-wol․cli/cli/delete-host․lisp file, Up: Lisp files [Contents][Index]
delete-host.lisp (file)
cli (module)
src/cli/list-hosts.lisp
Next: The cl-wol․core/core/core․lisp file, Previous: The cl-wol․cli/cli/list-hosts․lisp file, Up: Lisp files [Contents][Index]
list-hosts.lisp (file)
cli (module)
src/cli/main.lisp
main (function)
Previous: The cl-wol․cli/cli/main․lisp file, Up: Lisp files [Contents][Index]
core (module)
src/core/core.lisp
simple-octet-vector (type)
Previous: Lisp files, Up: Files [Contents][Index]
• The cl-wol.cli/migrations/20211222183337-add_hosts_table.down.sql file | ||
• The cl-wol.cli/migrations/20211222183337-add_hosts_table.up.sql file |
Next: The cl-wol․cli/migrations/20211222183337-add_hosts_table․up․sql file, Previous: Static files, Up: Static files [Contents][Index]
migrations (module)
src/cli/migrations/20211222183337-add_hosts_table.down.sql
Previous: The cl-wol․cli/migrations/20211222183337-add_hosts_table․down․sql file, Up: Static files [Contents][Index]
migrations (module)
src/cli/migrations/20211222183337-add_hosts_table.up.sql
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The cl-wol-cli-system package | ||
• The cl-wol.cli package | ||
• The cl-wol-core-system package | ||
• The cl-wol.core package |
Next: The cl-wol․cli package, Previous: Packages, Up: Packages [Contents][Index]
cl-wol.cli.asd
Next: The cl-wol-core-system package, Previous: The cl-wol-cli-system package, Up: Packages [Contents][Index]
package.lisp (file)
wol.cli
common-lisp
main (function)
Next: The cl-wol․core package, Previous: The cl-wol․cli package, Up: Packages [Contents][Index]
cl-wol.core.asd
Previous: The cl-wol-core-system package, Up: Packages [Contents][Index]
core.lisp (file)
wol.core
common-lisp
simple-octet-vector (type)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported special variables | ||
• Exported functions | ||
• Exported generic functions | ||
• Exported conditions | ||
• Exported classes |
Next: Exported functions, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
Regex used to parse MAC addresses
core.lisp (file)
Next: Exported generic functions, Previous: Exported special variables, Up: Exported definitions [Contents][Index]
Main CLI entrypoint
main.lisp (file)
Make an octet vector from the given contents
core.lisp (file)
Parses a string representation of a MAC address or SecureOn password into a list of bytes
core.lisp (file)
Next: Exported conditions, Previous: Exported functions, Up: Exported definitions [Contents][Index]
Encodes the OBJECT and returns a vector of bytes representing the payload for waking up a remote system
core.lisp (file)
Returns the string representation of the MAC address associated with the OBJECT
core.lisp (file)
Returns a vector of bytes representing the MAC address associated with the OBJECT
core.lisp (file)
Destination MAC address
Creates a new magic packet destined to the given ADDRESS. If PASSWORD is specified it represents a SecureOn password
core.lisp (file)
core.lisp (file)
Returns the SecureOn password associated with the OBJECT as a vector of octets
core.lisp (file)
Optional SecureOn password
Wakes up a remote system by encoding the OBJECT and sending a broadcast packet to the given ADDRESS and PORT
core.lisp (file)
Next: Exported classes, Previous: Exported generic functions, Up: Exported definitions [Contents][Index]
A condition which is signalled upon an invalid MAC address
core.lisp (file)
simple-error (condition)
mac-address (method)
:address
(quote (error "must specify mac address"))
mac-address (generic function)
A condition which is signalled upon invalid SecureOn password
core.lisp (file)
simple-error (condition)
secureon-password (method)
:password
(quote (error "must specify password"))
secureon-password (generic function)
A condition which is signalled when invalid payload is generated
Previous: Exported conditions, Up: Exported definitions [Contents][Index]
A class which represents the Magic Packet used to wake remote systems
core.lisp (file)
standard-object (class)
Destination MAC address
:address
(error "must specify mac address")
mac-octets (generic function)
Optional SecureOn password
:password
secureon-password (generic function)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal functions | ||
• Internal types |
Next: Internal types, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
Returns the command for adding hosts to the database file
add-host.lisp (file)
Handler for the ‘add-host’ command
add-host.lisp (file)
Returns the options of the ‘add-host’ command
add-host.lisp (file)
Execute a given statement against the database
db-utils.lisp (file)
Returns the path to the migration files
db-utils.lisp (file)
Returns the command for deleting hosts from the database file
delete-host.lisp (file)
Handler for the ‘delete-host’ command
delete-host.lisp (file)
Returns the options of the ‘delete-host’ command
delete-host.lisp (file)
Disconnects from the database
db-utils.lisp (file)
Fetches the host with the given NAME from the database
db-utils.lisp (file)
Returns the list of MAC addresses to wake up based on the provided options and arguments from the command-line
wake.lisp (file)
Returns the command for initializing the database
init-db.lisp (file)
Handler for the ‘init-db’ command
init-db.lisp (file)
Returns the options of the ‘init-db’ command
init-db.lisp (file)
Returns the command for listing hosts from the database file
list-hosts.lisp (file)
Handler for the ‘list-hosts’ command
list-hosts.lisp (file)
Returns the options of the ‘list-hosts’ command
list-hosts.lisp (file)
Creates a new database connection to the given DB-PATH
db-utils.lisp (file)
Migrates the database to the latest version
db-utils.lisp (file)
Returns a command which will print the app’s documentation
print-doc.lisp (file)
print-doc.lisp (file)
Get the list of columns for a given table
db-utils.lisp (file)
Get details about a given table
db-utils.lisp (file)
Returns the top-level command
main.lisp (file)
The top-level handler
main.lisp (file)
Returns the list of top-level sub-commands
main.lisp (file)
Returns the command for waking up remote systems
wake.lisp (file)
The handler for the ‘wake’ command
wake.lisp (file)
Returns the options for the ‘wake’ command
wake.lisp (file)
Returns a command for generating Zsh completions script
zsh-completions.lisp (file)
zsh-completions.lisp (file)
Previous: Internal functions, Up: Internal definitions [Contents][Index]
core.lisp (file)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | C F L M S |
---|
Jump to: | C F L M S |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | A D E F G I L M P S T W Z |
---|
Jump to: | A D E F G I L M P S T W Z |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
A P S |
---|
Jump to: | *
A P S |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | C I M P S T |
---|
Jump to: | C I M P S T |
---|