Basic Instructions
Installation
You install CircLink via pip:
pip install circlink
Currently, only Linux and macOS are supported due to the implementation of how the tool forks the process.
Starting a Link
You can start a link using the start command, and then the local “read” path and
“write” path on the device. So to link a file named file1.txt to a folder named
cool_files on your board, you would use:
circlink start file1.txt cool_files
This will also create cool_files/ (and any other parent folders) on your device
if they do not already exist. If you wanted to write it to the root folder of
the CircuitPython device, use . for the write path.
You can also use glob patterns for files using *. Note that you’ll have to
escape the asterisk, like with quotes:
circlink start '*'.txt .
If you want to use the glob pattern recursively, you can add the --recursive
flag.
Once a link is started all relevant files are pushed to the board, and any changes in the specified file(s) (including new or deleted files matching a glob pattern if used) are pushed to the CircuitPython device. Additionally, the command line will print out the link ID for the link created.
Other options for starting a link are as follows:
--name NAMEgives the link a name attribute ofNAME, which may be useful in remember what the file or glob pattern represents.--pathspecifies that the write path is based on the current working directory in the command line. This can be useful if for some reasoncirclinkisn’t detecting the CircuitPython device.--wipe-destforces a recursive wipe of the write path directory before starting the link.--skip-presaveskips the initial save of all linked files when starting a link. This can be useful if you want to start a link, but only want files that change since that time to be pushed.
Viewing Link Details
To view details about a link, you can use the view command along with the
link ID. So to view information about the link with ID 1, you would use:
circlink view 1
This will list information about the link such as ID, name, whether it is active,
the read and write paths, and even the process ID numbers corresponding to the
link. Instead of the list ID, you can also use all or last to view
information about all the links or just the last one created, respectively.
Stopping a Link
To stop a link, use the stop command along with the Link ID:
circlink stop 1
You can also use all and last to stop all links or just the last one
created, respectively.
Restarting a Link
To restart a link, use the restart command along with the link ID:
circlink restart 1
This will start a new link (assuming it was stopped) with the same
settings as before (except for the --wipe-dest and --skip-presave
settings that were originally used, which are now at they’re default).
Note that this means the link will change link IDs. This command will
also clear the old link from the link history.
If you want to keep the --wipe-dest and --skip-presave flags, you’ll
need to start a new link using the start command.
Clearing the Link History
To clear a link from the history, you can use the clear command with the
link ID:
circlink clear 1
Note that this will only work on links that are not actively running. But as
they say in Yiddish, “Mann Tracht, Un Gott Lacht”, and sometimes a link truly
has stopped but wasn’t recorded as such. If you ever need to clear the link
history manually of a link that still shows up, you can use the --force flag:
circlink clear 1 --force
If you If the link is still running, you’ll get some nasty error text though.
You can also use all and last instead of the link ID to clear all links
or just the last one created, respectively.
Resetting
If you’re downloading a new version of circlink containing API changes, or
you just need to obliterate all the settings and links, you can use the
--reset callback to wipe the configuration settings for circlink. New
files will be reinitialized when the tool next runs, but this will allow you
to start from scratch:
circlink --reset
Version
You can check the version of circlink using the --version callback:
circlink --version