Bundle mission-control into Triple-C instead of cloning from GitHub
All checks were successful
Build App / compute-version (push) Successful in 2s
Build App / build-macos (push) Successful in 2m47s
Build Container / build-container (push) Successful in 9m0s
Build App / build-linux (push) Successful in 4m41s
Build App / build-windows (push) Successful in 5m33s
Build App / create-tag (push) Successful in 3s
Build App / sync-to-github (push) Successful in 10s
All checks were successful
Build App / compute-version (push) Successful in 2s
Build App / build-macos (push) Successful in 2m47s
Build Container / build-container (push) Successful in 9m0s
Build App / build-linux (push) Successful in 4m41s
Build App / build-windows (push) Successful in 5m33s
Build App / create-tag (push) Successful in 3s
Build App / sync-to-github (push) Successful in 10s
The mission-control (Flight Control) project is being closed upstream. This embeds the project files directly in the repo under container/mission-control/, bakes them into the Docker image at /opt/mission-control, and copies them into place at container startup instead of git cloning from GitHub. Also adds missing osc52-clipboard, audio-shim, and triple-c-sso-refresh to the programmatic Docker build context in image.rs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
119
container/mission-control/.claude/skills/init-project/check-sync.sh
Executable file
119
container/mission-control/.claude/skills/init-project/check-sync.sh
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/bash
|
||||
# check-sync.sh - Compare .flightops directory between source and target
|
||||
#
|
||||
# Usage: check-sync.sh <source-dir> <target-dir>
|
||||
#
|
||||
# Outputs:
|
||||
# missing - Target directory doesn't exist (neither .flightops/ nor .flight-ops/)
|
||||
# outdated - Target exists but one or more files differ from source
|
||||
# current - All files match source
|
||||
#
|
||||
# Additional output lines:
|
||||
# agent-crews:{missing|empty|present} - Crew directory status
|
||||
# crew-missing:{filename} - Default crew file not found in project (repeats per file)
|
||||
# legacy-layout:flight-ops - .flight-ops/ detected (old name)
|
||||
# legacy-layout:phases - phases/ detected (old name)
|
||||
#
|
||||
# Note: Only checks synced files (README.md, FLIGHT_OPERATIONS.md).
|
||||
# ARTIFACTS.md and agent-crews/ are project-specific and not synced.
|
||||
|
||||
set -e
|
||||
|
||||
SOURCE_DIR="$1"
|
||||
TARGET_DIR="$2"
|
||||
|
||||
if [[ -z "$SOURCE_DIR" || -z "$TARGET_DIR" ]]; then
|
||||
echo "Usage: check-sync.sh <source-dir> <target-dir>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -d "$SOURCE_DIR" ]]; then
|
||||
echo "Error: Source directory not found: $SOURCE_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Resolve the actual target directory, falling back to legacy name
|
||||
EFFECTIVE_TARGET="$TARGET_DIR"
|
||||
LEGACY_FLIGHT_OPS=false
|
||||
|
||||
if [[ ! -d "$TARGET_DIR" ]]; then
|
||||
# Derive the legacy path: replace trailing .flightops with .flight-ops
|
||||
LEGACY_DIR="${TARGET_DIR%/.flightops}/.flight-ops"
|
||||
if [[ "$LEGACY_DIR" != "$TARGET_DIR" && -d "$LEGACY_DIR" ]]; then
|
||||
EFFECTIVE_TARGET="$LEGACY_DIR"
|
||||
LEGACY_FLIGHT_OPS=true
|
||||
else
|
||||
echo "missing"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Compare each file in source directory
|
||||
FILES_TO_CHECK=("FLIGHT_OPERATIONS.md" "README.md")
|
||||
ALL_CURRENT=true
|
||||
|
||||
for FILE in "${FILES_TO_CHECK[@]}"; do
|
||||
SOURCE_FILE="$SOURCE_DIR/$FILE"
|
||||
TARGET_FILE="$EFFECTIVE_TARGET/$FILE"
|
||||
|
||||
if [[ ! -f "$SOURCE_FILE" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [[ ! -f "$TARGET_FILE" ]]; then
|
||||
ALL_CURRENT=false
|
||||
break
|
||||
fi
|
||||
|
||||
SOURCE_HASH=$(sha256sum "$SOURCE_FILE" | cut -d' ' -f1)
|
||||
TARGET_HASH=$(sha256sum "$TARGET_FILE" | cut -d' ' -f1)
|
||||
|
||||
if [[ "$SOURCE_HASH" != "$TARGET_HASH" ]]; then
|
||||
ALL_CURRENT=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if $ALL_CURRENT; then
|
||||
echo "current"
|
||||
else
|
||||
echo "outdated"
|
||||
fi
|
||||
|
||||
# Report on agent-crews directory existence, checking both current and legacy names
|
||||
CREW_DIR=""
|
||||
LEGACY_PHASES=false
|
||||
|
||||
if [[ -d "$EFFECTIVE_TARGET/agent-crews" ]]; then
|
||||
CREW_DIR="$EFFECTIVE_TARGET/agent-crews"
|
||||
elif [[ -d "$EFFECTIVE_TARGET/phases" ]]; then
|
||||
CREW_DIR="$EFFECTIVE_TARGET/phases"
|
||||
LEGACY_PHASES=true
|
||||
fi
|
||||
|
||||
if [[ -z "$CREW_DIR" ]]; then
|
||||
echo "agent-crews:missing"
|
||||
elif [[ -z "$(ls -A "$CREW_DIR" 2>/dev/null)" ]]; then
|
||||
echo "agent-crews:empty"
|
||||
else
|
||||
echo "agent-crews:present"
|
||||
# Check for missing crew files (new skills added since init)
|
||||
DEFAULT_CREWS_DIR="$SOURCE_DIR/defaults/agent-crews"
|
||||
if [[ -d "$DEFAULT_CREWS_DIR" ]]; then
|
||||
for DEFAULT_FILE in "$DEFAULT_CREWS_DIR"/*.md; do
|
||||
BASENAME=$(basename "$DEFAULT_FILE")
|
||||
if [[ ! -f "$CREW_DIR/$BASENAME" ]]; then
|
||||
echo "crew-missing:$BASENAME"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Report legacy layout detection
|
||||
if $LEGACY_FLIGHT_OPS; then
|
||||
echo "legacy-layout:flight-ops"
|
||||
fi
|
||||
|
||||
if $LEGACY_PHASES; then
|
||||
echo "legacy-layout:phases"
|
||||
fi
|
||||
Reference in New Issue
Block a user