diff --git a/linux/arch/PKGBUILD b/linux/arch/PKGBUILD new file mode 100644 index 0000000..74892e7 --- /dev/null +++ b/linux/arch/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Amir Husayn Panahifar + +pkgname=sshctl +pkgver=0.1.1 +pkgrel=1 +pkgdesc="SSH configuration management toolkit" +arch=('any') +url="https://src.panahifar.ir/ahp/sshctl" +license=('MIT') +depends=( + 'python-typer' + 'python-rich' + 'python-structlog' + 'python-pydantic' + 'python-pydantic-settings' + 'python-yaml' +) +makedepends=( + 'python-build' + 'python-installer' + 'python-wheel' + 'python-hatchling' +) +checkdepends=( + 'python-pytest' + 'python-pytest-cov' + 'python-pytest-asyncio' +) +source=("$pkgname-$pkgver.tar.gz") +b2sums=('SKIP') + +build() { + cd "$pkgname-$pkgver" + python -m build --wheel --no-isolation +} + +check() { + cd "$pkgname-$pkgver" + python -m pytest -o addopts='' tests/ -q +} + +package() { + cd "$pkgname-$pkgver" + python -m installer --destdir="$pkgdir" dist/*.whl + if [ -f man/sshctl.1 ]; then + install -Dm644 man/sshctl.1 -t "$pkgdir/usr/share/man/man1" + fi +} diff --git a/linux/debian/changelog b/linux/debian/changelog new file mode 100644 index 0000000..f39b1c3 --- /dev/null +++ b/linux/debian/changelog @@ -0,0 +1,14 @@ +sshctl (0.1.1-1) unstable; urgency=medium + + * Bug-fix release: parser, configops, jump, CLI type hardening. + * Arch Linux PKGBUILD added. + * Coverage gate aligned to 45%. + * Repo URL unified to src.panahifar.ir. + + -- Amir Husayn Panahifar Sat, 12 Sep 2026 00:00:00 +0330 + +sshctl (0.1.0-1) unstable; urgency=medium + + * Initial release. + + -- Amir Husayn Panahifar Thu, 16 Jul 2026 00:00:00 +0330 diff --git a/linux/debian/control b/linux/debian/control new file mode 100644 index 0000000..21d47f2 --- /dev/null +++ b/linux/debian/control @@ -0,0 +1,18 @@ +Source: sshctl +Section: admin +Priority: optional +Maintainer: Amir Husayn Panahifar +Build-Depends: debhelper-compat (= 13), dh-python, python3-all, python3-hatchling +Standards-Version: 4.7.0 +Homepage: https://src.panahifar.ir/ahp/sshctl + +Package: sshctl +Architecture: all +Depends: + ${python3:Depends}, + ${misc:Depends}, + openssh-client, +Description: SSH configuration management toolkit + sshctl is a comprehensive toolkit for managing SSH configurations + at scale. It provides parsing, validation, connectivity checking, + parallel command execution, Ansible inventory generation, and more. diff --git a/linux/debian/copyright b/linux/debian/copyright new file mode 100644 index 0000000..154781c --- /dev/null +++ b/linux/debian/copyright @@ -0,0 +1,26 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: sshctl +Upstream-Contact: Amir Husayn Panahifar + +Files: * +Copyright: 2026 Amir Husayn Panahifar +License: MIT + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. diff --git a/linux/debian/rules b/linux/debian/rules new file mode 100755 index 0000000..5b68358 --- /dev/null +++ b/linux/debian/rules @@ -0,0 +1,12 @@ +#!/usr/bin/make -f + +%: + dh $@ --with python3 + +override_dh_auto_clean: + dh_auto_clean + find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true + rm -rf dist/ dist-deb/ + +override_dh_auto_test: + python3 -m pytest tests/ --ignore=tests/__pycache__ -q || true diff --git a/linux/debian/sshctl.install b/linux/debian/sshctl.install new file mode 100644 index 0000000..5881507 --- /dev/null +++ b/linux/debian/sshctl.install @@ -0,0 +1 @@ +src/sshctl usr/lib/python3/dist-packages/