Skip to main content

Idem binary installation and management tool

Project description

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

idemenv is an Idem binary installation and management tool, inspired by tfenv

About

idemenv allows users to easily install multiple idem binaries built with tiamat. This is useful for switching between idem configuration code bases written for different idem versions.

idemenv is built as a POP application, which allows it to leverage other POP plugins in the ecosystem or plug into other applications as necessary.

What is POP?

This project is built with pop, a Python-based implementation of Plugin Oriented Programming (POP). POP seeks to bring together concepts and wisdom from the history of computing in new ways to solve modern computing problems.

For more information:

Getting Started

Prerequisites

  • Python 3.7+

  • git (if installing from source, or contributing to the project)

Installation

If wanting to use idemenv, you can do so by either installing from PyPI or from source.

Install from PyPI

pip install idemenv

Install from source

# clone repo
git clone git@github.com/eitrtechnologies/idemenv.git
cd idemenv

# Setup venv
python3 -m venv .venv --prompt idemenv
source .venv/bin/activate
pip install -e .

Usage

usage: run.py [-h] [--config CONFIG] [--config-template] [--log-datefmt LOG_DATEFMT] [--log-file LOG_FILE] [--log-fmt-console LOG_FMT_CONSOLE]
           [--log-fmt-logfile LOG_FMT_LOGFILE] [--log-handler-options [LOG_HANDLER_OPTIONS ...]] [--log-level LOG_LEVEL] [--log-plugin LOG_PLUGIN] [--repo-url REPO_URL]
           [--idemenv-dir SALTENV_DIR] [--version]
           {init,install,list,list-remote,pin,uninstall,use,version} ...

positional arguments:
  {init,install,list,list-remote,pin,uninstall,use,version}

options:
  -h, --help            show this help message and exit
  --config CONFIG, -c CONFIG
                        Load extra options from a configuration file onto hub.OPT.idemenv
  --config-template     Output a config template for this command
  --repo-url REPO_URL, -r REPO_URL
                        Idem single binary repository location. Version directories are expected here.
  --idemenv-dir IDEMENV_DIR, -d IDEMENV_DIR
                        Working directory for idemenv downloads
  --version             Display version information

Logging Options:
  --log-datefmt LOG_DATEFMT
                        The date format to display in the logs
  --log-file LOG_FILE   The location of the log file
  --log-fmt-console LOG_FMT_CONSOLE
                        The log formatting used in the console
  --log-fmt-logfile LOG_FMT_LOGFILE
                        The format to be given to log file messages
  --log-handler-options [LOG_HANDLER_OPTIONS ...]
                        kwargs that should be passed to the logging handler used by the log_plugin
  --log-level LOG_LEVEL
                        Set the log level, either quiet, info, warning, debug or error
  --log-plugin LOG_PLUGIN
                        The logging plugin to use

Examples

Basic idem binary setup:

# Example CLI commands


# List remote versions

$ idemenv list-remote
3004rc1
3004
3003.3
3003


# Install latest version

$ idemenv install latest
Processing tarball...


# Use latest version

$ idemenv use latest


# List local versions

$ idemenv list
* 3004 set by /home/nmhughes/.idemenv/version
  3003.3
  3003


# Initialize the idemenv environment, which will point to the idem binaries

$ idemenv init
Add the idemenv bin directory to your PATH:

    echo 'export PATH="$HOME/.idemenv/bin:$PATH"' >> ~/.bashrc
OR:
    echo 'export PATH="$HOME/.idemenv/bin:$PATH"' >> ~/.zshrc

$ echo 'export PATH="$HOME/.idemenv/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc


# Kick the tires!

$ idem exec test.version
local:
    3004

Common Issues

  • If this error is encountered, you might be running on Arch and need to install the libxcrypt-compat package.

[230732] Error loading Python lib '/tmp/_MEIAEr7dd/libpython3.7m.so.1.0': dlopen: libcrypt.so.1: cannot open shared object file: No such file or directory

Roadmap

Reference the open issues for a list of proposed features (and known issues).

Acknowledgements

Project details


Download files

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

Source Distribution

idemenv-0.2.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

idemenv-0.2.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file idemenv-0.2.0.tar.gz.

File metadata

  • Download URL: idemenv-0.2.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.5

File hashes

Hashes for idemenv-0.2.0.tar.gz
Algorithm Hash digest
SHA256 77834902897106b11773e010e9c61da49a22db9e3a576c5561d2bc902314ffc8
MD5 1b51f2a6f5293012c2941aeaf8163c65
BLAKE2b-256 b86a14ddaa50f8a10a1115475b89b5191090857cbe21e96251a5ee32af551bf7

See more details on using hashes here.

File details

Details for the file idemenv-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: idemenv-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.5

File hashes

Hashes for idemenv-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f422229d0dbbdee4991b16f1a48750e907dd93fd804f5f28ddfc6dfe805a206
MD5 ed981e9e125e16b093173f6eaa2acbd1
BLAKE2b-256 ba0f706d676a4a01dda8f3342fd76cc945429db12e9dae17ffd3d9aa85401f82

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page