Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/release'
Browse files Browse the repository at this point in the history
  • Loading branch information
cyclopticnerve committed Nov 20, 2022
1 parent 1c3c131 commit 54f3c76
Show file tree
Hide file tree
Showing 21 changed files with 1,216 additions and 774 deletions.
181 changes: 181 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
# ------------------------------------------------------------------------------
# Filename: .gitignore / \
# Project : Installerator | () |
# Date : 10/28/2022 | |
# Author : cyclopticnerve | \____/ |
# License : WTFPLv2 \ /
# ------------------------------------------------------------------------------

# shamelessly stolen from
# https://github.com/github/gitignore/blob/main/Python.gitignore
# (and reformatted)

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the
# code is intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in
# version control.
# However, in case of collaboration, if having platform-specific dependencies
# or dependencies having no cross-platform support, pipenv may install
# dependencies that don't work, or not install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock
# in version control.
# This is especially recommended for binary packages to ensure
# reproducibility, and is more commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in
# version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended
# to not include it in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g.
# github.com/David-OConnor/pyflow and github.com/pdm-project/pdm

__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore
# that can be found at
# https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a
# more nuclear option (not recommended) you can uncomment the following to
# ignore the entire idea folder.
#.idea/

# -)
3 changes: 0 additions & 3 deletions .vscode/settings.json

This file was deleted.

13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.
9 changes: 9 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ------------------------------------------------------------------------------
# Filename: MANIFEST.in / \
# Project : Installerator | () |
# Date : 10/28/2022 | |
# Author : cyclopticnerve | \____/ |
# License : WTFPLv2 \ /
# ------------------------------------------------------------------------------

# -)
117 changes: 117 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
<!----------------------------------------------------------------------------->
<!-- Filename: README.md / \ -->
<!-- Project : Installerator | () | -->
<!-- Date : 10/31/2022 | | -->
<!-- Author : cyclopticnerve | \____/ | -->
<!-- License : WTFPLv2 \ / -->
<!----------------------------------------------------------------------------->

# Installerator

## "It mostly works™"

[![License: WTFPL](https://img.shields.io/badge/License-WTFPL-brightgreen.svg)](http://www.wtfpl.net/about/)

A small Python module that makes working with json settings files easier

## Installing

You can download the (hopefully stable)
[latest release](https://github.com/cyclopticnerve/installerator/releases/latest)
from the main branch. <br>
Download the Source Code (tar.gz) file. <br>
Then install it using:
```bash
foo@bar:~$ cd Downloads
foo@bar:~/Downloads$ python -m pip install Installerator-X.X.X.tar.gz
```

Or you can clone the git repo to get the latest (and often broken) code from the dev branch:
```bash
foo@bar:~$ cd Downloads
foo@bar:~/Downloads$ git clone https://github.com/cyclopticnerve/Installerator
foo@bar:~/Downloads$ cd Installerator
foo@bar:~/Downloads/Installerator$ python -m build
foo@bar:~/Downloads/Installerator$ python -m pip install ./dist/installerator-X.X.X.tar.gz -r ./requirements.txt
```

## Requirements

This package relies on another package, Configurator.
Find out more about this package [here](https://github.com/cyclopticnerve/configurator).

## Uninstalling

```python
python -m pip uninstall installerator
```

## Usage

### Install:
```python
# NB: the whole import thing is still hazy to me, but this works 100%
# from <package>.<module> import <Class>
from installerator.installerator import Installerator

# the user dict
dict_user = {
"general": {
"name": "SpaceOddity"
},
"py_reqs": [
"python-crontab"
],
"dirs": [
"${HOME}/.spaceoddity",
"${HOME}/.config/spaceoddity"
],
"files": {
"${SRC}/spaceoddity.py": "${HOME}/.spaceoddity",
"${SRC}/LICENSE": "${HOME}/.spaceoddity",
"${SRC}/VERSION": "${HOME}/.spaceoddity",
"${SRC}/uninstall.py": "${HOME}/.spaceoddity",
"${SRC}/uninstall.json": "${HOME}/.spaceoddity",
"${SRC}/cron_uninstall.py": "${HOME}/.spaceoddity"
},
"postflight": [
"${SRC}/convert_json.py",
"${SRC}/cron_install.py",
"${HOME}/.spaceoddity/spaceoddity.py"
]
}

# create an instance of the class
inst = Installerator()

# # run the instance
inst.run(dict_user)
```

### Uninstall:
```python
# NB: the whole import thing is still hazy to me, but this works 100%
# from <package>.<moule> import <Class>
from installerator.uninstallerator import Uninstallerator

dict_user = {
"general": {
"name": "SpaceOddity"
},
"preflight": [
"${HOME}/.spaceoddity/cron_uninstall.py"
],
"dirs": [
"${HOME}/.spaceoddity",
"${HOME}/.config/spaceoddity"
]
}

# create an instance of the class
uninst = Uninstallerator()

# # run the instance
uninst.run(dict_user)
```

## -)
21 changes: 0 additions & 21 deletions _root/run_as_root.py

This file was deleted.

27 changes: 0 additions & 27 deletions install.json

This file was deleted.

Loading

0 comments on commit 54f3c76

Please sign in to comment.