From a901f34a9eb3c9f9f1b0481aea3b15fdc73ce59f Mon Sep 17 00:00:00 2001 From: rowan Date: Fri, 7 Mar 2025 11:10:45 -0600 Subject: [PATCH] diff detection of service files --- configctl | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/configctl b/configctl index b9bd851..7fb5223 100755 --- a/configctl +++ b/configctl @@ -45,8 +45,9 @@ fi SYSD_DIR="$XDG_CONFIG_HOME/systemd/user" SVC_NAME="$SELECTED-automount.service" +TMP=$(mktemp) mkdir -p "$SYSD_DIR" -cat << EOF > "$SYSD_DIR/$SVC_NAME" +cat << EOF > "$TMP" [Unit] Description=Mount fuse-overlayfs config @@ -54,15 +55,29 @@ Description=Mount fuse-overlayfs config Type=oneshot RemainAfterExit=yes ExecStart=fuse-overlayfs -o lowerdir="$BASE_CONFIG:$CHANGESET",upperdir="$UPPER_DIR",workdir="$WORKDIR" "$MOUNT_POINT" -ExecStop=/usr/bin/fusermount -u ~/.$MOUNT_POINT +ExecStop=/usr/bin/fusermount -u $MOUNT_POINT [Install] WantedBy=default.target EOF +diff "$TMP" "$SYSD_DIR/$SVC_NAME" > /dev/null 2>&1 + +HAS_DIFF=$? +PROMPT=0 +if [ "$HAS_DIFF" -gt 0 ]; then + mv "$TMP" "$SYSD_DIR/$SVC_NAME" + PROMPT=1 +fi + mkdir -p "$WORKDIR" fuse-overlayfs -o lowerdir="$BASE_CONFIG:$CHANGESET",upperdir="$UPPER_DIR",workdir="$WORKDIR" "$MOUNT_POINT" echo "Mounted $MOUNT_POINT with changeset '$SELECTED'" -echo "Run 'systemctl --user enable --now $SVC_NAME' to automount this config" + +if [ "$PROMPT" -eq 1 ]; then + echo "Run 'systemctl --user enable --now $SVC_NAME' to automount this config" +fi + +