dotfiles/lib/helper/mk_link
James Patrick 6c3787ef1b Refactored to use .ONESHELL
This makes it a hell of a lot simpler but will lose support for BSD
make. All effected machines are running gnu-make, so the cost benefit
ratio ways heavily in favor of doing this.
2020-03-09 13:37:50 -04:00

34 lines
722 B
Bash
Executable File

#! env zsh
# -*- sh -*-
REPORT="`dirname $0`/report"
if [ -z "$1" ] || [ -z "$2" ] ; then
"$REPORT" error "ERROR: Both to and from string must be defined.\n source: $1 \n symlnk: $2"
exit -1
fi
if [[ -h $2 ]] ; then
link_location=$(readlink $2)
if [[ "$1" == "$link_location" ]] ; then
"$REPORT" pass "Symlink already installed $1"
exit 0
else
"$REPORT" warn "Symlink already exist, buut doesn't point to the src"
exit 1
fi
fi
if [[ -e $2 ]] ; then
"$REPORT" warn "Something already exists at $2."
exit 1
fi
parent=$(dirname "$2")
if [[ ! -e $parent ]] ; then
"$REPORT" warn "$parent doesn't exist. Creating."
mkdir -p $parent
fi
"$REPORT" pass "Symlinked `ln -svf $1 $2`"