#!/bin/bash # Where we store an empty file for each migration that has already been performed. STATE_DIR="$HOME/.local/state/omarchy/migrations" mkdir -p "$STATE_DIR" # Skipped migrations are tracked separately mkdir -p "$STATE_DIR/skipped" # Run any pending migrations for file in ~/.local/share/omarchy/migrations/*.sh; do filename=$(basename "$file") if [[ ! -f "$STATE_DIR/$filename" && ! -f "$STATE_DIR/skipped/$filename" ]]; then echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m" if bash $file; then touch "$STATE_DIR/$filename" else if gum confirm "Migration ${filename%.sh} failed. Skip and continue?"; then touch "$STATE_DIR/skipped/$filename" else exit 1 fi fi fi done