Compare commits
9 Commits
bf8a0bd6ae
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7106ba76b | ||
|
|
f19873ee12 | ||
|
|
d04bd959d5 | ||
|
|
13f9a4cb39 | ||
|
|
fbb4803576 | ||
|
|
928f2918e2 | ||
|
|
09635c8232 | ||
|
|
5104d6255e | ||
|
|
86f6190181 |
@@ -1,5 +1,7 @@
|
|||||||
A collection of Ham Radio server utilities to transform CoreServer machines in to Ham Radio servers.
|
A collection of Ham Radio server utilities to transform CoreServer machines in to Ham Radio servers.
|
||||||
|
|
||||||
|
Update here.
|
||||||
|
|
||||||
```
|
```
|
||||||
wget -qO- https://gitea.young.computer/david/hampackserver/raw/branch/main/install.sh | bash
|
wget -qO- https://gitea.young.computer/david/hampackserver/raw/branch/main/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ gui=true
|
|||||||
steps=cd src && make && make hamclock-web-1600x960 && mkdir -p $HOME/.local/bin && mv hamclock-web-1600x960 $HOME/.local/bin/hamclock
|
steps=cd src && make && make hamclock-web-1600x960 && mkdir -p $HOME/.local/bin && mv hamclock-web-1600x960 $HOME/.local/bin/hamclock
|
||||||
|
|
||||||
[direwolf]
|
[direwolf]
|
||||||
version=1.8.1
|
version=1.8.2
|
||||||
git=https://github.com/wb2osz/direwolf.git
|
git=https://github.com/wb2osz/direwolf.git
|
||||||
install=$HOME/.local/bin/direwolf
|
install=$HOME/.local/bin/direwolf
|
||||||
steps=mkdir build| cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local && make -j4 && sudo make install| sudo udevadm control --reload-rules| mkdir -p $HOME/.local/state/HamPack/conf.d
|
steps=mkdir build| cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local && make -j4 && sudo make install| sudo udevadm control --reload-rules| mkdir -p $HOME/.local/state/HamPack/conf.d
|
||||||
|
|||||||
78
hampackservercheck
Executable file
78
hampackservercheck
Executable file
@@ -0,0 +1,78 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CONF="compile.conf"
|
||||||
|
|
||||||
|
if [ ! -f "$CONF" ]; then
|
||||||
|
echo "Error: compile.conf not found at $CONF"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
github_owner_repo() {
|
||||||
|
local url="$1"
|
||||||
|
if [[ "$url" =~ github\.com/([^/]+)/([^/.]+) ]]; then
|
||||||
|
echo "${BASH_REMATCH[1]}/${BASH_REMATCH[2]}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
github_latest_tag() {
|
||||||
|
local owner_repo="$1"
|
||||||
|
local tag
|
||||||
|
tag=$(curl -sf "https://api.github.com/repos/$owner_repo/releases/latest" \
|
||||||
|
| grep '"tag_name"' \
|
||||||
|
| sed 's/.*"tag_name": *"\([^"]*\)".*/\1/' \
|
||||||
|
| sed 's/^v//')
|
||||||
|
if [ -z "$tag" ]; then
|
||||||
|
tag=$(curl -sf "https://api.github.com/repos/$owner_repo/tags" \
|
||||||
|
| grep '"name"' \
|
||||||
|
| head -1 \
|
||||||
|
| sed 's/.*"name": *"\([^"]*\)".*/\1/' \
|
||||||
|
| sed 's/^v//')
|
||||||
|
fi
|
||||||
|
echo "$tag"
|
||||||
|
}
|
||||||
|
|
||||||
|
current_section=""
|
||||||
|
current_version=""
|
||||||
|
current_url=""
|
||||||
|
|
||||||
|
check_section() {
|
||||||
|
[ -z "$current_section" ] && return
|
||||||
|
[ -z "$current_url" ] && return
|
||||||
|
|
||||||
|
local owner_repo
|
||||||
|
owner_repo=$(github_owner_repo "$current_url")
|
||||||
|
if [ -z "$owner_repo" ]; then
|
||||||
|
echo "$current_section: unable to determine GitHub repo from URL"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local latest
|
||||||
|
latest=$(github_latest_tag "$owner_repo")
|
||||||
|
if [ -z "$latest" ]; then
|
||||||
|
echo "$current_section: unable to fetch latest version"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$latest" = "$current_version" ]; then
|
||||||
|
echo "$current_section: up to date ($current_version)"
|
||||||
|
else
|
||||||
|
echo "$current_section: update available $current_version -> $latest"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
while IFS= read -r line; do
|
||||||
|
if [[ "$line" =~ ^\[(.+)\]$ ]]; then
|
||||||
|
check_section
|
||||||
|
current_section="${BASH_REMATCH[1]}"
|
||||||
|
current_version=""
|
||||||
|
current_url=""
|
||||||
|
elif [[ "$line" =~ ^version=(.+)$ ]]; then
|
||||||
|
current_version="${BASH_REMATCH[1]}"
|
||||||
|
elif [[ "$line" =~ ^wget=(.+)$ ]]; then
|
||||||
|
current_url="${BASH_REMATCH[1]}"
|
||||||
|
elif [[ "$line" =~ ^git=(.+)$ ]]; then
|
||||||
|
current_url="${BASH_REMATCH[1]}"
|
||||||
|
fi
|
||||||
|
done < "$CONF"
|
||||||
|
|
||||||
|
check_section
|
||||||
13
install.sh
13
install.sh
@@ -67,11 +67,18 @@ git clone https://gitea.young.computer/david/HamPackServer.git "$HOME/.local/sha
|
|||||||
mkdir -p "$HOME/.local/bin"
|
mkdir -p "$HOME/.local/bin"
|
||||||
cp "$HOME/.local/share/HamPackServer/hampackserverrefresh" "$HOME/.local/bin/hampackserverrefresh"
|
cp "$HOME/.local/share/HamPackServer/hampackserverrefresh" "$HOME/.local/bin/hampackserverrefresh"
|
||||||
cp "$HOME/.local/share/HamPackServer/hampackserverupdate" "$HOME/.local/bin/hampackserverupdate"
|
cp "$HOME/.local/share/HamPackServer/hampackserverupdate" "$HOME/.local/bin/hampackserverupdate"
|
||||||
|
cp "$HOME/.local/share/HamPackServer/hampackservercheck" "$HOME/.local/bin/hampackservercheck"
|
||||||
|
|
||||||
mkdir -p "$HOME/.config/systemd/user"
|
|
||||||
mkdir -p "$HOME/.local/share/hamclock"
|
mkdir -p "$HOME/.local/share/hamclock"
|
||||||
cp "$HOME/.local/share/HamPackServer/servicefiles/hamclock.service" "$HOME/.config/systemd/user/"
|
# Remove old user-level service if present
|
||||||
systemctl --user enable hamclock
|
if [ -f "$HOME/.config/systemd/user/hamclock.service" ]; then
|
||||||
|
systemctl --user disable --now hamclock 2>/dev/null || true
|
||||||
|
rm "$HOME/.config/systemd/user/hamclock.service"
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
fi
|
||||||
|
sed -e "s/__HAMCLOCK_USER__/$USER/g" -e "s|__HAMCLOCK_HOME__|$HOME|g" "$HOME/.local/share/HamPackServer/servicefiles/hamclock.service" | sudo tee /etc/systemd/system/hamclock.service > /dev/null
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable hamclock
|
||||||
bash "$HOME/.local/share/HamPackServer/scripts/hamclock-cleanup.sh"
|
bash "$HOME/.local/share/HamPackServer/scripts/hamclock-cleanup.sh"
|
||||||
|
|
||||||
cd ~/.local/share/HamPackServer
|
cd ~/.local/share/HamPackServer
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ HAMCLOCK_DATA_FILES=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
echo "Stopping hamclock service..."
|
echo "Stopping hamclock service..."
|
||||||
systemctl --user stop hamclock 2>/dev/null || true
|
sudo systemctl stop hamclock 2>/dev/null || true
|
||||||
|
|
||||||
mkdir -p "$NEW_DIR"
|
mkdir -p "$NEW_DIR"
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ for f in "${HAMCLOCK_DATA_FILES[@]}"; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo "Reloading hamclock service..."
|
echo "Reloading hamclock service..."
|
||||||
systemctl --user daemon-reload
|
sudo systemctl daemon-reload
|
||||||
systemctl --user restart hamclock
|
sudo systemctl restart hamclock
|
||||||
|
|
||||||
echo "hamclock cleanup done."
|
echo "hamclock cleanup done."
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=HamClock
|
Description=HamClock
|
||||||
After=network.target
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
Environment=HOME=%h
|
User=__HAMCLOCK_USER__
|
||||||
WorkingDirectory=%h/.local/share/hamclock
|
Environment=HOME=__HAMCLOCK_HOME__
|
||||||
ExecStart=%h/.local/bin/hamclock
|
WorkingDirectory=__HAMCLOCK_HOME__/.local/share/hamclock
|
||||||
|
ExecStart=__HAMCLOCK_HOME__/.local/bin/hamclock -b ohb.hamclock.app:80
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=default.target
|
WantedBy=multi-user.target
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ After=network.target
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=%h/.local/bin/openhamclock
|
WorkingDirectory=%h/.local/bin/openhamclock
|
||||||
ExecStart=/usr/bin/pm2 start server.js
|
ExecStart=/usr/bin/node server.js
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user