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

Merge pull request #94 from wting/zsh-install-refactor

zsh install: only one line needs to be added to .zshrc now
This commit is contained in:
Joel Schaerer 2012-02-07 22:57:01 -08:00
commit ab89fafc9f
2 changed files with 101 additions and 93 deletions

View File

@ -14,22 +14,26 @@
#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/>.
#determine the data directory according to the XDG Base Directory Specification # determine the data directory according to the XDG Base Directory Specification
if [ -n "$XDG_DATA_HOME" ] if [ -n "$XDG_DATA_HOME" ]; then
then
export AUTOJUMP_DATA_DIR="$XDG_DATA_HOME/autojump" export AUTOJUMP_DATA_DIR="$XDG_DATA_HOME/autojump"
else else
export AUTOJUMP_DATA_DIR=~/.local/share/autojump export AUTOJUMP_DATA_DIR=~/.local/share/autojump
fi fi
if [ ! -e "${AUTOJUMP_DATA_DIR}" ] if [ ! -e "${AUTOJUMP_DATA_DIR}" ]; then
then
mkdir -p "${AUTOJUMP_DATA_DIR}" mkdir -p "${AUTOJUMP_DATA_DIR}"
mv ~/.autojump_py "${AUTOJUMP_DATA_DIR}/autojump_py" 2>>/dev/null #migration 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_py.bak "${AUTOJUMP_DATA_DIR}/autojump_py.bak" 2>>/dev/null
mv ~/.autojump_errors "${AUTOJUMP_DATA_DIR}/autojump_errors" 2>>/dev/null mv ~/.autojump_errors "${AUTOJUMP_DATA_DIR}/autojump_errors" 2>>/dev/null
fi 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() { function autojump_preexec() {
{ (autojump -a "$(pwd -P)"&)>/dev/null 2>>|${AUTOJUMP_DATA_DIR}/.autojump_errors ; } 2>/dev/null { (autojump -a "$(pwd -P)"&)>/dev/null 2>>|${AUTOJUMP_DATA_DIR}/.autojump_errors ; } 2>/dev/null
} }

View File

@ -16,7 +16,7 @@
#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 show_help {
echo "sudo ./install.zsh [--local] [--prefix /usr/local]" echo "sudo ./install.zsh [--local] [--prefix /usr/local]"
} }
prefix=/usr prefix=/usr
@ -24,42 +24,42 @@ local=false
#command line parsing #command line parsing
while true; do while true; do
case "$1" in case "$1" in
-h|--help|-\?) -h|--help|-\?)
show_help show_help
exit 0 exit 0
;; ;;
-l|--local) -l|--local)
local=true local=true
prefix=~/.autojump prefix=~/.autojump
shift shift
;; ;;
-p|--prefix) -p|--prefix)
if [ $# -gt 1 ]; then if [ $# -gt 1 ]; then
prefix=$2; shift 2 prefix=$2; shift 2
else else
echo "--prefix or -p require an argument" 1>&2 echo "--prefix or -p require an argument" 1>&2
exit 1 exit 1
fi fi
;; ;;
--) --)
shift shift
break break
;; ;;
-*) -*)
echo "invalid option: $1" 1>&2 echo "invalid option: $1" 1>&2
show_help show_help
exit 1 exit 1
;; ;;
*) *)
break break
;; ;;
esac esac
done done
if [[ ${UID} != 0 ]] && ! ${local}; then if [[ ${UID} != 0 ]] && ! ${local}; then
echo "Please rerun as root or use the --local option." echo "Please rerun as root or use the --local option."
exit 1 exit 1
fi fi
echo "Installing main files to ${prefix} ..." echo "Installing main files to ${prefix} ..."
@ -77,62 +77,66 @@ cp autojump.1 ${prefix}/share/man/man1/
# autocompletion file in the first directory of the FPATH variable # autocompletion file in the first directory of the FPATH variable
if ( ! ${local} ); then if ( ! ${local} ); then
fail=true fail=true
for f in $fpath for f in $fpath
do do
cp _j $f && fail=false && break cp _j $f && fail=false && break
done done
if $fail if $fail
then then
echo "Couldn't find a place to put the autocompletion file, please copy _j into your \$fpath" 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 "Still trying to install the rest of autojump..."
else else
echo "Installed autocompletion file to $f" echo "Installed autocompletion file to $f"
fi fi
if [ -d "/etc/profile.d" ]; then if [ -d "/etc/profile.d" ]; then
cp -v autojump.zsh /etc/profile.d/ cp -v autojump.zsh /etc/profile.d/
cp -v autojump.sh /etc/profile.d/ cp -v autojump.sh /etc/profile.d/
echo echo
echo "Add the following line to your ~/.zshrc:" echo "Add the following line to your ~/.zshrc:"
echo echo
echo -e "\tsource /etc/profile.d/autojump.zsh" echo -e "\tsource /etc/profile.d/autojump.zsh"
echo echo
echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump."
else echo
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]" if [[ ${prefix} != "/usr" ]]; then
read ans echo "To remove autojump, run ./uninstall.zsh --prefix ${prefix}"
if [ ${#ans} -gt 0 ]; then else
if [ $ans = "y" -o $ans = "Y" -o $ans = "yes" -o $ans = "Yes" ]; then echo "To remove autojump, run ./uninstall.zsh"
echo "" >> ~/.zshrc fi
echo "#autojump" >> ~/.zshrc else
cat autojump.zsh >> ~/.zshrc 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]"
echo "Done!" read ans
echo if [ ${#ans} -gt 0 ]; then
echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." if [ $ans = "y" -o $ans = "Y" -o $ans = "yes" -o $ans = "Yes" ]; then
else echo "" >> ~/.zshrc
echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" echo "#autojump" >> ~/.zshrc
fi cat autojump.zsh >> ~/.zshrc
else echo "Done!"
echo "Then you need to put autojump.zsh, or the code from it, somewhere where it will get read. Good luck!" echo
fi echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump."
fi 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 else
mkdir -p ${prefix}/functions/ mkdir -p ${prefix}/functions/
cp _j ${prefix}/functions/ cp _j ${prefix}/functions/
mkdir -p ${prefix}/etc/profile.d/ mkdir -p ${prefix}/etc/profile.d/
cp autojump.zsh ${prefix}/etc/profile.d/ cp autojump.zsh ${prefix}/etc/profile.d/
cp autojump.sh ${prefix}/etc/profile.d/ cp autojump.sh ${prefix}/etc/profile.d/
echo echo
echo "Add the following lines to your ~/.zshrc:" echo "Add the following lines to your ~/.zshrc:"
echo echo
echo -e "\tpath=(${prefix}/bin \${path})" echo -e "\tsource ${prefix}/etc/profile.d/autojump.zsh"
echo -e "\tfpath=(${prefix}/functions \${fpath})" echo
echo -e "\tsource ${prefix}/etc/profile.d/autojump.zsh" echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump."
echo echo
echo "You need to source your ~/.zshrc (source ~/.zshrc) before you can start using autojump." echo "To remove autojump, run ./uninstall.zsh"
echo
echo "To remove autojump, delete the ${prefix} directory and relevant lines from ~/.zshrc."
fi fi