Skip to content

Commit

Permalink
fix: Update .stow-local-ignore with files in /home/user that would br…
Browse files Browse the repository at this point in the history
…eak running stow (#196)

* Update JDK patch versions to latest from sdkman (#193)

Signed-off-by: Aurélien Pupier <[email protected]>
Signed-off-by: Ivan Suftin <[email protected]>

* fix: Update .stow-local-ignore with files in /home/user that would break running stow

Signed-off-by: Ivan Suftin <[email protected]>

---------

Signed-off-by: Aurélien Pupier <[email protected]>
Signed-off-by: Ivan Suftin <[email protected]>
Co-authored-by: Aurélien Pupier <[email protected]>
  • Loading branch information
isuftin and apupier authored Dec 13, 2024
1 parent b5dc4bf commit 74af9a2
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions universal/ubi9/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,32 @@ mountpoint -q /home/user/; HOME_USER_MOUNTED=$?
STOW_COMPLETE=/home/user/.stow_completed

if [ $HOME_USER_MOUNTED -eq 0 ] && [ ! -f $STOW_COMPLETE ]; then
# There may be regular, non-symlink files in /home/user that match the
# pathing of files in /home/tooling. Stow will error out when it tries to
# stow on top of that. Instead, we can append to the current
# /home/tooling/.stow-local-ignore file to ignore pre-existing,
# non-symlinked files in /home/user that match those in /home/tooling before
# we run stow.
#
# Create two text files containing a sorted path-based list of files in
# /home/tooling and /home/user. Cut off "/home/user" and "/home/tooling" and
# only get the sub-paths so we can do a proper comparison
#
# In the case of /home/user, we want regular file types and not symbolic
# links.
find /home/user -type f -xtype f -print | sort | sed 's|/home/user||g' > /tmp/user.txt
find /home/tooling -print | sort | sed 's|/home/tooling||g' > /tmp/tooling.txt
# We compare the two files, trying to find files that exist in /home/user
# and /home/tooling. Being that the files that get flagged here are not
# already synlinks, we will want to ignore them.
IGNORE_FILES="$(comm -12 /tmp/user.txt /tmp/tooling.txt)"
# We no longer require the file lists, so remove them
rm /tmp/user.txt /tmp/tooling.txt
# For each file we need to ignore, append them to
# /home/tooling/.stow-local-ignore.
for f in $IGNORE_FILES; do echo "${f}" >> /home/tooling/.stow-local-ignore;done
# We are now ready to run stow
#
# Create symbolic links from /home/tooling/ -> /home/user/
stow . -t /home/user/ -d /home/tooling/ --no-folding -v 2 > /tmp/stow.log 2>&1
# Vim does not permit .viminfo to be a symbolic link for security reasons, so manually copy it
Expand Down

0 comments on commit 74af9a2

Please sign in to comment.