{"id":16960720,"url":"https://github.com/descent098/pystall","last_synced_at":"2025-04-11T22:11:21.077Z","repository":{"id":106656801,"uuid":"231264178","full_name":"Descent098/pystall","owner":"Descent098","description":"A system to automate installation and configuration of resources.","archived":false,"fork":false,"pushed_at":"2022-11-29T03:40:57.000Z","size":117,"stargazers_count":2,"open_issues_count":4,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T18:09:55.004Z","etag":null,"topics":["api","application-installer","application-management","automation","package","package-management","pypi","pypi-package","python","python3","script"],"latest_commit_sha":null,"homepage":"https://pystall.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Descent098.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Descent098"]}},"created_at":"2020-01-01T21:08:02.000Z","updated_at":"2023-08-15T20:15:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"1009285d-c795-4c31-b2ec-67008b898ec3","html_url":"https://github.com/Descent098/pystall","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Descent098%2Fpystall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Descent098%2Fpystall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Descent098%2Fpystall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Descent098%2Fpystall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Descent098","download_url":"https://codeload.github.com/Descent098/pystall/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248487695,"owners_count":21112191,"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":["api","application-installer","application-management","automation","package","package-management","pypi","pypi-package","python","python3","script"],"created_at":"2024-10-13T22:49:52.854Z","updated_at":"2025-04-11T22:11:21.055Z","avatar_url":"https://github.com/Descent098.png","language":"Python","funding_links":["https://github.com/sponsors/Descent098"],"categories":[],"sub_categories":[],"readme":"![pystall logo](https://raw.githubusercontent.com/Descent098/pystall/master/docs/img/pystall-logo.png)\n\n\n\nA system to automate installation and configuration of resources.\n\n## Table of Contents\n- [Features](#features)\n- [Quick-start](#quick-start)\n  - [Installation](#installation)\n    - [From PyPi](#from-pypi)\n    - [From Source](#from-source)\n  - [Basic Usage](#basic-usage)\n    - [Custom defined resources](#custom-defined-resources)\n    - [Built-in resource library](#built-in-resource-library)\n    - [Logging](#logging)\n    - [Additional Docs](#additional-docs)\n- [Roadmap](#roadmap)\n- [Assumptions](#assumptions)\n- [What is Pystall?](#what-is-pystall)\n\n## Features\n- Pull from a [built in resource library](https://pystall.readthedocs.io/en/latest/resource-library-list/) for quick installation\n- Define your own [custom local and remote resources](https://pystall.readthedocs.io/en/latest/quick-start/#custom-defined-resources)\n- Built in [logging](#logging)\n- The ability to build scrips into a [no dependency binary](https://pystall.readthedocs.io/en/latest/creating-binary-distributions/)\n- Specification of [resources in files](https://pystall.readthedocs.io/en/latest/file-resources/)\n- And more\n\n## Quick-start\n\n### Installation\n\n\n\n#### From PyPi\n\nYou can install the project from PyPi using ```pip install pystall``` or ```pip3 install pystall```\n\n\n\n#### From Source\n\nclone this source repo using either the github button or ```git clone https://github.com/Descent098/pystall```\n\nThen in the root directory (the one with setup.py) run ```pip install .``` or ```sudo pip3 install .``` This will install the package and it's dependencies.\n\n\n\n### Basic Usage\n\n#### Custom defined resources\n\nThis script shows downloading the python 3 installer (a .exe) the go installer (a .msi) and a logo image (a .png).\n\n```python\nfrom pystall.core import EXEResource, MSIResource, StaticResource, build\n\npython = EXEResource(\"python-installer\", \"https://www.python.org/ftp/python/3.8.1/python-3.8.1.exe\")\n\ngo = MSIResource(\"Golang\", \"https://dl.google.com/go/go1.13.5.windows-amd64.msi\")\n\nlogo = StaticResource(\"Wallpaper\", \".png\", \"https://canadiancoding.ca/static/img/post-banners/python-post-banner.9bf19b390832.png\")\n\nbuild(python, go, logo)\n```\n\n\n\n#### Built-in resource library\n\nThere is also the option to use the built-in library of resources that have been setup.\n\n```python\nfrom pystall.core import build\nfrom pystall.library import python, go, micro\n\nbuild(python, go, micro)\n```\n\n\n\n#### Logging\n\nIf you want logs while the script runs you can use the show_logs() function in the core library\n\n```python\nfrom pystall.core import build, show_logs\nfrom pystall.library import python, go, chrome, micro\n\nshow_logs()\n\nbuild(python, go, chrome, micro)\n```\n\n\n\n#### Additional Docs\n\nFor a full list of available library resources, how to extend the framework for specific functionality, and a development guide if you would like to contribute,  check the docs: https://pystall.readthedocs.io/en/latest/\n\n\n\n## Roadmap\n\nFor more detailed roadmap check out the project planning board on github: https://github.com/Descent098/pystall/projects/1\n\n\n\n## Assumptions\n\n- You are running Windows, Linux (currently debian-based, with arch support in future), or Mac OS (on the way)\n- Your machine is x86 64-bit based (no I won't be adding 32-bit support, but arm support is coming)\n- You have an internet connection (if downloading resources and not using local copies of installers)\n\n\n\n## What is Pystall?\n\n**Pystall is:**\n\n- A system to write single scripts to setup environments across platforms\n- A relatively boilerplate-free method of writing system configurations\n- A way to create easy to distribute binaries to handle complicated installations.\n- Meant for end-users looking for a simple syntax to create scripts\n\n\n\n**Pystall is not:**\n\n- A server management utility\n- An infrastructure management utility\n- An orchestration replacement (ansible, jenkins, puppet, chef etc.)\n- Meant for consistent (in terms of frequency) updating to existing packages (though i'm not opposed to this in the future necessarily)\n- An **ABSOLUTELY** automated system, due to the amount of tradeoffs of extensibility I have opted to leave installers to be configured as they run (i.e. running the python installer exe still requires you to do the configuration).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdescent098%2Fpystall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdescent098%2Fpystall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdescent098%2Fpystall/lists"}