X-Git-Url: http://club.cc.cmu.edu/~cmccabe/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=install-symlinks.sh;h=dcaecf60da701057b7feddaf62873157747aba1e;hb=87a88474171a7c945a39bb40abdc5fc95845cd9d;hp=3588ed2e344e1110a991418bbeff214acdbc2477;hpb=a52fadc70df8054a6017d899f53a635f4fcdb82f;p=cmccabe-etc diff --git a/install-symlinks.sh b/install-symlinks.sh index 3588ed2..dcaecf6 100755 --- a/install-symlinks.sh +++ b/install-symlinks.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash # # install-symlinks.sh @@ -15,8 +15,22 @@ die() { exit 1 } -FULLPATH=`readlink -f $0` -BASEDIR=`dirname ${FULLPATH}` +copy_ssh_old=0 +for file in .bashrc .ssh .profile; do + if [ -f ../$file ]; then + if [ -L ../$file ]; then + : + else + echo "moving old $file to $file-old" + mv -f ../$file ../$file-old + if [ $file == .ssh ]; then + copy_ssh_old=1 + fi + fi + fi +done + +BASEDIR=`pwd` for file in ${BASEDIR}/.[^.]*; do # get base file name, like ".gitconfig" basefile=`basename ${file}` @@ -25,15 +39,14 @@ for file in ${BASEDIR}/.[^.]*; do relfile=`echo ${file} | sed 's_.*/\([^/]*/[^/]*\)$_\1_'` # skip files which we don't want to link - if [ "${basefile}" == ".git" ]; then - continue; - fi + [ "${basefile}" == ".git" ] && continue + [ "${basefile}" == ".gitignore" ] && continue pushd .. > /dev/null if [ -L ${basefile} ]; then # Someone already created this link. Pass over it in silence : - elif [ -z ${basefile} ]; then + elif [ ! -a ${basefile} ]; then # Create the link ln -s ${relfile} || die "failed to link ${relfile}" echo "created ${relfile}..." @@ -44,3 +57,10 @@ for file in ${BASEDIR}/.[^.]*; do fi popd > /dev/null done + +if [ $copy_ssh_old -eq 1 ]; then + echo "copying files from .ssh-old to .ssh" + cp -f ../.ssh-old/* ../.ssh + echo "chmod 600 ../.ssh/config" + chmod 600 ../.ssh/* +fi