summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 350fe24dea27603e06be0c2d29b0a3774db716e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Maintainer: Gvol <gvol@nexusystems.org>
# https://github.com/Gvolexe/GvolTools

pkgname=gvoltools-git
pkgver=r0
pkgrel=1
pkgdesc="A collection of SSH management and system administration tools (git version)"
arch=('any')
url="https://github.com/Gvolexe/GvolTools"
license=('MIT')
depends=(
    'python>=3.10'
    'python-paramiko'
    'python-cryptography'
)
optdepends=(
    'openssh: for SSH key management'
)
makedepends=('git')
provides=('gvoltools')
conflicts=('gvoltools')
source=("${pkgname}::git+https://github.com/Gvolexe/GvolTools.git")
sha256sums=('SKIP')

pkgver() {
    cd "${srcdir}/${pkgname}"
    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

package() {
    cd "${srcdir}/${pkgname}"
    
    # Install shared library
    install -Dm644 tools/gvcore/files/gvcore.py "${pkgdir}/usr/lib/gvtools/gvcore.py"
    
    # Install main binaries
    for tool_dir in tools/*/; do
        tool_name=$(basename "$tool_dir")
        
        # Skip gvcore (it's a library, not a CLI tool)
        [[ "$tool_name" == "gvcore" ]] && continue
        
        main_file="${tool_dir}files/${tool_name}.py"
        if [[ -f "$main_file" ]]; then
            install -Dm755 "$main_file" "${pkgdir}/usr/bin/${tool_name}"
        fi
    done
    
    # Create aliases via symlinks
    cd "${pkgdir}/usr/bin"
    
    # gv aliases
    ln -sf gv gvtools
    
    # gvfleet aliases
    ln -sf gvfleet fleet
    ln -sf gvfleet gvf
    ln -sf gvfleet f
    
    # gvsshprofile aliases
    ln -sf gvsshprofile sp
    ln -sf gvsshprofile gvsp
    
    # gvolkeymanager aliases
    ln -sf gvolkeymanager km
    ln -sf gvolkeymanager gvkm
    
    # gvhostbootstrap aliases
    ln -sf gvhostbootstrap hb
    ln -sf gvhostbootstrap gvhb
    
    # gvsshaudit aliases
    ln -sf gvsshaudit sshaudit
    ln -sf gvsshaudit gvsa
    
    # gvknownhostsctl aliases
    ln -sf gvknownhostsctl kh
    ln -sf gvknownhostsctl gvkh
    
    # gvsecretsync aliases
    ln -sf gvsecretsync ss
    ln -sf gvsecretsync gvss
    
    # gvcertctl aliases
    ln -sf gvcertctl cert
    ln -sf gvcertctl gvcert
    
    # gvfirewallctl aliases
    ln -sf gvfirewallctl fw
    ln -sf gvfirewallctl gvfw
    
    # gvupdates aliases
    ln -sf gvupdates updates
    ln -sf gvupdates gvup
    
    # gvsudoauth aliases
    ln -sf gvsudoauth sudo
    ln -sf gvsudoauth gvsudo
    
    # gvlogtriage aliases
    ln -sf gvlogtriage logs
    ln -sf gvlogtriage gvlogs
    
    # gvbackupctl aliases
    ln -sf gvbackupctl backup
    ln -sf gvbackupctl gvbak
    
    # gvdnscheck aliases
    ln -sf gvdnscheck dns
    ln -sf gvdnscheck gvdns
    
    # gvnetdiag aliases
    ln -sf gvnetdiag net
    ln -sf gvnetdiag gvnet
    
    # gvportsentry aliases
    ln -sf gvportsentry ports
    ln -sf gvportsentry gvports
    
    # gvdotctl aliases
    ln -sf gvdotctl dots
    ln -sf gvdotctl gvdots
    
    # gvgitopsinit aliases
    ln -sf gvgitopsinit gitops
    ln -sf gvgitopsinit gvgit
    
    # gvpermcheck aliases
    ln -sf gvpermcheck perms
    ln -sf gvpermcheck gvperms
    
    # Install license
    cd "${srcdir}/${pkgname}"
    install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" 2>/dev/null || true
    
    # Install docs
    install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
    install -Dm644 OVERVIEW.md "${pkgdir}/usr/share/doc/${pkgname}/OVERVIEW.md" 2>/dev/null || true
}