#!/bin/bash

if [[ "$OS" = 'Windows_NT' ]]
then
  junction=$(ls ../bin/createlink 2>/dev/null)
fi
[[ -z "$junction" ]] && junction='cp -f'

srcs=$(echo $* | awk '{ for (i=1; i<NF; i++) printf "%s ", $i}')
dest=$(echo $* | awk '{ printf $NF}')
[[ -z "$srcs" ]] && exit 0
[[ -z "$dest" ]] && exit 0

#if multiple sources, target must be a directory
num=$(echo $srcs | awk '{ printf NF }')
if [[ $num -gt 1 ]]
then
  if [[ ! -d "$dest" ]]
  then
    echo "The target is not a directory or does not exist!"
    exit 1;
  fi
fi

for src in $srcs
do
  while [[ ! -r $src ]]
  do
#Strip one ../ from the source path
    src=$(echo $src | awk -F/ '{printf "%s",$2;for (i=3;i<=NF;i++) printf "/%s",$i}')
  done
  if [[ -n "$src" ]]
  then
    destFile="$dest"
    [[ -d "$dest" ]] && destFile="$dest/$(basename "$src")"
    [[ -f "$destFile" ]] && /bin/rm -f "$destFile"
    winSrc="$(cygpath -w "$src")"
    winDst="$(cygpath -w "$destFile")"
    # echo $junction "$winSrc" "$winDst"
    $junction "$winSrc" "$winDst"
    status=$?
    [[ $status -ne 0 ]] && echo "ERROR" && exit $status
  fi
done

exit 0
