1
0
mirror of https://github.com/wting/autojump synced 2024-10-27 20:34:07 +00:00

Merge pull request #101 from wting/merge_installs

Merge installation scripts
This commit is contained in:
Joel Schaerer 2012-02-08 12:22:50 -08:00
commit 9deb429a61
3 changed files with 65 additions and 203 deletions

View File

@ -15,12 +15,31 @@
#You should have received a copy of the GNU General Public License #You should have received a copy of the GNU General Public License
#along with autojump. If not, see <http://www.gnu.org/licenses/>. #along with autojump. If not, see <http://www.gnu.org/licenses/>.
function show_help { function add_msg {
echo "sudo ./install.sh [--local] [--prefix /usr/local]" 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. # Default install directory.
prefix=/usr prefix=/usr
shell="bash"
local= local=
user=${SUDO_USER:-${USER}} user=${SUDO_USER:-${USER}}
@ -37,7 +56,7 @@ bashrc_file=${user_home}/.bashrc
while true; do while true; do
case "$1" in case "$1" in
-h|--help|-\?) -h|--help|-\?)
show_help; help_msg;
exit 0 exit 0
;; ;;
-l|--local) -l|--local)
@ -53,13 +72,17 @@ while true; do
exit 1 exit 1
fi fi
;; ;;
-z|--zsh)
shell="zsh"
shift
;;
--) --)
shift shift
break break
;; ;;
-*) -*)
echo "invalid option: $1" 1>&2; echo "invalid option: $1" 1>&2;
show_help; help_msg;
exit 1 exit 1
;; ;;
*) *)
@ -73,7 +96,9 @@ if [[ ${UID} != 0 ]] && [ ! ${local} ]; then
exit 1 exit 1
fi fi
echo -e "Installing files to ${prefix} ...\n" echo
echo "Installing files to ${prefix} ..."
echo
# add git revision to autojump # add git revision to autojump
./git-version.sh ./git-version.sh
@ -87,35 +112,37 @@ cp -v jumpapplet ${prefix}/bin/
cp -v autojump ${prefix}/bin/ cp -v autojump ${prefix}/bin/
cp -v autojump.1 ${prefix}/share/man/man1/ cp -v autojump.1 ${prefix}/share/man/man1/
# global installation
if [ ! ${local} ]; then if [ ! ${local} ]; then
if [ -d "/etc/profile.d" ]; then # install _j to the first accessible directory
cp -v autojump.bash /etc/profile.d/ if [ ${shell} == "zsh" ]; then
cp -v autojump.sh /etc/profile.d/ success=
cp -v _j /usr/local/share/zsh/site-functions/ && success=true
if [ ! ${success} ]; then
echo echo
echo "Add the following lines to your ~/.bashrc:" echo "Couldn't find a place to put the autocompletion file, please copy _j into your \$fpath"
echo echo "Installing the rest of autojump ..."
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 echo
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 else
echo "Your distribution does not have a '/etc/profile.d/' directory, please create it manually or use the local install option." echo "Your distribution does not have a '/etc/profile.d/' directory, please create it manually or use the local install option."
fi fi
else else # local installation
mkdir -p ${prefix}/etc/profile.d/ 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.sh ${prefix}/etc/profile.d/
cp -v autojump.${shell} ${prefix}/etc/profile.d/
echo if [ ${shell} == "zsh" ]; then
echo "Add the following lines to your ~/.bashrc:" mkdir -p ${prefix}/functions/
echo cp _j ${prefix}/functions/
echo -e "\tsource ${prefix}/etc/profile.d/autojump.bash" fi
echo
echo "You need to source your ~/.bashrc (source ~/.bashrc) before you can start using autojump." add_msg "local" ${shell}
echo
echo "To remove autojump, delete the ${prefix} directory and relevant lines from ~/.bashrc."
echo
fi fi

View File

@ -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 <http://www.gnu.org/licenses/>.
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

View File

@ -19,41 +19,16 @@ function help_msg {
echo "sudo ./uninstall.sh [--prefix /usr/local]" 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 { function remove_msg {
if [ "${2}" == "bash" ]; then
echo echo
echo "Please remove the line from ${bashrc_file} :" echo "Please remove the line from .${2}rc :"
echo echo
if [ "${1}" == "global" ]; then if [ "${1}" == "global" ]; then
echo -e "\tsource /etc/profile.d/autojump.bash" echo -e "\tsource /etc/profile.d/autojump.${2}"
elif [ "${1}" == "local" ]; then elif [ "${1}" == "local" ]; then
echo -e "\tsource ~/etc/profile.d/autojump.bash" echo -e "\tsource ~/etc/profile.d/autojump.${2}"
fi fi
echo 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
fi
} }
# Default install directory. # Default install directory.
@ -98,6 +73,8 @@ if [ -d "${prefix}/share/autojump/" ]; then
sudo rm -v ${prefix}/bin/autojump sudo rm -v ${prefix}/bin/autojump
sudo rm -v ${prefix}/share/man/man1/autojump.1 sudo rm -v ${prefix}/share/man/man1/autojump.1
sudo rm -v /etc/profile.d/autojump.sh 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 if [ -f /etc/profile.d/autojump.bash ]; then
sudo rm -v /etc/profile.d/autojump.bash sudo rm -v /etc/profile.d/autojump.bash
remove_msg "global" "bash" remove_msg "global" "bash"