SHELL := /bin/bash SRC_ROOT ?= /Users/rcowham/go/src/github.com/perforce/command-runner TARGET_ROOT ?= . DOC_FILES := Installer_Guide.md README.md SCRIPT_FILES := scripts/install_command-runner.sh scripts/install_functions.sh scripts/self_update.sh CONFIG_FILES := configs/cmd_config.yaml # Installer-consumed binary artifacts. BIN_PATTERNS := \ $(SRC_ROOT)/bin/command-runner-linux-* P4_PATHS := Installer_Guide.md README.md scripts/... configs/... bin/... .PHONY: sync-installer sync-installer-dryrun p4-edit p4-revert clean-empty-dirs sync-installer: p4-edit @echo "Syncing installer files from $(SRC_ROOT) -> $(TARGET_ROOT)" @mkdir -p "$(TARGET_ROOT)/scripts" "$(TARGET_ROOT)/configs" "$(TARGET_ROOT)/bin" @for f in $(DOC_FILES); do \ rsync -au "$(SRC_ROOT)/$$f" "$(TARGET_ROOT)/$$f"; \ done @for f in $(SCRIPT_FILES); do \ rsync -au "$(SRC_ROOT)/Install_scripts/$${f##*/}" "$(TARGET_ROOT)/$$f"; \ chmod +x "$(TARGET_ROOT)/$$f"; \ done @for f in $(CONFIG_FILES); do \ rsync -au "$(SRC_ROOT)/$$f" "$(TARGET_ROOT)/$$f"; \ done @for p in $(BIN_PATTERNS); do \ for f in $$p; do \ if [[ -e "$$f" ]]; then \ rsync -au "$$f" "$(TARGET_ROOT)/bin/"; \ fi; \ done; \ done @$(MAKE) p4-revert @echo "Sync complete." sync-installer-dryrun: @echo "Dry run: showing rsync actions only" @mkdir -p "$(TARGET_ROOT)/scripts" "$(TARGET_ROOT)/configs" "$(TARGET_ROOT)/bin" @for f in $(DOC_FILES); do \ rsync -aun "$(SRC_ROOT)/$$f" "$(TARGET_ROOT)/$$f"; \ done @for f in $(SCRIPT_FILES); do \ rsync -aun "$(SRC_ROOT)/Install_scripts/$${f##*/}" "$(TARGET_ROOT)/$$f"; \ done @for f in $(CONFIG_FILES); do \ rsync -aun "$(SRC_ROOT)/$$f" "$(TARGET_ROOT)/$$f"; \ done @for p in $(BIN_PATTERNS); do \ for f in $$p; do \ if [[ -e "$$f" ]]; then \ rsync -aun "$$f" "$(TARGET_ROOT)/bin/"; \ fi; \ done; \ done p4-edit: @echo "Running: p4 edit $(P4_PATHS)" @cd "$(TARGET_ROOT)" && p4 edit $(P4_PATHS) || true p4-revert: @echo "Running: p4 revert -a $(P4_PATHS)" @cd "$(TARGET_ROOT)" && p4 revert -a $(P4_PATHS) || true clean-empty-dirs: @find "$(TARGET_ROOT)" -type d -empty -print