All checks were successful
Deploy play.wenpai.net / deploy (push) Successful in 5s
- add sha256 for wpavatar, wp-china-yes, wpdate, wpfonts, wpmind - restore accidentally deleted wpfonts-1.2.0.zip from git HEAD - add NATS messaging wrappers (vm-dm.sh, vm-say.sh, lib/nats-msg.sh) - add inbox automation hooks (inbox-reactor.sh, daemon, codex hook) - symlink generate-html-report.js from qa/scripts/
78 lines
1.7 KiB
Bash
Executable file
78 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
source /etc/os-release
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck disable=SC1091
|
|
source "$SCRIPT_DIR/lib/nats-msg.sh"
|
|
|
|
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
|
|
|
|
usage() {
|
|
cat <<'USAGE'
|
|
用法: vm-dm.sh [--subject <主题>] [--urgent|--info] [--extra <json>] <target> <content>
|
|
USAGE
|
|
exit 1
|
|
}
|
|
|
|
current_vm_name() {
|
|
if [[ -f "$HOME/.vm-name" ]]; then
|
|
tr -d '[:space:]' < "$HOME/.vm-name"
|
|
elif [[ -f /etc/shared-context-vmname ]]; then
|
|
tr -d '[:space:]' < /etc/shared-context-vmname
|
|
else
|
|
hostname -s 2>/dev/null || echo unknown
|
|
fi
|
|
}
|
|
|
|
subject=""
|
|
priority="normal"
|
|
extra='{}'
|
|
target=""
|
|
content=""
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--subject)
|
|
subject="${2:-}"
|
|
shift 2
|
|
;;
|
|
--urgent)
|
|
priority="urgent"
|
|
shift
|
|
;;
|
|
--info)
|
|
priority="info"
|
|
shift
|
|
;;
|
|
--extra)
|
|
extra="${2:-{}}"
|
|
shift 2
|
|
;;
|
|
-h|--help)
|
|
usage
|
|
;;
|
|
*)
|
|
if [[ -z "$target" ]]; then
|
|
target="$1"
|
|
elif [[ -z "$content" ]]; then
|
|
content="$1"
|
|
else
|
|
content+=" $1"
|
|
fi
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
[[ -n "$target" && -n "$content" ]] || usage
|
|
nats_msg_available || { echo -e "${RED}缺少 nats 或 jq${NC}"; exit 1; }
|
|
|
|
from="$(current_vm_name)"
|
|
if nats_msg_publish "$from" "$target" "message" "$subject" "$content" "$priority" "$extra"; then
|
|
echo -e "${GREEN}已发送到 vm.dm.${target}${NC}"
|
|
else
|
|
echo -e "${RED}发送失败${NC}"
|
|
exit 1
|
|
fi
|