{"id":18538950,"url":"https://github.com/eitrtechnologies/saltenv","last_synced_at":"2025-04-09T17:37:59.498Z","repository":{"id":38542831,"uuid":"471815075","full_name":"eitrtechnologies/saltenv","owner":"eitrtechnologies","description":"Salt binary installation and management tool","archived":false,"fork":false,"pushed_at":"2022-10-24T16:53:10.000Z","size":73,"stargazers_count":7,"open_issues_count":2,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-24T14:38:08.730Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eitrtechnologies.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-19T21:20:28.000Z","updated_at":"2023-01-30T13:54:01.000Z","dependencies_parsed_at":"2022-09-14T16:40:43.132Z","dependency_job_id":null,"html_url":"https://github.com/eitrtechnologies/saltenv","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsaltenv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsaltenv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsaltenv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eitrtechnologies%2Fsaltenv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eitrtechnologies","download_url":"https://codeload.github.com/eitrtechnologies/saltenv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247749963,"owners_count":20989714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T19:45:38.518Z","updated_at":"2025-04-09T17:37:59.230Z","avatar_url":"https://github.com/eitrtechnologies.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=======\nsaltenv\n=======\n\n.. image:: https://img.shields.io/badge/made%20with-pop-teal\n   :alt: Made with pop, a Python implementation of Plugin Oriented Programming\n   :target: https://pop.readthedocs.io/\n\n.. image:: https://img.shields.io/badge/made%20with-python-yellow\n   :alt: Made with Python\n   :target: https://www.python.org/\n\n\nsaltenv is a Salt binary installation and management tool, inspired by `tfenv \u003chttps://github.com/tfutils/tfenv\u003e`__\n\nAbout\n=====\n\nsaltenv allows users to easily install multiple salt binaries built with tiamat.\nThis is useful for standalone machine (desktop/laptop) configuration where the\nfull Salt installation isn't warranted or necessary.\n\nsaltenv is built as a POP application, which allows it to leverage other POP\nplugins in the ecosystem or plug into other applications as necessary.\n\nWhat is POP?\n------------\n\nThis project is built with `pop \u003chttps://pop.readthedocs.io/\u003e`__, a Python-based\nimplementation of *Plugin Oriented Programming (POP)*. POP seeks to bring\ntogether concepts and wisdom from the history of computing in new ways to solve\nmodern computing problems.\n\nFor more information:\n\n* `Intro to Plugin Oriented Programming (POP) \u003chttps://pop-book.readthedocs.io/en/latest/\u003e`__\n* `pop-awesome \u003chttps://gitlab.com/saltstack/pop/pop-awesome\u003e`__\n* `pop-create \u003chttps://gitlab.com/saltstack/pop/pop-create/\u003e`__\n\nGetting Started\n===============\n\nPrerequisites\n-------------\n\n* Python 3.7+\n* git *(if installing from source, or contributing to the project)*\n\nInstallation\n------------\n\n.. note::\n\n   If wanting to contribute to the project, and setup your local development\n   environment, see the ``CONTRIBUTING.rst`` document in the source repository\n   for this project.\n\nIf wanting to use ``saltenv``, you can do so by either\ninstalling from PyPI or from source.\n\nInstall from PyPI\n+++++++++++++++++\n\n.. code-block:: bash\n\n   pip install saltenv\n\nInstall from source\n+++++++++++++++++++\n\n.. code-block:: bash\n\n   # clone repo\n   git clone git@github.com/eitrtechnologies/saltenv.git\n   cd saltenv\n\n   # Setup venv\n   python3 -m venv .venv --prompt saltenv\n   source .venv/bin/activate\n   pip install -e .\n\nUsage\n=====\n\n.. code-block:: bash\n\n   usage: run.py [-h] [--config CONFIG] [--config-template] [--log-datefmt LOG_DATEFMT] [--log-file LOG_FILE] [--log-fmt-console LOG_FMT_CONSOLE]\n              [--log-fmt-logfile LOG_FMT_LOGFILE] [--log-handler-options [LOG_HANDLER_OPTIONS ...]] [--log-level LOG_LEVEL] [--log-plugin LOG_PLUGIN] [--repo-url REPO_URL]\n              [--saltenv-dir SALTENV_DIR] [--version]\n              {init,install,list,list-remote,pin,uninstall,use,version} ...\n\n   positional arguments:\n     {init,install,list,list-remote,pin,uninstall,use,version}\n\n   options:\n     -h, --help            show this help message and exit\n     --config CONFIG, -c CONFIG\n                           Load extra options from a configuration file onto hub.OPT.saltenv\n     --config-template     Output a config template for this command\n     --repo-url REPO_URL, -r REPO_URL\n                           Salt single binary repository location. Version directories are expected here.\n     --saltenv-dir SALTENV_DIR, -d SALTENV_DIR\n                           Working directory for saltenv downloads\n     --version             Display version information\n\n   Logging Options:\n     --log-datefmt LOG_DATEFMT\n                           The date format to display in the logs\n     --log-file LOG_FILE   The location of the log file\n     --log-fmt-console LOG_FMT_CONSOLE\n                           The log formatting used in the console\n     --log-fmt-logfile LOG_FMT_LOGFILE\n                           The format to be given to log file messages\n     --log-handler-options [LOG_HANDLER_OPTIONS ...]\n                           kwargs that should be passed to the logging handler used by the log_plugin\n     --log-level LOG_LEVEL\n                           Set the log level, either quiet, info, warning, debug or error\n     --log-plugin LOG_PLUGIN\n                           The logging plugin to use\n\n\nExamples\n--------\n\nBasic salt binary setup with version 3004:\n\n.. code-block:: bash\n\n   # Example CLI commands\n\n\n   # List remote versions\n\n   $ saltenv list-remote\n   3004rc1\n   3004\n   3003.3\n   3003\n\n\n   # Install version 3004\n\n   $ saltenv install 3004\n   Processing tarball...\n\n\n   # Use version 3004\n\n   $ saltenv use 3004\n\n\n   # List local versions\n\n   $ saltenv list\n   * 3004 set by /home/nmhughes/.saltenv/version\n     3003.3\n     3003\n\n\n   # Initialize the saltenv environment, which will point to the salt binaries\n\n   $ saltenv init\n   Add the saltenv bin directory to your PATH:\n\n       echo 'export PATH=\"$HOME/.saltenv/bin:$PATH\"' \u003e\u003e ~/.bashrc\n   OR:\n       echo 'export PATH=\"$HOME/.saltenv/bin:$PATH\"' \u003e\u003e ~/.zshrc\n\n   $ echo 'export PATH=\"$HOME/.saltenv/bin:$PATH\"' \u003e\u003e ~/.zshrc\n   $ source ~/.zshrc\n\n\n   # Kick the tires!\n\n   $ salt call test.version\n   local:\n       3004\n\n\nCommon Issues\n=============\n\n* If this error is encountered, you might be running on Arch and need to install the ``libxcrypt-compat`` package.\n\n.. code-block:: text\n\n    [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\n\n\nRoadmap\n=======\n\nReference the `open issues \u003chttps://github.com/eitrtechnologies/saltenv/issues\u003e`__\nfor a list of proposed features (and known issues).\n\nAcknowledgements\n================\n\n* `Img Shields \u003chttps://shields.io\u003e`__ for making repository badges easy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feitrtechnologies%2Fsaltenv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feitrtechnologies%2Fsaltenv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feitrtechnologies%2Fsaltenv/lists"}