added synlink creation/update utility
This commit is contained in:
43
autodeploy/symlink.sh
Executable file
43
autodeploy/symlink.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
function symlink() {
|
||||
local target="$1"
|
||||
local link="$2"
|
||||
|
||||
local arrow="$link -> $target"
|
||||
local current_target=$(readlink "$link")
|
||||
|
||||
# link is already correct
|
||||
if [ -L "$link" ] && [ "$current_target" == "$target" ]; then
|
||||
echo "Symlink ($arrow) already exists"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# link exists but is not a symlink
|
||||
if [ -e "$link" ] && [ ! -L "$link" ]; then
|
||||
echo "Error: $link exists but is not a symlink"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# link points to wrong target
|
||||
if [ -L "$link" ]; then
|
||||
echo "Symlink $link points to the wrong target: $current_target"
|
||||
rm "$link"
|
||||
fi
|
||||
|
||||
ln -s "$target" "$link"
|
||||
echo "Symlink ($arrow) created"
|
||||
}
|
||||
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "Usage: $0 <target> <link>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
target="$1"
|
||||
link="$2"
|
||||
|
||||
symlink "$target" "$link"
|
||||
|
||||
|
Reference in New Issue
Block a user