From 2a364ae73ee3f33065288055e3648bd04e5ab1fd Mon Sep 17 00:00:00 2001 From: William Ting Date: Tue, 7 Feb 2012 14:48:24 -1000 Subject: [PATCH 1/3] refactor install.zsh so only one line needs to be added to .zshrc --- autojump.zsh | 14 +++++++++----- install.zsh | 2 -- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/autojump.zsh b/autojump.zsh index 1f32269..be96b35 100644 --- a/autojump.zsh +++ b/autojump.zsh @@ -14,22 +14,26 @@ #You should have received a copy of the GNU General Public License #along with autojump. If not, see . -#determine the data directory according to the XDG Base Directory Specification -if [ -n "$XDG_DATA_HOME" ] -then +# determine the data directory according to the XDG Base Directory Specification +if [ -n "$XDG_DATA_HOME" ]; then export AUTOJUMP_DATA_DIR="$XDG_DATA_HOME/autojump" else export AUTOJUMP_DATA_DIR=~/.local/share/autojump fi -if [ ! -e "${AUTOJUMP_DATA_DIR}" ] -then +if [ ! -e "${AUTOJUMP_DATA_DIR}" ]; then mkdir -p "${AUTOJUMP_DATA_DIR}" mv ~/.autojump_py "${AUTOJUMP_DATA_DIR}/autojump_py" 2>>/dev/null #migration mv ~/.autojump_py.bak "${AUTOJUMP_DATA_DIR}/autojump_py.bak" 2>>/dev/null mv ~/.autojump_errors "${AUTOJUMP_DATA_DIR}/autojump_errors" 2>>/dev/null fi +# set paths if necessary for local installations +if [[ -d ~/.autojump/ ]]; then + path=(~/.autojump/bin $path) + fpath=(/home/ting/.autojump/functions/ $fpath) +fi + function autojump_preexec() { { (autojump -a "$(pwd -P)"&)>/dev/null 2>>|${AUTOJUMP_DATA_DIR}/.autojump_errors ; } 2>/dev/null } diff --git a/install.zsh b/install.zsh index c1e1fa2..3813d7b 100755 --- a/install.zsh +++ b/install.zsh @@ -128,8 +128,6 @@ else echo echo "Add the following lines to your ~/.zshrc:" echo - echo -e "\tpath=(${prefix}/bin \${path})" - echo -e "\tfpath=(${prefix}/functions \${fpath})" echo -e "\tsource ${prefix}/etc/profile.d/autojump.zsh" echo echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." From d2a8036816da05eb7c73565c63a1bcad2e2bfd01 Mon Sep 17 00:00:00 2001 From: William Ting Date: Tue, 7 Feb 2012 14:49:24 -1000 Subject: [PATCH 2/3] reformat install.zsh from tabs to spaces to match project files --- install.zsh | 172 ++++++++++++++++++++++++++-------------------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/install.zsh b/install.zsh index 3813d7b..83821e5 100755 --- a/install.zsh +++ b/install.zsh @@ -16,7 +16,7 @@ #along with autojump. If not, see . function show_help { - echo "sudo ./install.zsh [--local] [--prefix /usr/local]" + echo "sudo ./install.zsh [--local] [--prefix /usr/local]" } prefix=/usr @@ -24,42 +24,42 @@ local=false #command line parsing while true; do - case "$1" in - -h|--help|-\?) - show_help - exit 0 - ;; - -l|--local) - local=true - prefix=~/.autojump - shift - ;; - -p|--prefix) - if [ $# -gt 1 ]; then - prefix=$2; shift 2 - else - echo "--prefix or -p require an argument" 1>&2 - exit 1 - fi - ;; - --) - shift - break - ;; - -*) - echo "invalid option: $1" 1>&2 - show_help - exit 1 - ;; - *) - break - ;; - esac + case "$1" in + -h|--help|-\?) + show_help + exit 0 + ;; + -l|--local) + local=true + prefix=~/.autojump + shift + ;; + -p|--prefix) + if [ $# -gt 1 ]; then + prefix=$2; shift 2 + else + echo "--prefix or -p require an argument" 1>&2 + exit 1 + fi + ;; + --) + shift + break + ;; + -*) + echo "invalid option: $1" 1>&2 + show_help + exit 1 + ;; + *) + break + ;; + esac done if [[ ${UID} != 0 ]] && ! ${local}; then - echo "Please rerun as root or use the --local option." - exit 1 + echo "Please rerun as root or use the --local option." + exit 1 fi echo "Installing main files to ${prefix} ..." @@ -77,60 +77,60 @@ cp autojump.1 ${prefix}/share/man/man1/ # autocompletion file in the first directory of the FPATH variable if ( ! ${local} ); then - fail=true - for f in $fpath - do - cp _j $f && fail=false && break - done - if $fail - then - echo "Couldn't find a place to put the autocompletion file, please copy _j into your \$fpath" - echo "Still trying to install the rest of autojump..." - else - echo "Installed autocompletion file to $f" - fi + fail=true + for f in $fpath + do + cp _j $f && fail=false && break + done + if $fail + then + echo "Couldn't find a place to put the autocompletion file, please copy _j into your \$fpath" + echo "Still trying to install the rest of autojump..." + else + echo "Installed autocompletion file to $f" + fi - if [ -d "/etc/profile.d" ]; then - cp -v autojump.zsh /etc/profile.d/ - cp -v autojump.sh /etc/profile.d/ - echo - echo "Add the following line to your ~/.zshrc:" - echo - echo -e "\tsource /etc/profile.d/autojump.zsh" - echo - echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." - else - echo "Your distribution does not have a /etc/profile.d directory, the default that we install one of the scripts to. Would you like us to copy it into your ~/.zshrc file to make it work? (If you have done this once before, delete the old version before doing it again.) [y/n]" - read ans - if [ ${#ans} -gt 0 ]; then - if [ $ans = "y" -o $ans = "Y" -o $ans = "yes" -o $ans = "Yes" ]; then - echo "" >> ~/.zshrc - echo "#autojump" >> ~/.zshrc - cat autojump.zsh >> ~/.zshrc - echo "Done!" - echo - echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." - else - echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" - fi - else - echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" - fi - fi + if [ -d "/etc/profile.d" ]; then + cp -v autojump.zsh /etc/profile.d/ + cp -v autojump.sh /etc/profile.d/ + echo + echo "Add the following line to your ~/.zshrc:" + echo + echo -e "\tsource /etc/profile.d/autojump.zsh" + echo + echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." + else + echo "Your distribution does not have a /etc/profile.d directory, the default that we install one of the scripts to. Would you like us to copy it into your ~/.zshrc file to make it work? (If you have done this once before, delete the old version before doing it again.) [y/n]" + read ans + if [ ${#ans} -gt 0 ]; then + if [ $ans = "y" -o $ans = "Y" -o $ans = "yes" -o $ans = "Yes" ]; then + echo "" >> ~/.zshrc + echo "#autojump" >> ~/.zshrc + cat autojump.zsh >> ~/.zshrc + echo "Done!" + echo + echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." + else + echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" + fi + else + echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" + fi + fi else - mkdir -p ${prefix}/functions/ - cp _j ${prefix}/functions/ + mkdir -p ${prefix}/functions/ + cp _j ${prefix}/functions/ - mkdir -p ${prefix}/etc/profile.d/ - cp autojump.zsh ${prefix}/etc/profile.d/ - cp autojump.sh ${prefix}/etc/profile.d/ + mkdir -p ${prefix}/etc/profile.d/ + cp autojump.zsh ${prefix}/etc/profile.d/ + cp autojump.sh ${prefix}/etc/profile.d/ - echo - echo "Add the following lines to your ~/.zshrc:" - echo - echo -e "\tsource ${prefix}/etc/profile.d/autojump.zsh" - echo - echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." - echo - echo "To remove autojump, delete the ${prefix} directory and relevant lines from ~/.zshrc." + echo + echo "Add the following lines to your ~/.zshrc:" + echo + echo -e "\tsource ${prefix}/etc/profile.d/autojump.zsh" + echo + echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." + echo + echo "To remove autojump, delete the ${prefix} directory and relevant lines from ~/.zshrc." fi From 1557dfa0d86eaa5f17db1a8bf316cc9409b057b4 Mon Sep 17 00:00:00 2001 From: William Ting Date: Tue, 7 Feb 2012 15:06:01 -1000 Subject: [PATCH 3/3] inform user of uninstallation scripts during installation process. --- install.zsh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/install.zsh b/install.zsh index 83821e5..ff3deb9 100755 --- a/install.zsh +++ b/install.zsh @@ -99,6 +99,12 @@ if ( ! ${local} ); then echo -e "\tsource /etc/profile.d/autojump.zsh" echo echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." + echo + if [[ ${prefix} != "/usr" ]]; then + echo "To remove autojump, run ./uninstall.zsh --prefix ${prefix}" + else + echo "To remove autojump, run ./uninstall.zsh" + fi else echo "Your distribution does not have a /etc/profile.d directory, the default that we install one of the scripts to. Would you like us to copy it into your ~/.zshrc file to make it work? (If you have done this once before, delete the old version before doing it again.) [y/n]" read ans @@ -132,5 +138,5 @@ else echo echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." echo - echo "To remove autojump, delete the ${prefix} directory and relevant lines from ~/.zshrc." + echo "To remove autojump, run ./uninstall.zsh" fi