1
0
mirror of https://github.com/wting/autojump synced 2024-10-27 20:34:07 +00:00
This commit is contained in:
GitHub Merge Button 2011-06-20 02:13:33 -07:00
commit 9aa6ad537a
4 changed files with 106 additions and 63 deletions

View File

@ -104,9 +104,9 @@ before the first step.
Manual installation of autojump is very simple: copy Manual installation of autojump is very simple: copy
- autojump to /usr/bin, - autojump to /usr/local/bin,
- autojump.sh to /etc/profile.d, - autojump.sh to /etc/profile.d,
- autojump.1 to /usr/share/man/man1. - autojump.1 to /usr/local/share/man/man1.
Make sure to source ``/etc/profile`` in your ``.bashrc`` or ``.zshrc`` :: Make sure to source ``/etc/profile`` in your ``.bashrc`` or ``.zshrc`` ::
@ -136,15 +136,15 @@ To completely remove autojump you should remove these files:
``/etc/profile.d/autojump.zsh`` ``/etc/profile.d/autojump.zsh``
``/usr/bin/autojump`` ``/usr/local/bin/autojump``
``/usr/bin/jumpapplet`` ``/usr/local/bin/jumpapplet``
``/usr/share/autojump/icon.png`` ``/usr/local/share/autojump/icon.png``
``/usr/share/autojump/`` ``/usr/local/share/autojump/``
``/usr/share/man/man1/autojump.1`` ``/usr/local/share/man/man1/autojump.1``
Remove any mention of autojump in your ``.bashrc`` or ``.zshrc``, then in currently running shells do:``source /etc/profile``. Remove any mention of autojump in your ``.bashrc`` or ``.zshrc``, then in currently running shells do:``source /etc/profile``.

View File

@ -25,18 +25,11 @@ _autojump()
done < <(autojump --bash --completion $cur) done < <(autojump --bash --completion $cur)
} }
complete -F _autojump j complete -F _autojump j
#data_dir=${XDG_DATA_HOME:-$([ -e ~/.local/share ] && echo ~/.local/share || echo ~)}
data_dir=$([ -e ~/.local/share ] && echo ~/.local/share || echo ~)
export AUTOJUMP_HOME=${HOME} export AUTOJUMP_HOME=${HOME}
if [[ "$data_dir" = "${HOME}" ]] export AUTOJUMP_DATA_DIR=${HOME}/.autojump
then if [ ! -d ${AUTOJUMP_DATA_DIR} ]; then
export AUTOJUMP_DATA_DIR=${data_dir} mkdir -p ${AUTOJUMP_DATA_DIR}
else
export AUTOJUMP_DATA_DIR=${data_dir}/autojump
fi
if [ ! -e "${AUTOJUMP_DATA_DIR}" ]
then
mkdir "${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
@ -44,7 +37,8 @@ fi
AUTOJUMP='{ [[ "$AUTOJUMP_HOME" == "$HOME" ]] && (autojump -a "$(pwd -P)"&)>/dev/null 2>>${AUTOJUMP_DATA_DIR}/autojump_errors;} 2>/dev/null' AUTOJUMP='{ [[ "$AUTOJUMP_HOME" == "$HOME" ]] && (autojump -a "$(pwd -P)"&)>/dev/null 2>>${AUTOJUMP_DATA_DIR}/autojump_errors;} 2>/dev/null'
if [[ ! $PROMPT_COMMAND =~ autojump ]]; then if [[ ! $PROMPT_COMMAND =~ autojump ]]; then
export PROMPT_COMMAND="${PROMPT_COMMAND:-:} ; $AUTOJUMP" export PROMPT_COMMAND="${PROMPT_COMMAND:-:} ; $AUTOJUMP"
fi fi
alias jumpstat="autojump --stat" alias jumpstat="autojump --stat"
function j { new_path="$(autojump $@)";if [ -n "$new_path" ]; then echo -e "\\033[31m${new_path}\\033[0m"; cd "$new_path";else false; fi } function j { new_path="$(autojump $@)";if [ -n "$new_path" ]; then echo -e "\\033[31m${new_path}\\033[0m"; cd "$new_path"; else false; fi }

View File

@ -19,9 +19,6 @@ function show_help {
echo "sudo ./install.sh [--prefix /usr/local]" echo "sudo ./install.sh [--prefix /usr/local]"
} }
# Default install directory.
prefix=/usr
# Command line parsing # Command line parsing
while true; do while true; do
case "$1" in case "$1" in
@ -38,21 +35,62 @@ while true; do
esac esac
done done
uninstall=0;
if [ -f "/usr/bin/autojump" ]; then
while true; do
read -p "Old installation detected, remove? [Yn] " yn
case $yn in
[Yy]* ) uninstall=1; break;;
[Nn]* ) "Already installed, exiting." exit 1;;
* ) uninstall=1; break;;
esac
done
fi
if [ ${uninstall} == 1 ]; then
echo "Deleting old installation files ..."
sudo rm -r /usr/share/autojump/
sudo rm /usr/bin/autojump
sudo rm /usr/bin/jumpapplet
sudo rm /usr/share/man/man1/autojump.1
fi
all_users=0;
while true; do
read -p "Install for all users (requires root)? [Yn] " yn
case $yn in
[Yy]* ) all_users=1; break;;
[Nn]* ) all_users=0; break;;
* ) all_users=1; break;;
esac
done
prefix=/usr/local
if [ ${all_users} == 0 ]; then
prefix=${HOME}/.autojump
fi
echo "Installing to ${prefix} ..." echo "Installing to ${prefix} ..."
# INSTALL AUTOJUMP # INSTALL AUTOJUMP
sudo mkdir -p ${prefix}/share/autojump/ if [ ${all_users} == 1 ]; then
sudo mkdir -p ${prefix}/bin/ sudo mkdir -p ${prefix}/share/autojump/
sudo mkdir -p ${prefix}/share/man/man1/ sudo mkdir -p ${prefix}/bin/
sudo cp icon.png ${prefix}/share/autojump/ sudo mkdir -p ${prefix}/share/man/man1/
sudo cp jumpapplet ${prefix}/bin/ sudo cp icon.png ${prefix}/share/autojump/
sudo cp autojump ${prefix}/bin/ sudo cp jumpapplet ${prefix}/bin/
sudo cp autojump.1 ${prefix}/share/man/man1/ sudo cp autojump ${prefix}/bin/
sudo cp autojump.1 ${prefix}/share/man/man1/
if [ -d "/etc/profile.d" ]; then sudo mkdir -p /etc/profile.d/
sudo cp autojump.bash /etc/profile.d/ sudo cp autojump.bash /etc/profile.d/
sudo cp autojump.sh /etc/profile.d/ sudo cp autojump.sh /etc/profile.d/
# Fail sudo install
if [ ! -f ${prefix}/bin/autojump ] || [ ! -f ${prefix}/share/man/man1/autojump.1 ] || [ ! -f /etc/profile.d/autojump.bash ] || [ ! -f /etc/profile.d/autojump.sh ]; then
echo "Autojump was not installed, please try again using single user installation or with the correct sudo password."
exit 1
fi
# Make sure that the code we just copied has been sourced. # Make sure that the code we just copied has been sourced.
# check if .bashrc has sourced /etc/profile or /etc/profile.d/autojump.bash # check if .bashrc has sourced /etc/profile or /etc/profile.d/autojump.bash
if [ `grep -c "^[[:space:]]*\(source\|\.\) /etc/profile\(\.d/autojump\.bash\)[[:space:]]*$" ~/.bashrc` -eq 0 ]; then if [ `grep -c "^[[:space:]]*\(source\|\.\) /etc/profile\(\.d/autojump\.bash\)[[:space:]]*$" ~/.bashrc` -eq 0 ]; then
@ -62,35 +100,46 @@ if [ -d "/etc/profile.d" ]; then
echo "# Added by autojump install.sh" >> ~/.bashrc echo "# Added by autojump install.sh" >> ~/.bashrc
echo "source /etc/profile.d/autojump.bash" >> ~/.bashrc echo "source /etc/profile.d/autojump.bash" >> ~/.bashrc
fi fi
echo "Done!"
echo
echo "You need to source your ~/.bashrc (source ~/.bashrc) before you can start using autojump."
else 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 ~/.bashrc file to make it work? (If you have done this once before, delete the old version before doing it again.) [y/n]" mkdir -p ${prefix}/share/autojump/
read ans mkdir -p ${prefix}/bin/
if [ ${#ans} -gt 0 ]; then mkdir -p ${prefix}/share/man/man1/
if [ $ans = "y" -o $ans = "Y" -o $ans = "yes" -o $ans = "Yes" ]; then cp icon.png ${prefix}/share/autojump/
cp jumpapplet ${prefix}/bin/
cp autojump ${prefix}/bin/
cp autojump.1 ${prefix}/share/man/man1/
mkdir -p ${prefix}/etc/profile.d/
cp autojump.bash ${prefix}/etc/profile.d/
cp autojump.sh ${prefix}/etc/profile.d/
# Answered yes. Go ahead and add the autojump code if [ `grep -c "^[[:space:]]*\(source\|\.\) ${prefix}/etc/profile\(\.d/autojump\.bash\)[[:space:]]*$" ~/.bashrc` -eq 0 ]; then
echo "" >> ~/.bashrc echo "Your .bashrc doesn't seem to source /etc/profile or /etc/profile.d/autojump.bash"
echo "#autojump" >> ~/.bashrc echo "Adding the /etc/profile.d/autojump.bash to your .bashrc"
cat autojump.bash | grep -v "^#" >> ~/.bashrc echo "" >> ~/.bashrc
echo "# Added by autojump install.sh" >> ~/.bashrc
# Since OSX uses .bash_profile, we need to make sure that .bashrc is properly sourced. echo "source ${prefix}/etc/profile.d/autojump.bash" >> ~/.bashrc
# Makes the assumption that if they have a line: source ~/.bashrc or . ~/.bashrc, that
# .bashrc has been properly sourced and you don't need to add it.
OS=`uname`
if [ $OS == 'Darwin' -a `grep -c "^[[:space:]]*\(source\|\.\) /etc/profile\(\.d/autojump\.bash\)[[:space:]]*$" ~/.bash_profile` -eq 0 ]; then
echo "You are using OSX and your .bash_profile doesn't seem to be sourcing .bashrc"
echo "Adding source ~/.bashrc to your bashrc"
echo -e "\n# Get the aliases and functions" >> ~/.bash_profile
echo -e "if [ -f ~/.bashrc ]; then\n . ~/.bashrc\nfi" >> ~/.bash_profile
fi
echo "You need to source your ~/.bashrc (source ~/.bashrc) before you can start using autojump."
else
echo "Then you need to put autojump.sh, or the code from it, somewhere where it will get read. Good luck!"
fi
else
echo "Then you need to put autojump.sh, or the code from it, somewhere where it will get read. Good luck!"
fi fi
if [ `grep -c ".*PATH.*.autojump/bin" ~/.bashrc` -eq 0 ]; then
echo "Your .bashrc doesn't seem to have ${prefix}/bin in your \$PATH"
echo "Adding the ${prefix}/bin/ to your PATH"
echo "" >> ~/.bashrc
echo "# Added by autojump install.sh" >> ~/.bashrc
echo 'export PATH=${PATH}:~/.autojump/bin' >> ~/.bashrc
fi
fi fi
# Since OSX uses .bash_profile, we need to make sure that .bashrc is properly sourced.
# Makes the assumption that if they have a line: source ~/.bashrc or . ~/.bashrc, that
# .bashrc has been properly sourced and you don't need to add it.
if [ `uname` == "Darwin" ] && [ `grep -c "^[[:space:]]*\(source\|\.\).*\.bashrc[[:space:]]*$" ~/.bash_profile` -eq 0 ]; then
echo "Your .bash_profile doesn't seem to be sourcing .bashrc"
echo "Adding source ~/.bashrc to your bashrc"
echo -e "\n# Get the aliases and functions" >> ~/.bash_profile
echo -e "if [ -f ~/.bashrc ]; then\n . ~/.bashrc\nfi" >> ~/.bash_profile
fi
echo "Done!"
echo
echo "You need to source your ~/.bashrc (source ~/.bashrc) before you can start using autojump."

View File

@ -168,7 +168,7 @@ def settings(sender):
window.set_border_width(3) window.set_border_width(3)
window.set_resizable(False) window.set_resizable(False)
if os.path.isfile("icon.png"): window.set_icon_from_file("icon.png") if os.path.isfile("icon.png"): window.set_icon_from_file("icon.png")
elif os.path.isfile("/usr/share/autojump/icon.png"): window.set_icon_from_file("/usr/share/autojump/icon.png") elif os.path.isfile("/usr/local/share/autojump/icon.png"): window.set_icon_from_file("/usr/local/share/autojump/icon.png")
vbox=gtk.Table(5,2) vbox=gtk.Table(5,2)
vbox.set_row_spacings(3) vbox.set_row_spacings(3)
@ -234,7 +234,7 @@ def save_settings(sender,response,entries,window):
def init(): def init():
load_settings_file() load_settings_file()
if os.path.isfile("icon.png"): icon=gtk.status_icon_new_from_file("icon.png") if os.path.isfile("icon.png"): icon=gtk.status_icon_new_from_file("icon.png")
elif os.path.isfile("/usr/share/autojump/icon.png"): icon=gtk.status_icon_new_from_file("/usr/share/autojump/icon.png") elif os.path.isfile("/usr/local/share/autojump/icon.png"): icon=gtk.status_icon_new_from_file("/usr/local/share/autojump/icon.png")
else: icon=gtk.status_icon_new_from_icon_name("help") else: icon=gtk.status_icon_new_from_icon_name("help")
icon.set_visible(True) icon.set_visible(True)
icon.connect("popup-menu",popup) icon.connect("popup-menu",popup)