diff --git a/install.sh b/install.sh
index 5bc1811..c94bb9f 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 {
- echo "sudo ./install.sh [--local] [--prefix /usr/local]"
+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 run '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] [--zsh]"
}
# 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
;;
*)
@@ -73,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
@@ -87,35 +112,37 @@ cp -v jumpapplet ${prefix}/bin/
cp -v autojump ${prefix}/bin/
cp -v autojump.1 ${prefix}/share/man/man1/
+# global installation
if [ ! ${local} ]; then
+ # install _j to the first accessible directory
+ if [ ${shell} == "zsh" ]; then
+ success=
+ cp -v _j /usr/local/share/zsh/site-functions/ && success=true
+
+ if [ ! ${success} ]; then
+ echo
+ echo "Couldn't find a place to put the autocompletion file, please copy _j into your \$fpath"
+ echo "Installing the rest of autojump ..."
+ echo
+ fi
+ fi
+
if [ -d "/etc/profile.d" ]; then
- cp -v autojump.bash /etc/profile.d/
cp -v autojump.sh /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
+ 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
diff --git a/uninstall.sh b/uninstall.sh
index 764f57c..bfe4b15 100755
--- a/uninstall.sh
+++ b/uninstall.sh
@@ -19,41 +19,16 @@ function help_msg {
echo "sudo ./uninstall.sh [--prefix /usr/local]"
}
-# zsh: remove _j from fpath
-function remove_j {
- # 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
-}
-
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.
@@ -98,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"