@tyhld/conductor 0.12.25 → 0.12.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
package/scripts/conductor-run.sh
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
#
|
|
3
|
-
# conductor-run — 常駐(conductor@*.service
|
|
3
|
+
# conductor-run — 常駐(conductor@*.service)・耳(conductor-ear.service)・司令塔
|
|
4
|
+
# (conductor-build-runner.service)の入口(★便 81a08d58・司令塔は便 17da4322 で同じ入口へ)。
|
|
4
5
|
#
|
|
5
6
|
# 【なぜ要るか(実測 2026-09-16・開発履歴 4061dd71 の発見5)】
|
|
6
7
|
# この機(開発機)の常駐と耳は、職人の【作業ツリー】の build を動かしていた。
|
|
@@ -53,7 +54,7 @@ runtime_record() {
|
|
|
53
54
|
fi
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
# 役(start / ear)を記録に載せる(どのサービスが止まったかを外から分かるように)。
|
|
57
|
+
# 役(start / ear / build-runner)を記録に載せる(どのサービスが止まったかを外から分かるように)。
|
|
57
58
|
ROLE="${1:-unknown}"
|
|
58
59
|
|
|
59
60
|
if ! dist_runtime_resolve; then
|
|
@@ -80,27 +80,40 @@ if [[ ${#missing[@]} -gt 0 ]]; then
|
|
|
80
80
|
fi
|
|
81
81
|
|
|
82
82
|
# --- 4) 司令塔を動かすコマンドを決める ----------------------------------------
|
|
83
|
-
# ★
|
|
84
|
-
#
|
|
83
|
+
# ★2026-09-19(えふさん確定・便 17da4322)に決め方を変えた。常駐・耳(便 81a08d58)と同じ入口へそろえる。
|
|
84
|
+
# 【旧】このスクリプトの隣に dist/cli.js が在る開発機では、そのリポジトリ(作業ツリー)を焼き込んでいた。
|
|
85
|
+
# =職人がブランチを切り替えて build した瞬間、試作の段取りが作りかけで動く。さらに node の置き場を
|
|
86
|
+
# ExecStart に焼き込むので、node の版を変えると司令塔だけ 203/EXEC を繰り返す(便 81a08d58 発見3)。
|
|
87
|
+
# 【新】既定は「入っている配布物」だけを動かす。ExecStart には動かない入口
|
|
88
|
+
# (/bin/bash %h/.tyhld/bin/conductor-run build-runner)だけを書き、配布物と node は起動のたびに探す。
|
|
89
|
+
# ★開発機でもお客さま機でも同じ。作業ツリーは選ばない。探し方は常駐・耳と共用(2つ作らない)。
|
|
90
|
+
# 【作業ツリーを試したいとき】引数で起動コマンドを明示したときだけ、それをそのまま使う(人が打った物に限る)。
|
|
91
|
+
# 作業ツリーを指していれば★警告を出す。ふだんの試し方は端末で直接動かすこと(残らない試し方)。
|
|
92
|
+
. "$SCRIPT_DIR/../scripts/dist-source.sh"
|
|
85
93
|
BIN="${1:-}"
|
|
86
94
|
BIN_SRC="引数で指定"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
[[ -n "$NODE_BIN" ]] || NODE_BIN="/usr/bin/env node"
|
|
93
|
-
BIN="$NODE_BIN $CLI_JS"
|
|
94
|
-
BIN_SRC="この機体のリポジトリ(開発機)"
|
|
95
|
+
|
|
96
|
+
if [[ -n "$BIN" ]]; then
|
|
97
|
+
if dist_runtime_bin_is_worktree "$BIN"; then
|
|
98
|
+
warn "★明示された起動コマンドは作業ツリーを指しています: $BIN"
|
|
99
|
+
warn " 作りかけの build が司令塔として動きます。試し終わったら、引数なしでこの台本を流し直してください。"
|
|
95
100
|
fi
|
|
101
|
+
else
|
|
102
|
+
# 入口の一式を写す元=公開済みの正規版(作業ツリーからは写さない・便 4061dd71 と同じ判定)。
|
|
103
|
+
if ! dist_source_for_setup "$(cd "$SCRIPT_DIR/.." && pwd)"; then
|
|
104
|
+
die "司令塔を動かす采配くんを確かめられません(${DIST_REASON})。
|
|
105
|
+
人の手番: npm install -g @tyhld/conductor --@tyhld:registry=https://registry.npmjs.org"
|
|
106
|
+
fi
|
|
107
|
+
if ! dist_runtime_bundle_install "$DIST_ROOT"; then
|
|
108
|
+
die "司令塔の入口を置けませんでした: $DIST_RUNTIME_BIN_DIR"
|
|
109
|
+
fi
|
|
110
|
+
# 導入処理が確かめた置き場を控えに残す(systemd の中ではまずこれを見る)。
|
|
111
|
+
dist_runtime_hint_write "$DIST_ROOT"
|
|
112
|
+
# ★ユニットの正本も配り元から取る(作業ツリーの写しを配らない)。
|
|
113
|
+
[[ -f "$DIST_ROOT/systemd/$UNIT_NAME" ]] && UNIT_SRC="$DIST_ROOT/systemd/$UNIT_NAME"
|
|
114
|
+
BIN="$DIST_RUNTIME_EXEC"
|
|
115
|
+
BIN_SRC="入っている配布物(起動のたびに探す・版 ${DIST_VERSION:-不明})"
|
|
96
116
|
fi
|
|
97
|
-
if [[ -z "$BIN" ]] && command -v conductor >/dev/null 2>&1; then
|
|
98
|
-
resolved="$(command -v conductor)"
|
|
99
|
-
[[ -L "$resolved" ]] && resolved="$(readlink -f "$resolved")"
|
|
100
|
-
BIN="$resolved"
|
|
101
|
-
BIN_SRC="npm で入れた全体版"
|
|
102
|
-
fi
|
|
103
|
-
[[ -n "$BIN" ]] || die "司令塔を動かすコマンドが見つかりません(conductor も dist/cli.js も不在)。"
|
|
104
117
|
|
|
105
118
|
info "司令塔が使う采配くん: ${BIN_SRC}"
|
|
106
119
|
info "司令塔の起動コマンド: $BIN build-runner"
|
|
@@ -114,9 +127,23 @@ fi
|
|
|
114
127
|
mv -f "$UNIT_DST.tmp" "$UNIT_DST" # 置換は原子的=壊れかけのユニットを残さない
|
|
115
128
|
info "配置: $UNIT_DST"
|
|
116
129
|
|
|
130
|
+
# ★ExecStart を上書きしている drop-in を退ける(便 81a08d58 と同じ・作業ツリーを動かし続けないため)。
|
|
131
|
+
if retired="$(dist_runtime_retire_exec_dropins "$UNIT_DIR/$UNIT_NAME.d")"; then
|
|
132
|
+
if [[ -n "$retired" ]]; then
|
|
133
|
+
while IFS= read -r line; do
|
|
134
|
+
info "起動方法を上書きしていた drop-in を控えへ退けました: $line"
|
|
135
|
+
done <<< "$retired"
|
|
136
|
+
fi
|
|
137
|
+
else
|
|
138
|
+
die "起動方法を上書きしている drop-in を退けられませんでした: $UNIT_DIR/$UNIT_NAME.d"
|
|
139
|
+
fi
|
|
140
|
+
|
|
117
141
|
# --- 6) 反映して起動 ----------------------------------------------------------
|
|
118
142
|
systemctl --user daemon-reload || die "daemon-reload に失敗しました。"
|
|
119
143
|
|
|
144
|
+
# ★動いている司令塔は、再起動するまで古い起動方法のまま。ここでは再起動しない
|
|
145
|
+
# (動いている試作の段取りを途中で切らないため・人が頃合いを見て再起動する)。
|
|
146
|
+
# enable --now は、まだ動いていなければ新しい起動方法で起動し、動いていれば何もしない。
|
|
120
147
|
if systemctl --user enable --now "$UNIT_NAME"; then
|
|
121
148
|
info "有効化: $UNIT_NAME(このPCに1本・試作の段取りを進めます)"
|
|
122
149
|
ledger_add "$UNIT_NAME"
|
|
@@ -127,6 +154,8 @@ fi
|
|
|
127
154
|
loginctl enable-linger "$USER" >/dev/null 2>&1 || true
|
|
128
155
|
|
|
129
156
|
echo
|
|
157
|
+
echo "★新しい起動方法は、司令塔を再起動したときから効きます:"
|
|
158
|
+
echo " systemctl --user restart conductor-build-runner"
|
|
130
159
|
echo "ログ確認: journalctl --user -u conductor-build-runner -f"
|
|
131
160
|
echo "停止: systemctl --user disable --now conductor-build-runner"
|
|
132
161
|
systemctl --user --no-pager status "$UNIT_NAME" 2>/dev/null || true
|