Python 3 lib & CLI (Command Line Interface) for Hesperides
A changelog is available here: CHANGELOG.md
hesperides-cli
is published on Pypi. It can be installed simply with pip
:
pip install hesperides-cli
After cloning this repo and optionally creating a virtualenv:
pip install -e .
With a valid ~/.pypirc
:
- update
CHANGELOG.md
- bump version in
hesperidescli/hesperidescli.py
&git commit
&git push
python setup.py sdist
twine upload dist/*
- perform a release on GitGub, including the description added to
CHANGELOG.md
hesperides [OPTIONS] COMMAND [ARGS]
To get all hesperides commands, just type:
hesperides
This client configuration is stored locally in ~/.hesperides/
:
To set up your environment and create a local user profile by answering to a few questions:
hesperides set-conf [PROFILE_NAME]
If you have multiple profiles, you can switch between them with:
hesperides use-profile [PROFILE_NAME]
To try your configuration, type one of these commands:
hesperides get-versions
hesperides get-user
You can using the following Dockerfile
as a starting point:
FROM python:3
RUN pip install hesperides-cli
ARG USERNAME
ARG PASSWORD
RUN hesperides set-conf --username $USERNAME --password $PASSWORD --hesperides-endpoint https://hesperides.example --ignore-ssl-warnings
ENTRYPOINT ["hesperides"]
The resulting Docker image will contain some secret credentials, which is not a good practice, but makes it really easy to use for demos:
docker build --build-arg USERNAME=... --build-arg PASSWORD=... -t hesperides-cli .
docker run --rm hesperides-cli get-versions
If your goal is instead to generate files in your Docker image at startup time,
you can start by putting something like this in your ENTRYPOINT
:
hesperides write-files --app $APP --ptf $PTF
For this use case, you can use get-properties --export
.
Here is an example of usage, that could be included in a Gitlab CD/CI step for instance:
tmp_file=$(mktemp) && hesperides get-properties --app APP --ptf PTF --path '#ROOT#test-module#1.1#WORKINGCOPY' --export > $tmp_file && source $tmp_file && rm $tmp_file
When using this tool with a Python version installed through Windows,
in combination with a Linux-like shell environment (e.g. Git Bash),
the files generated by write-files
may not be written were you expect,
because your Python executable will interpret Unix path like /var/tmp
as relative to your current drive (C:
, D:
...).
In this situation, use this command to find out where is the location of your root (/
) for Python:
python -c 'import os; os.chdir("/"); print(os.getcwd())'