This commit is contained in:
commit
bcafbeb3cf
12 changed files with 140 additions and 0 deletions
55
.forgejo/workflows/build-release.yaml
Normal file
55
.forgejo/workflows/build-release.yaml
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '[0-9]+\.[0-9]+\.[0-9]+-c\.[0-9]+'
|
||||||
|
- '[0-9]+\.[0-9]+\.[0-9]+-a\.[0-9]+'
|
||||||
|
- '[0-9]+\.[0-9]+\.[0-9]'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
backend-pylint:
|
||||||
|
runs-on: docker
|
||||||
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
||||||
|
steps:
|
||||||
|
- name: Checkout source code
|
||||||
|
uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
pip install -e . -q
|
||||||
|
python -m pip list --format=columns --disable-pip-version-check
|
||||||
|
pip install pylint~=2.17.7 --disable-pip-version-check -q
|
||||||
|
- name: Run pylint
|
||||||
|
run: |
|
||||||
|
pylint --version
|
||||||
|
pylint **/*.py --exit-zero --rc-file pyproject.toml
|
||||||
|
|
||||||
|
build-artifacts:
|
||||||
|
needs: ["backend-pylint"]
|
||||||
|
runs-on: docker
|
||||||
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
||||||
|
steps:
|
||||||
|
- name: Checkout source code
|
||||||
|
uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
|
- name: Install packages
|
||||||
|
run: pip install build
|
||||||
|
- name: Build package
|
||||||
|
run: python -m build
|
||||||
|
- name: Save build artifacts
|
||||||
|
uses: https://code.forgejo.org/actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: packages
|
||||||
|
path: dist/*
|
||||||
|
|
||||||
|
publish-artifacts:
|
||||||
|
needs: ["build-artifacts"]
|
||||||
|
runs-on: docker
|
||||||
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
||||||
|
steps:
|
||||||
|
- name: Downloading static site artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: packages
|
||||||
|
path: dist
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: pip install twine
|
||||||
|
- name: Upload package to registry
|
||||||
|
run: python -m twine upload --repository-url ${{ secrets.REPOSITORY_URL }} -u ${{ secrets.TWINE_DEPLOY_USER }} -p ${{ secrets.TWINE_DEPLOY_PASSWORD }} dist/*
|
20
.forgejo/workflows/lint.yaml
Normal file
20
.forgejo/workflows/lint.yaml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: "**"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
backend-pylint:
|
||||||
|
runs-on: docker
|
||||||
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
||||||
|
steps:
|
||||||
|
- name: Checkout source code
|
||||||
|
uses: https://code.forgejo.org/actions/checkout@v3
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
pip install -e . -q
|
||||||
|
python -m pip list --format=columns --disable-pip-version-check
|
||||||
|
pip install pylint~=2.17.7 --disable-pip-version-check -q
|
||||||
|
- name: Run pylint
|
||||||
|
run: |
|
||||||
|
pylint --version
|
||||||
|
pylint **/*.py --exit-zero --rc-file pyproject.toml
|
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Python stuff
|
||||||
|
__pycache__/
|
||||||
|
*venv/
|
||||||
|
dist/
|
3
README.md
Normal file
3
README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# dockge-cli
|
||||||
|
|
||||||
|
A simple CLI application written in Python for communicating with Dockge using websockets
|
1
dockge_cli/.gitignore
vendored
Normal file
1
dockge_cli/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.temp/*
|
0
dockge_cli/__init__.py
Normal file
0
dockge_cli/__init__.py
Normal file
0
dockge_cli/__main__.py
Normal file
0
dockge_cli/__main__.py
Normal file
1
dockge_cli/cli.py
Normal file
1
dockge_cli/cli.py
Normal file
|
@ -0,0 +1 @@
|
||||||
|
import argparse
|
0
dockge_cli/components/authentication.py
Normal file
0
dockge_cli/components/authentication.py
Normal file
0
dockge_cli/components/communication.py
Normal file
0
dockge_cli/components/communication.py
Normal file
26
dockge_cli/components/storage.py
Normal file
26
dockge_cli/components/storage.py
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
import pathlib
|
||||||
|
import base64
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
_storagepath = pathlib.Path(__file__).parents[1] / ".temp"
|
||||||
|
_file = _storagepath / "storage.yaml"
|
||||||
|
|
||||||
|
_storagepath.mkdir(exist_ok=True, parents=True)
|
||||||
|
|
||||||
|
def set(key: str, value: str):
|
||||||
|
with open(_file, "w+") as file:
|
||||||
|
content: dict[str, str] = yaml.load(file, Loader=yaml.SafeLoader) or {}
|
||||||
|
content.update({ key: base64.b64encode(value.encode()) })
|
||||||
|
yaml.dump(content, file, Dumper=yaml.SafeDumper)
|
||||||
|
|
||||||
|
def get(key: str):
|
||||||
|
value: str = None
|
||||||
|
if not _file.exists():
|
||||||
|
return None
|
||||||
|
with open(_file, "r") as file:
|
||||||
|
content: dict[str, str] = yaml.load(file, Loader=yaml.SafeLoader)
|
||||||
|
value = content.get(key, None)
|
||||||
|
return base64.b64decode(value).decode() if value is not None else None
|
||||||
|
|
||||||
|
def clear():
|
||||||
|
_file.unlink()
|
28
pyproject.toml
Normal file
28
pyproject.toml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
[project]
|
||||||
|
name = "dockge_cli"
|
||||||
|
version = "0.0.1-a.1"
|
||||||
|
dependencies = [
|
||||||
|
"pyyaml~=6.0.1"
|
||||||
|
]
|
||||||
|
requires-python = ">= 3.10"
|
||||||
|
authors = [{name = "Firq", email = "firelp42@gmail.com"}]
|
||||||
|
maintainers = [{name = "Firq", email = "firelp42@gmail.com"}]
|
||||||
|
description = "CLi for interacting with dockge"
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 3 - Alpha",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.10",
|
||||||
|
"Programming Language :: Python :: 3.11",
|
||||||
|
"Programming Language :: Python :: 3.12",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.setuptools.packages.find]
|
||||||
|
where = ["."]
|
||||||
|
include = ["dockge_cli*"]
|
||||||
|
|
||||||
|
[tool.pylint."MAIN"]
|
||||||
|
disable = [ "line-too-long", "missing-module-docstring" ]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["setuptools >= 61.0"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
Loading…
Reference in a new issue