Skip to main content

Liberty CLI is a user-facing command-line client for interacting with Librem One or another Liberty Deckplan Host (LDH).

Project description

Liberty CLI

project | code | tracker | pypi

Liberty CLI is a user-facing command-line client for interacting with Librem One or another Liberty Deckplan Host (LDH).

Dive into https://liberty.one for LDH design and development.

Installation

The preferred way to install Liberty CLI is with your package manager. The recommended package name is ldh-client. For example:

sudo apt install ldh-client  # Debian-based

or

pipx install ldh-client  # Python-based

Usage

The following commands are available:

# INFO
liberty show info

# TUNNEL
liberty setup tunnel

For instructions and options add --help, for example:

liberty setup tunnel --help

Prototype quickstart

To install prototype components on PureOS or another Debian-based system from scratch:

sudo apt install pipx
pipx ensurepath
pipx install ldh-client
liberty setup dependencies  # triggers sudo prompt
liberty setup prototype

To update the prototype:

pipx upgrade ldh-client  # or pipx upgrade-all
liberty setup dependencies  # triggers sudo prompt
liberty setup prototype

To remove the prototype:

liberty remove dependencies  # optional, triggers sudo prompt
liberty remove prototype
pipx uninstall ldh-client
sudo apt remove pipx  # optional

Installation (from source)

If you'd prefer to run from source...

  1. Install Python 3.x and pipenv. (See https://docs.pipenv.org/install/ for a tutorial.)

  2. Install prerequisites:

     sudo apt install gir1.2-goa-1.0 libcairo2-dev /
     libgirepository1.0-dev libssl-dev /
     network-manager-openvpn-gnome python3-dev
    
  3. Install optional prerequisites:

     sudo apt install rclone yad
    
  4. Get source:

     git clone https://source.puri.sm/liberty/tool/client.git ldh_client
    
  5. Install with pipenv:

     cd ldh_client
     pipenv install --dev -e .
    

Usage (from source)

cd ldh_client
pipenv run liberty show info

Prototype quickstart (from source)

Ensure that ~/.local/bin is on your $PATH:

sudo apt install pipx
pipx ensurepath
# pipx is used only to set the path
# you may prefer to modify your .bashrc or some other method

Follow the from-source instructions, then create the liberty-dev executable as follows:

cd ldh_client/liberty-dev
./bootstrap
# creates ~/.local/bin/liberty-dev and associated symlinks
# re-run this any time you move the ldh_client folder

Now install prototype components:

liberty-dev setup dependencies
liberty-dev setup prototype --dev

Note that setup prototype always overrides existing prototype components. This means you can point to either liberty or liberty-dev, never both.

To remove the prototype components and liberty-dev:

liberty-dev remove dependencies  # optional, triggers sudo prompt
liberty-dev remove prototype
cd ldh_client/liberty-dev
./remove

Troubleshooting

When debugging, troubleshooting or asking for help please include the output of:

liberty show info

or

liberty show info --gui
# the same information in a graphical window (supports copy-and-paste)

Replace liberty with pipenv run liberty or liberty-dev as appropriate.

Build wheel package (and optionally upload)

Follow these instructions to build Liberty CLI as a Python package:

git clone https://source.puri.sm/liberty/tool/client.git ldh_client
cd ldh_client
pipenv install --dev
pipenv shell
# optionally edit default.strict.yaml
python setup.py sdist bdist_wheel

If everything works as expected you should end up with the files:

  • dist/ldh_client-<version>-py3-none-any.whl
  • dist/ldh_client-<version>.tar.gz

You can now optionally upload the created Python package to PyPI using twine:

twine upload dist/*

Sharing and contributions

Liberty CLI (LDH client)
https://source.puri.sm/liberty/tool/client
Copyright 2018-2020 Purism SPC
SPDX-License-Identifier: AGPL-3.0-or-later

Shared under AGPL-3.0-or-later. We adhere to the Community Covenant 1.0 without modification, and certify origin per DCO 1.1 with a signed-off-by line. Contributions under the same terms are welcome.

For details see:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ldh-client, version 0.0.11
Filename, size File type Python version Upload date Hashes
Filename, size ldh_client-0.0.11-py3-none-any.whl (24.5 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ldh_client-0.0.11.tar.gz (33.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page