aboutsummaryrefslogtreecommitdiff
path: root/clone_and_link.sh
diff options
context:
space:
mode:
Diffstat (limited to 'clone_and_link.sh')
-rwxr-xr-xclone_and_link.sh25
1 files changed, 24 insertions, 1 deletions
diff --git a/clone_and_link.sh b/clone_and_link.sh
index 9140361..94b09fa 100755
--- a/clone_and_link.sh
+++ b/clone_and_link.sh
@@ -5,9 +5,32 @@
set -e
dir=dot-files/files
+os=$(uname -o)
+
+create_windows_link()
+{
+ target=$target/$(basename "$link")
+ rm -rvf "$target"
+ if [ -d "$link" ] ; then
+ cmd /c mklink /D $(cygpath -w "$target") $(cygpath -w "$link")
+ else
+ cmd /c mklink $(cygpath -w "$target") $(cygpath -w "$link")
+ fi
+}
+
+create_link()
+{
+ local link=$1
+ local target=$2
+ case "$os" in
+ "Cygwin") create_windows_link ;;
+ *) ln --verbose --symbolic --force "$link" "$target" ;;
+ esac
+}
+
cd &&
ls --format=single-column --directory $dir/{,.}* | while read f ; do
[ "$f" == "$dir/." ] ||
[ "$f" == "$dir/.." ] ||
- ln --verbose --symbolic --force "$f" ~/test/
+ create_link "$f" .
done