35 lines
		
	
	
		
			723 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			723 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" info "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" info "Symlinked `ln -svf $1 $2`"
 | 
						|
 |