build(linux): add debian and arch packaging

This commit is contained in:
ahp
2026-09-12 13:47:32 +03:30
parent 3bfcc533ce
commit 80c421e5ae
6 changed files with 119 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# Maintainer: Amir Husayn Panahifar <ahp@panahifar.ir>
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
}
+14
View File
@@ -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 <ahp@panahifar.ir> Sat, 12 Sep 2026 00:00:00 +0330
sshctl (0.1.0-1) unstable; urgency=medium
* Initial release.
-- Amir Husayn Panahifar <ahp@panahifar.ir> Thu, 16 Jul 2026 00:00:00 +0330
+18
View File
@@ -0,0 +1,18 @@
Source: sshctl
Section: admin
Priority: optional
Maintainer: Amir Husayn Panahifar <ahp@panahifar.ir>
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.
+26
View File
@@ -0,0 +1,26 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: sshctl
Upstream-Contact: Amir Husayn Panahifar <ahp@panahifar.ir>
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.
+12
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
src/sshctl usr/lib/python3/dist-packages/