Skip to content

Commit 7558e29

Browse files
committed
added deb/rpm repos
1 parent 7cf5a51 commit 7558e29

7 files changed

+196
-1
lines changed

.github/workflows/release.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ jobs:
3434
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3535
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
3636
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
37+
FURY_TOKEN: ${{ secrets.FURY_TOKEN }}

.goreleaser.yaml

+37
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ builds:
1616
- linux
1717
goarch:
1818
- amd64
19+
- arm64
1920
env:
2021
- CGO_ENABLED=0
2122
ldflags:
@@ -37,6 +38,42 @@ changelog:
3738
release:
3839
replace_existing_artifacts: true
3940

41+
nfpms:
42+
- package_name: "lantern-server-manager"
43+
formats:
44+
- deb
45+
- rpm
46+
section: "default"
47+
maintainer: "Lantern Team <[email protected]>"
48+
description: |
49+
Lantern Server Manager
50+
vendor: "Brave New Software"
51+
homepage: "https://github.com/getlantern/lantern-headless-client"
52+
license: "GPL"
53+
contents:
54+
- src: ./cloud/lantern-server-manager.service
55+
dst: /opt/lantern/lantern-server-manager.service
56+
file_info:
57+
mode: 0600
58+
owner: root
59+
group: root
60+
- src: ./cloud/lantern-server-manager.sysvinit
61+
dst: /opt/lantern/lantern-server-manager.sysvinit
62+
file_info:
63+
mode: 0700
64+
owner: root
65+
group: root
66+
scripts:
67+
postinstall: ./cloud/postinstall
68+
preremove: ./cloud/preremove
69+
preinstall: ./cloud/preinstall
70+
71+
furies:
72+
- account: getlantern
73+
formats:
74+
- deb
75+
- rpm
76+
4077
dockers:
4178
- image_templates:
4279
- "getlantern/lantern-server-manager:latest"

cloud/lantern-server-manager.service

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ After=syslog.target network.target remote-fs.target nss-lookup.target
55

66
[Service]
77
User=root
8-
ExecStart=/opt/lantern/lantern-server-manager serve -d /opt/lantern/data
8+
ExecStart=/usr/bin/lantern-server-manager serve -d /opt/lantern/data
99
ExecStop=/bin/kill -s QUIT $MAINPID
1010
PrivateTmp=true
1111
StandardOutput=journal+console

cloud/lantern-server-manager.sysvinit

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/sh
2+
### BEGIN INIT INFO
3+
# Provides: lantern-server-manager
4+
# Required-Start: $local_fs $network $syslog
5+
# Required-Stop: $local_fs $network $syslog
6+
# Default-Start: 2 3 4 5
7+
# Default-Stop: 0 1 6
8+
# Short-Description: lantern-server-manager
9+
# Description: lantern-server-manager
10+
### END INIT INFO
11+
12+
# Directories and details
13+
control="/usr/bin/lantern-server-manager"
14+
case "$1" in
15+
start)
16+
"${control}" start &
17+
echo $! > /var/run/lantern-server-manager.pid
18+
;;
19+
stop)
20+
kill `cat /var/run/lantern-server-manager.pid`
21+
;;
22+
restart)
23+
echo "Restarting lantern-server-manager not supported"
24+
;;
25+
status)
26+
echo "Status not supported"
27+
;;
28+
*)
29+
echo "Usage: $0 {start|stop|restart|status}"
30+
exit 1
31+
;;
32+
esac
33+
34+
exit 0

cloud/postinstall

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env bash
2+
root_dir="/opt/lantern"
3+
service_name="lantern-server-manager"
4+
service_unit="lantern-server-manager.service"
5+
sysvinit_script="lantern-server-manager.sysvinit"
6+
sysvinit_dir="/etc/init.d/"
7+
8+
error(){
9+
echo -e "\e[91m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[ERRO]\t$1\e[0m"
10+
}
11+
warn(){
12+
echo -e "\e[93m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[WARN]\t$1\e[0m"
13+
}
14+
info(){
15+
echo -e "\e[96m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[INFO]\t$1\e[0m"
16+
}
17+
succ(){
18+
echo -e "\e[92m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[SUCC]\t$1\e[0m"
19+
}
20+
21+
expect(){
22+
$1
23+
rtc=$?
24+
if [ $rtc -ne 0 ]; then
25+
if [ -n "$2" ]; then
26+
$2
27+
fi
28+
error "when exec $1, an unexpected error occurred, code: $rtc"
29+
exit $rtc
30+
fi
31+
}
32+
33+
info "enabling lantern service"
34+
if command -v systemctl > /dev/null 2>&1; then
35+
expect "systemctl enable ${root_dir}/${service_unit}"
36+
else
37+
expect "mkdir -p ${sysvinit_dir}"
38+
expect "cp ${root_dir}/${sysvinit_script} ${sysvinit_dir}/${product_name}"
39+
expect "update-rc.d ${service_name} defaults"
40+
expect "chkconfig --add ${service_name}"
41+
fi
42+
succ "service enabled successfully"

cloud/preinstall

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/usr/bin/env bash
2+
3+
error(){
4+
echo -e "\e[91m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[ERRO]\t$1\e[0m"
5+
}
6+
warn(){
7+
echo -e "\e[93m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[WARN]\t$1\e[0m"
8+
}
9+
info(){
10+
echo -e "\e[96m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[INFO]\t$1\e[0m"
11+
}
12+
succ(){
13+
echo -e "\e[92m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[SUCC]\t$1\e[0m"
14+
}
15+
16+
if command -v systemctl >/dev/null;then
17+
exit 0
18+
elif command -v update-rc.d >/dev/null || command -v chkconfig >/dev/null;then
19+
if command -v crontab >/dev/null;then
20+
exit 0
21+
else
22+
error "when using update-rc.d or chkconfig, crontab must be installed"
23+
exit 1
24+
fi
25+
else
26+
error "system must has one of [ systemctl update-rc.d chkconfig ]"
27+
exit 1
28+
fi

cloud/preremove

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/usr/bin/env bash
2+
root_dir="/opt/lantern"
3+
service_name="lantern-server-manager"
4+
service_unit="lantern-server-manager.service"
5+
sysvinit_script="lantern-server-manager.sysvinit"
6+
sysvinit_dir="/etc/init.d/"
7+
8+
error(){
9+
echo -e "\e[91m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[ERRO]\t$1\e[0m"
10+
}
11+
warn(){
12+
echo -e "\e[93m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[WARN]\t$1\e[0m"
13+
}
14+
info(){
15+
echo -e "\e[96m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[INFO]\t$1\e[0m"
16+
}
17+
succ(){
18+
echo -e "\e[92m$(date "+%Y-%m-%d %H:%M:%S.%3N")\t[SUCC]\t$1\e[0m"
19+
}
20+
21+
expect(){
22+
$1
23+
rtc=$?
24+
if [ $rtc -ne 0 ]; then
25+
if [ -n "$2" ]; then
26+
$2
27+
fi
28+
error "when exec $1, an unexpected error occurred, code: $rtc"
29+
exit $rtc
30+
fi
31+
}
32+
33+
disable_service() {
34+
info "disable service"
35+
if command -v systemctl >/dev/null;then
36+
expect "systemctl disable ${service_unit}"
37+
elif command -v update-rc.d >/dev/null || command -v chkconfig >/dev/null;then
38+
expect "update-rc.d -f ${service_name} remove"
39+
expect "chkconfig --del ${service_name}"
40+
else
41+
error "systemd/sysvinit not detected"
42+
exit 1
43+
fi
44+
succ "service disabled successfully"
45+
}
46+
47+
48+
clean_dirs() {
49+
rm -rf ${root_dir}
50+
}
51+
52+
disable_service
53+
clean_dirs

0 commit comments

Comments
 (0)