Remote run skill, mu4e change
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
};
|
||||
|
||||
config = lib.mkIf config.azos.homey-alert.enable {
|
||||
azos.claude.globalSkills.notify = ./notify-skill.md;
|
||||
|
||||
home.packages = [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "homey-alert";
|
||||
@@ -28,28 +30,34 @@
|
||||
-t, --title TITLE notification title
|
||||
-p, --priority PRIO priority: min|low|default|high|urgent (default: default)
|
||||
-T, --tags TAGS comma-separated emoji shortcodes (e.g. warning,rotating_light)
|
||||
-r, --print-remote print the curl command instead of running it
|
||||
(for pasting into SSH commands to remote machines)
|
||||
-h, --help show this help
|
||||
|
||||
Examples:
|
||||
homey-alert "Backup complete"
|
||||
homey-alert -t "Backup" -p high -T white_check_mark "restic finished"
|
||||
echo "done" | homey-alert -t "Job finished"
|
||||
# Local
|
||||
long_cmd && homey-alert -t "Training" -p high -T white_check_mark "done"
|
||||
|
||||
# Remote — expands locally, runs on the remote machine
|
||||
ssh user@host "python train.py && \$(homey-alert -r -t 'Training' 'done')"
|
||||
EOF
|
||||
}
|
||||
|
||||
TITLE=""
|
||||
PRIORITY="default"
|
||||
TAGS=""
|
||||
PRINT_REMOTE=false
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-t|--title) TITLE="$2"; shift 2 ;;
|
||||
-p|--priority) PRIORITY="$2"; shift 2 ;;
|
||||
-T|--tags) TAGS="$2"; shift 2 ;;
|
||||
-h|--help) usage; exit 0 ;;
|
||||
--) shift; break ;;
|
||||
-*) echo "Unknown option: $1" >&2; usage >&2; exit 1 ;;
|
||||
*) break ;;
|
||||
-t|--title) TITLE="$2"; shift 2 ;;
|
||||
-p|--priority) PRIORITY="$2"; shift 2 ;;
|
||||
-T|--tags) TAGS="$2"; shift 2 ;;
|
||||
-r|--print-remote) PRINT_REMOTE=true; shift ;;
|
||||
-h|--help) usage; exit 0 ;;
|
||||
--) shift; break ;;
|
||||
-*) echo "Unknown option: $1" >&2; usage >&2; exit 1 ;;
|
||||
*) break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -65,17 +73,23 @@
|
||||
|
||||
TOKEN="$(pass zakobar-homecenter/ntfy-token)"
|
||||
|
||||
HEADERS=(
|
||||
# Build the curl invocation as an array — single source of truth for both modes
|
||||
CMD=(
|
||||
curl -sf
|
||||
-H "Authorization: Bearer $TOKEN"
|
||||
-H "Priority: $PRIORITY"
|
||||
)
|
||||
[[ -n "$TITLE" ]] && CMD+=(-H "Title: $TITLE")
|
||||
[[ -n "$TAGS" ]] && CMD+=(-H "Tags: $TAGS")
|
||||
CMD+=(-d "$MESSAGE" https://ntfy.zakobar.com/alerts)
|
||||
|
||||
[[ -n "$TITLE" ]] && HEADERS+=(-H "Title: $TITLE")
|
||||
[[ -n "$TAGS" ]] && HEADERS+=(-H "Tags: $TAGS")
|
||||
|
||||
curl -sf "''${HEADERS[@]}" \
|
||||
-d "$MESSAGE" \
|
||||
https://ntfy.zakobar.com/alerts
|
||||
if $PRINT_REMOTE; then
|
||||
# Shell-quote each element so the output is safe to embed in SSH commands
|
||||
printf '%q ' "''${CMD[@]}"
|
||||
printf '\n'
|
||||
else
|
||||
"''${CMD[@]}"
|
||||
fi
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user