From b41dcbac2ae1732723f85b0dd8f7a38be2438bea Mon Sep 17 00:00:00 2001 From: MangoPig Date: Mon, 1 Jun 2026 00:38:56 +0100 Subject: [PATCH] MacOS fix stow secrets issue --- Scripts/setup.sh | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Scripts/setup.sh b/Scripts/setup.sh index 0de8632..127868f 100644 --- a/Scripts/setup.sh +++ b/Scripts/setup.sh @@ -18,10 +18,34 @@ handle_reboot_marker() { } sync_repo_managed_secret_file() { + local home_secret_resolved repo_secret_resolved + mkdir -p "$(dirname "$REPO_SECRET_FILE")" if [ -L "$HOME_SECRET_FILE" ]; then - return 0 + home_secret_resolved="$(python3 -c 'import os,sys; print(os.path.realpath(sys.argv[1]))' "$HOME_SECRET_FILE")" + repo_secret_resolved="$(python3 -c 'import os,sys; print(os.path.realpath(sys.argv[1]))' "$REPO_SECRET_FILE")" + + if [ "$home_secret_resolved" = "$repo_secret_resolved" ]; then + return 0 + fi + + if [ -f "$home_secret_resolved" ]; then + if [ ! -f "$REPO_SECRET_FILE" ] || [ ! -s "$REPO_SECRET_FILE" ]; then + cp "$home_secret_resolved" "$REPO_SECRET_FILE" + rm -f "$HOME_SECRET_FILE" + return 0 + fi + + if cmp -s "$home_secret_resolved" "$REPO_SECRET_FILE"; then + rm -f "$HOME_SECRET_FILE" + return 0 + fi + fi + + echo "Conflict: $HOME_SECRET_FILE points to a different secret file than $REPO_SECRET_FILE." + echo "Please merge them manually, then rerun the command." + exit 1 fi if [ -f "$HOME_SECRET_FILE" ]; then