feat: enable-all command (symmetric to disable-all)
Bulk-enable every parked agent into selected target(s) from THAT target's parked source (format-aware). Idempotent — skips already-active. usage: opc-agents enable-all [--target T] [-y|--yes]
This commit is contained in:
@@ -328,6 +328,51 @@ cmd_disable_all() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# enable every parked agent into selected target(s) — symmetric to disable-all
|
||||||
|
# usage: cmd_enable_all [--target T] [-y|--yes]
|
||||||
|
# Per-target: only reads from THAT target's parked source (format-aware).
|
||||||
|
# Idempotent: skips agents already active.
|
||||||
|
cmd_enable_all() {
|
||||||
|
parse_target_flag "$@"
|
||||||
|
set -- "${REMAINING_ARGS[@]}"
|
||||||
|
require_dirs
|
||||||
|
local force=0
|
||||||
|
if [ "${1:-}" = "-y" ] || [ "${1:-}" = "--yes" ]; then
|
||||||
|
force=1
|
||||||
|
fi
|
||||||
|
IFS=',' read -ra tgts <<< "$PARSED_TARGETS"
|
||||||
|
local -a pairs=()
|
||||||
|
local t pdir adir n
|
||||||
|
for t in "${tgts[@]}"; do
|
||||||
|
pdir=$(target_parked "$t") || continue
|
||||||
|
adir=$(target_active "$t") || continue
|
||||||
|
while IFS= read -r n; do
|
||||||
|
[ -z "$n" ] && continue
|
||||||
|
[ -f "$adir/$n.md" ] && continue # already active
|
||||||
|
pairs+=("$t:$n")
|
||||||
|
done < <(agent_names_in "$pdir")
|
||||||
|
done
|
||||||
|
[ "${#pairs[@]}" -gt 0 ] || { echo "all parked agents already active in [${tgts[*]}]"; exit 0; }
|
||||||
|
echo "Will enable ${#pairs[@]} (target:agent) entries:"
|
||||||
|
printf ' %s\n' "${pairs[@]:0:20}"
|
||||||
|
[ "${#pairs[@]}" -gt 20 ] && echo " ... and $((${#pairs[@]} - 20)) more"
|
||||||
|
if [ "$force" -ne 1 ]; then
|
||||||
|
printf "Proceed? [y/N] "
|
||||||
|
read -r ans </dev/tty || ans=""
|
||||||
|
case "$ans" in y|Y|yes|YES) ;; *) echo "cancelled"; exit 0 ;; esac
|
||||||
|
fi
|
||||||
|
local p enabled=0
|
||||||
|
for p in "${pairs[@]}"; do
|
||||||
|
t="${p%%:*}"; n="${p#*:}"
|
||||||
|
pdir=$(target_parked "$t"); adir=$(target_active "$t")
|
||||||
|
[ -f "$pdir/$n.md" ] || continue
|
||||||
|
[ -f "$adir/$n.md" ] && continue
|
||||||
|
cp "$pdir/$n.md" "$adir/$n.md"
|
||||||
|
enabled=$((enabled+1))
|
||||||
|
done
|
||||||
|
echo "enabled $enabled agent(s)."
|
||||||
|
}
|
||||||
|
|
||||||
# enable category (by prefix)
|
# enable category (by prefix)
|
||||||
cmd_enable_category() {
|
cmd_enable_category() {
|
||||||
require_dirs
|
require_dirs
|
||||||
@@ -633,7 +678,7 @@ usage() {
|
|||||||
opc-agents — multi-target agent manager (opencode + claude)
|
opc-agents — multi-target agent manager (opencode + claude)
|
||||||
|
|
||||||
Targets: opencode, claude (or "both"/"all"; default = opencode,claude)
|
Targets: opencode, claude (or "both"/"all"; default = opencode,claude)
|
||||||
Use --target / -t with enable/disable/disable-all to scope the operation.
|
Use --target / -t with enable/disable/enable-all/disable-all to scope the operation.
|
||||||
|
|
||||||
status per-target counts (parked + active) + mode breakdown
|
status per-target counts (parked + active) + mode breakdown
|
||||||
list {active|parked|all} list agent names (active = opencode set)
|
list {active|parked|all} list agent names (active = opencode set)
|
||||||
@@ -641,6 +686,8 @@ Use --target / -t with enable/disable/disable-all to scope the operation.
|
|||||||
variants suffix-based variant counts (PARKED opencode)
|
variants suffix-based variant counts (PARKED opencode)
|
||||||
enable [--target T] <name> copy parked → active in selected targets
|
enable [--target T] <name> copy parked → active in selected targets
|
||||||
disable [--target T] <name> remove from active in selected targets
|
disable [--target T] <name> remove from active in selected targets
|
||||||
|
enable-all [--target T] [-y|--yes] enable every parked agent into selected targets
|
||||||
|
(idempotent — restore-from-archive helper)
|
||||||
disable-all [--target T] [-y|--yes] [--keep-primary]
|
disable-all [--target T] [-y|--yes] [--keep-primary]
|
||||||
disable every active agent across targets
|
disable every active agent across targets
|
||||||
enable-category <prefix> fzf multi-pick within a base-persona prefix, then enable
|
enable-category <prefix> fzf multi-pick within a base-persona prefix, then enable
|
||||||
@@ -682,6 +729,7 @@ main() {
|
|||||||
variants|vars) cmd_variants "$@" ;;
|
variants|vars) cmd_variants "$@" ;;
|
||||||
enable) cmd_enable "$@" ;;
|
enable) cmd_enable "$@" ;;
|
||||||
disable) cmd_disable "$@" ;;
|
disable) cmd_disable "$@" ;;
|
||||||
|
enable-all) cmd_enable_all "$@" ;;
|
||||||
disable-all) cmd_disable_all "$@" ;;
|
disable-all) cmd_disable_all "$@" ;;
|
||||||
enable-category|enable-cat) cmd_enable_category "$@" ;;
|
enable-category|enable-cat) cmd_enable_category "$@" ;;
|
||||||
disable-category|disable-cat) cmd_disable_category "$@" ;;
|
disable-category|disable-cat) cmd_disable_category "$@" ;;
|
||||||
|
|||||||
Reference in New Issue
Block a user