From b4c6dcc419af06970f4a8ec1d00815cd0e89a36e Mon Sep 17 00:00:00 2001 From: William Ting Date: Wed, 8 Feb 2012 09:22:39 -1000 Subject: [PATCH 1/5] merged installations --- install.sh | 80 +++++++++++++++++++---------- install.zsh | 142 ---------------------------------------------------- 2 files changed, 54 insertions(+), 168 deletions(-) delete mode 100755 install.zsh diff --git a/install.sh b/install.sh index 5bc1811..7bf5fdd 100755 --- a/install.sh +++ b/install.sh @@ -15,12 +15,31 @@ #You should have received a copy of the GNU General Public License #along with autojump. If not, see . -function show_help { +function add_msg { + echo + echo "Please add the line to ~/.${2}rc :" + echo + + if [ "${1}" == "global" ]; then + echo -e "\tsource /etc/profile.d/autojump.${2}" + elif [ "${1}" == "local" ]; then + echo -e "\tsource ~/etc/profile.d/autojump.${2}" + fi + + echo + echo "You need to 'source ~/.${2}rc' before you can start using autojump." + echo + echo "To remove autojump, run './uninstall.sh'" + echo +} + +function help_msg { echo "sudo ./install.sh [--local] [--prefix /usr/local]" } # Default install directory. prefix=/usr +shell="bash" local= user=${SUDO_USER:-${USER}} @@ -37,7 +56,7 @@ bashrc_file=${user_home}/.bashrc while true; do case "$1" in -h|--help|-\?) - show_help; + help_msg; exit 0 ;; -l|--local) @@ -53,13 +72,17 @@ while true; do exit 1 fi ;; + -z|--zsh) + shell="zsh" + shift + ;; --) shift break ;; -*) echo "invalid option: $1" 1>&2; - show_help; + help_msg; exit 1 ;; *) @@ -87,35 +110,40 @@ cp -v jumpapplet ${prefix}/bin/ cp -v autojump ${prefix}/bin/ cp -v autojump.1 ${prefix}/share/man/man1/ +# global installation if [ ! ${local} ]; then - if [ -d "/etc/profile.d" ]; then - cp -v autojump.bash /etc/profile.d/ - cp -v autojump.sh /etc/profile.d/ + # install _j to the first accessible directory + if [ ${shell} == "zsh" ]; then + success= + for f in ${fpath} + do + cp _j $f && success=true && break + done - echo - echo "Add the following lines to your ~/.bashrc:" - echo - echo -e "\tsource ${prefix}/etc/profile.d/autojump.bash" - echo - echo "You need to source your ~/.bashrc (source ~/.bashrc) before you can start using autojump." - echo - echo "To remove autojump, delete the ${prefix} directory and relevant lines from ~/.bashrc." - echo + if [ ${success} ]; then + echo "Installed autocompletion file to ${f}" + else + 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..." + fi + fi + + if [ -d "/etc/profile.d" ]; then + cp -v autojump.sh /etc/profile.d/ + cp -v autojump.${shell} /etc/profile.d/ + add_msg "global" ${shell} else echo "Your distribution does not have a '/etc/profile.d/' directory, please create it manually or use the local install option." fi -else +else # local installation mkdir -p ${prefix}/etc/profile.d/ - cp -v autojump.bash ${prefix}/etc/profile.d/ cp -v autojump.sh ${prefix}/etc/profile.d/ + cp -v autojump.${shell} ${prefix}/etc/profile.d/ - echo - echo "Add the following lines to your ~/.bashrc:" - echo - echo -e "\tsource ${prefix}/etc/profile.d/autojump.bash" - echo - echo "You need to source your ~/.bashrc (source ~/.bashrc) before you can start using autojump." - echo - echo "To remove autojump, delete the ${prefix} directory and relevant lines from ~/.bashrc." - echo + if [ ${shell} == "zsh" ]; then + mkdir -p ${prefix}/functions/ + cp _j ${prefix}/functions/ + fi + + add_msg "local" ${shell} fi diff --git a/install.zsh b/install.zsh deleted file mode 100755 index ff3deb9..0000000 --- a/install.zsh +++ /dev/null @@ -1,142 +0,0 @@ -#!/usr/bin/env zsh -#Copyright Joel Schaerer 2008, 2009 -#This file is part of autojump - -#autojump is free software: you can redistribute it and/or modify -#it under the terms of the GNU General Public License as published by -#the Free Software Foundation, either version 3 of the License, or -#(at your option) any later version. -# -#autojump is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -# -#You should have received a copy of the GNU General Public License -#along with autojump. If not, see . - -function show_help { - echo "sudo ./install.zsh [--local] [--prefix /usr/local]" -} - -prefix=/usr -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 -done - -if [[ ${UID} != 0 ]] && ! ${local}; then - echo "Please rerun as root or use the --local option." - exit 1 -fi - -echo "Installing main files to ${prefix} ..." - -# add git revision to autojump -./git-version.sh - -mkdir -p ${prefix}/share/autojump/ -mkdir -p ${prefix}/bin/ -mkdir -p ${prefix}/share/man/man1/ -cp icon.png ${prefix}/share/autojump/ -cp jumpapplet ${prefix}/bin/ -cp autojump ${prefix}/bin/ -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 - - 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." - 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 - 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}/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, run ./uninstall.zsh" -fi From 02262b90892cc57d5820f5e57529697a9148c11b Mon Sep 17 00:00:00 2001 From: William Ting Date: Wed, 8 Feb 2012 09:55:36 -1000 Subject: [PATCH 2/5] hardcoded _j copy to distro default function location for global zsh installs --- install.sh | 15 ++++++--------- uninstall.sh | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/install.sh b/install.sh index 7bf5fdd..26672f7 100755 --- a/install.sh +++ b/install.sh @@ -27,7 +27,7 @@ function add_msg { fi echo - echo "You need to 'source ~/.${2}rc' before you can start using autojump." + echo "You need to run 'source ~/.${2}rc' before you can start using autojump." echo echo "To remove autojump, run './uninstall.sh'" echo @@ -115,16 +115,13 @@ if [ ! ${local} ]; then # install _j to the first accessible directory if [ ${shell} == "zsh" ]; then success= - for f in ${fpath} - do - cp _j $f && success=true && break - done + cp -v _j /usr/local/share/zsh/site-functions/ $f && success=true - if [ ${success} ]; then - echo "Installed autocompletion file to ${f}" - else + if [ ! ${success} ]; then + echo 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..." + echo "Installing the rest of autojump ..." + echo fi fi diff --git a/uninstall.sh b/uninstall.sh index 764f57c..7bd71e8 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -19,17 +19,18 @@ function help_msg { echo "sudo ./uninstall.sh [--prefix /usr/local]" } -# zsh: remove _j from fpath function remove_j { + # zsh: remove _j from fpath, only works within zsh # autocompletion file in the first directory of the FPATH variable - fail=true - for f in $fpath - do - if [ -f ${f}/_j ]; then - rm -v ${f}/_j || sudo rm -v ${f}/_j - break - fi - done + #fail=true + #for f in $fpath + #do + #if [ -f ${f}/_j ]; then + #rm -v ${f}/_j || sudo rm -v ${f}/_j + #break + #fi + #done + sudo rm -v /usr/local/share/zsh/site-functions/_j } function remove_msg { From 2718a056dfea12e9e308cadd2d5a5a130c606f90 Mon Sep 17 00:00:00 2001 From: William Ting Date: Wed, 8 Feb 2012 10:03:05 -1000 Subject: [PATCH 3/5] fix install help msg, clean up uninstall.sh --- install.sh | 2 +- uninstall.sh | 44 ++++++++++---------------------------------- 2 files changed, 11 insertions(+), 35 deletions(-) diff --git a/install.sh b/install.sh index 26672f7..9708050 100755 --- a/install.sh +++ b/install.sh @@ -34,7 +34,7 @@ function add_msg { } function help_msg { - echo "sudo ./install.sh [--local] [--prefix /usr/local]" + echo "sudo ./install.sh [--local] [--prefix /usr/local] [--zsh]" } # Default install directory. diff --git a/uninstall.sh b/uninstall.sh index 7bd71e8..bfe4b15 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -19,42 +19,16 @@ function help_msg { echo "sudo ./uninstall.sh [--prefix /usr/local]" } -function remove_j { - # zsh: remove _j from fpath, only works within zsh - # autocompletion file in the first directory of the FPATH variable - #fail=true - #for f in $fpath - #do - #if [ -f ${f}/_j ]; then - #rm -v ${f}/_j || sudo rm -v ${f}/_j - #break - #fi - #done - sudo rm -v /usr/local/share/zsh/site-functions/_j -} - function remove_msg { - if [ "${2}" == "bash" ]; then - echo - echo "Please remove the line from ${bashrc_file} :" - echo - if [ "${1}" == "global" ]; then - echo -e "\tsource /etc/profile.d/autojump.bash" - elif [ "${1}" == "local" ]; then - echo -e "\tsource ~/etc/profile.d/autojump.bash" - fi - echo - elif [ "${2}" == "zsh" ]; then - echo - echo "Please remove the line from ~/.zshrc :" - echo - if [ "${1}" == "global" ]; then - echo -e "\tsource /etc/profile.d/autojump.zsh" - elif [ "${1}" == "local" ]; then - echo -e "\tsource ~/etc/profile.d/autojump.zsh" - fi - echo + echo + echo "Please remove the line from .${2}rc :" + echo + if [ "${1}" == "global" ]; then + echo -e "\tsource /etc/profile.d/autojump.${2}" + elif [ "${1}" == "local" ]; then + echo -e "\tsource ~/etc/profile.d/autojump.${2}" fi + echo } # Default install directory. @@ -99,6 +73,8 @@ if [ -d "${prefix}/share/autojump/" ]; then sudo rm -v ${prefix}/bin/autojump sudo rm -v ${prefix}/share/man/man1/autojump.1 sudo rm -v /etc/profile.d/autojump.sh + sudo rm -v /usr/local/share/zsh/site-functions/_j + if [ -f /etc/profile.d/autojump.bash ]; then sudo rm -v /etc/profile.d/autojump.bash remove_msg "global" "bash" From e4b555dd1d097c478e7903a9fbdc7aaa2b99baf2 Mon Sep 17 00:00:00 2001 From: William Ting Date: Wed, 8 Feb 2012 10:04:41 -1000 Subject: [PATCH 4/5] minor formatting change --- install.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 9708050..21e9e12 100755 --- a/install.sh +++ b/install.sh @@ -96,7 +96,9 @@ if [[ ${UID} != 0 ]] && [ ! ${local} ]; then exit 1 fi -echo -e "Installing files to ${prefix} ...\n" +echo +echo "Installing files to ${prefix} ..." +echo # add git revision to autojump ./git-version.sh From ca162ff5ed26a2c013cbc8d96c1af4ccc181fff0 Mon Sep 17 00:00:00 2001 From: William Ting Date: Wed, 8 Feb 2012 10:11:47 -1000 Subject: [PATCH 5/5] minor redundancy edit --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 21e9e12..c94bb9f 100755 --- a/install.sh +++ b/install.sh @@ -117,7 +117,7 @@ if [ ! ${local} ]; then # install _j to the first accessible directory if [ ${shell} == "zsh" ]; then success= - cp -v _j /usr/local/share/zsh/site-functions/ $f && success=true + cp -v _j /usr/local/share/zsh/site-functions/ && success=true if [ ! ${success} ]; then echo