Package: pystall
A system to automate installation and configuration of resources.Table of ContentsFeaturesQuick-startInstallationFrom PyPiFrom SourceBasic UsageCustom defined resourcesBuilt-in resource libraryLoggingAdditional DocsRoadmapAssumptionsWhat is Pystall?FeaturesPull from abuilt in resource libraryfor quick installationDefine your owncustom local and remote resourcesBuilt inloggingThe ability to build scrips into ano dependency binarySpecification ofresources in filesAnd moreQuick-startInstallationFrom PyPiYou can install the project from PyPi usingpip install pystallorpip3 install pystallFrom Sourceclone this source repo using either the github button orgit clone https://github.com/Descent098/pystallThen in the root directory (the one with setup.py) runpip install .orsudo pip3 install .This will install the package and it's dependencies.Basic UsageCustom defined resourcesThis script shows downloading the python 3 installer (a .exe) the go installer (a .msi) and a logo image (a .png).frompystall.coreimportEXEResource,MSIResource,StaticResource,buildpython=EXEResource("python-installer","https://www.python.org/ftp/python/3.8.1/python-3.8.1.exe")go=MSIResource("Golang","https://dl.google.com/go/go1.13.5.windows-amd64.msi")logo=StaticResource("Wallpaper",".png","https://canadiancoding.ca/static/img/post-banners/python-post-banner.9bf19b390832.png")build(python,go,logo)Built-in resource libraryThere is also the option to use the built-in library of resources that have been setup.frompystall.coreimportbuildfrompystall.libraryimportpython,go,microbuild(python,go,micro)LoggingIf you want logs while the script runs you can use the show_logs() function in the core libraryfrompystall.coreimportbuild,show_logsfrompystall.libraryimportpython,go,chrome,microshow_logs()build(python,go,chrome,micro)Additional DocsFor 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/RoadmapFor more detailed roadmap check out the project planning board on github:https://github.com/Descent098/pystall/projects/1AssumptionsYou are running Windows, Linux (currently debian-based, with arch support in future), or Mac OS (on the way)Your machine is x86 64-bit based (no I won't be adding 32-bit support, but arm support is coming)You have an internet connection (if downloading resources and not using local copies of installers)What is Pystall?Pystall is:A system to write single scripts to setup environments across platformsA relatively boilerplate-free method of writing system configurationsA way to create easy to distribute binaries to handle complicated installations.Meant for end-users looking for a simple syntax to create scriptsPystall is not:A server management utilityAn infrastructure management utilityAn orchestration replacement (ansible, jenkins, puppet, chef etc.)Meant for consistent (in terms of frequency) updating to existing packages (though i'm not opposed to this in the future necessarily)AnABSOLUTELYautomated 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).ChangelogV 0.3.0 September 15th 2020Focus for this release is to make the whole API more user and dev friendly.Features:Notification to let people know that they have to agree to the TOS of each piece of softwareAbility to specify resources as dependenciesResource file format; use YAML files to specify a set of resourcesAdded download progress barsCreated function to add folders to path (will be implemented in next release)Development QOL:Added user docs to the repo under /docsReadTheDocs Site updateAdded test suiteAdded deepsource.io for quality validationAdded type hints to all functions/methodsMoved from universal planning board to version specific planning boardsV 0.2.0 January 15th 2020The focus for this release was debian linux support, and implementing the current feature sets in debian linux as much as possible.Features:Added Support for local files and not just download links.deb support.tar.gz support (just extracting no binary installation stuff)Installation of custom PPA based packagesInstallation of apt packagesPorting all available resource library resourcesDevelopment QOL:Added nox for automationDistribution buildingDistribution releasingRunning testsBegan implementing functionality and runtime compatibility tests with pytestV 0.1.0 January 5th 2020Features:Created base resource class that can be extended to support multiple file typesAbility to install binaries from URL or local path (currently limited to .exe and .msi)Ability to download static assets from the web (image files, video files etc)Ability to download and extract zip archivesInitial library of predefined resources (15 in total)