feat(sunken-ship): auto-pull fitness bot from GitHub every 15 min
New fitness-bot-pull service + timer, modeled on dotfiles-rebuild. Checks origin/main for new commits, pulls + restarts the service if the HEAD moved. Offset by 7 min from dotfiles-rebuild to avoid overlap. Code now lives at github.com/DannyDannyDanny/bigbiggerbiggestbot (cloned to /home/danny/tg_fitness_bot). workouts.db is gitignored so it's preserved across pulls. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b667f7c247
commit
5db45664ab
2 changed files with 57 additions and 28 deletions
|
|
@ -132,8 +132,9 @@ in
|
|||
};
|
||||
|
||||
# BigBiggerBiggestBot — Telegram fitness tracker with Mini App.
|
||||
# Code deployed separately via rsync (private repo, not referenced here).
|
||||
# Code: https://github.com/DannyDannyDanny/bigbiggerbiggestbot cloned at /home/danny/tg_fitness_bot
|
||||
# Bot token: ~danny/.secrets/bigbiggerbiggestbot
|
||||
# Deployment: fitness-bot-pull timer below runs every 15 min, git pulls, restarts service on changes.
|
||||
systemd.services.fitness-bot = let
|
||||
pythonEnv = pkgs.python3.withPackages (ps: with ps; [
|
||||
python-telegram-bot
|
||||
|
|
@ -155,6 +156,34 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
# Pull fitness bot from GitHub and restart the service if the repo has new commits.
|
||||
# Code lives at /home/danny/tg_fitness_bot (git clone of DannyDannyDanny/bigbiggerbiggestbot).
|
||||
# workouts.db is gitignored — preserved across pulls.
|
||||
systemd.services.fitness-bot-pull = {
|
||||
description = "Pull fitness bot and restart service if repo changed";
|
||||
path = with pkgs; [ git systemd ];
|
||||
environment.GIT_CONFIG_COUNT = "1";
|
||||
environment.GIT_CONFIG_KEY_0 = "safe.directory";
|
||||
environment.GIT_CONFIG_VALUE_0 = "/home/danny/tg_fitness_bot";
|
||||
script = ''
|
||||
set -euo pipefail
|
||||
cd /home/danny/tg_fitness_bot
|
||||
git fetch origin
|
||||
if [ "$(git rev-parse HEAD)" = "$(git rev-parse origin/main)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
git pull origin main
|
||||
systemctl restart fitness-bot
|
||||
'';
|
||||
serviceConfig.Type = "oneshot";
|
||||
};
|
||||
|
||||
systemd.timers.fitness-bot-pull = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig.OnCalendar = "*-*-* *:07/15:00"; # every 15 minutes, offset from dotfiles-rebuild
|
||||
timerConfig.RandomizedDelaySec = "2min";
|
||||
};
|
||||
|
||||
# Pull dotfiles and rebuild if the repo has new commits.
|
||||
systemd.services.dotfiles-rebuild = {
|
||||
description = "Pull dotfiles and run nixos-rebuild if repo changed";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue