James Patrick
6c3787ef1b
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.
34 lines
722 B
Bash
Executable File
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`"
|