f83ebf5854
systemd --user unit, polls famzheng.me/gitea every 60s, dispatches `claude --dangerously-skip-permissions -p ...` per new activity. sqlite state, log to ~/.local/state/gitea-bot/bot.log.
35 lines
1.2 KiB
Makefile
35 lines
1.2 KiB
Makefile
.PHONY: install uninstall restart status logs test-once
|
|
|
|
UNIT_DIR := $(HOME)/.config/systemd/user
|
|
STATE_DIR := $(HOME)/.local/state/gitea-bot
|
|
|
|
install:
|
|
@test -f $(HOME)/.gitea-mochi-token || (echo "missing $(HOME)/.gitea-mochi-token"; exit 1)
|
|
@test -x /home/fam/.local/bin/claude || (echo "missing claude bin"; exit 1)
|
|
mkdir -p $(UNIT_DIR) $(STATE_DIR)
|
|
install -m 644 gitea-bot.service $(UNIT_DIR)/gitea-bot.service
|
|
systemctl --user daemon-reload
|
|
systemctl --user enable --now gitea-bot
|
|
@sleep 1
|
|
systemctl --user status gitea-bot --no-pager -l | head -25
|
|
|
|
uninstall:
|
|
-systemctl --user disable --now gitea-bot
|
|
rm -f $(UNIT_DIR)/gitea-bot.service
|
|
systemctl --user daemon-reload
|
|
|
|
restart:
|
|
systemctl --user restart gitea-bot
|
|
systemctl --user status gitea-bot --no-pager -l | head -10
|
|
|
|
status:
|
|
systemctl --user status gitea-bot --no-pager -l | head -25
|
|
|
|
logs:
|
|
tail -n 200 -f $(STATE_DIR)/bot.log
|
|
|
|
test-once:
|
|
@# 单次轮询:reset state.db 让所有未处理 issue 都被 dispatch(慎用)
|
|
MOCHI_TOKEN=$$(cat $(HOME)/.gitea-mochi-token) python3 -c \
|
|
"import bot; bot.poll_once(bot.init_state(bot.CONFIG['state_dir']/'state.db'), open('$(HOME)/.gitea-mochi-token').read().strip())"
|