alias md='mkdir -v'
alias ps='ps uxaf'
alias df='df -hT --sync'
-alias grep='grep -i -E --mmap --color=auto'
+alias grep='grep -i -E --color=auto'
alias find='ionice -c3 find'
alias pd=pushd
alias val='valgrind --leak-check=full --show-reachable=yes --db-attach=yes '
function latexdiff () {
# wdiff -n \
- # -w $'\033[30;43m'"[$1]"$'\033[30;41m ' -x $'\033[0m' \
- # -y $'\033[30;43m'"[$2]"$'\033[30;42m ' -z $'\033[0m' \
- # $*
+ # -w $'\033[30;43m'"[$1]"$'\033[30;41m ' -x $'\033[0m' \
+ # -y $'\033[30;43m'"[$2]"$'\033[30;42m ' -z $'\033[0m' \
+ # $*
wdiff -n \
-w $'\033[30;41m' -x $'\033[0m' \
-y $'\033[30;42m' -z $'\033[0m' \
$*
- # | \grep $'\033'"\|section{"
+ # | \grep $'\033'"\|section{"
}
+# Looks for the most recent .log and pdflatex + bibtex the
+# corresponding tex file
+
+function rl () {
+ RECENT_LOG=$(find -maxdepth 1 -name "*.log" -type f | head -1)
+ if [[ ${RECENT_LOG} ]]; then
+ FILE=${RECENT_LOG/.log/}
+ pdflatex ${FILE}
+ bibtex ${FILE}
+ pdflatex ${FILE}
+ pdflatex ${FILE}
+ if [[ "$1" == "--xpdf" ]]; then
+ xpdf ${FILE}.pdf
+ fi
+ else
+ echo "Can not find a recent log." >&2
+ return 1
+ fi
+}
+
+
######################################################################
# Functions
}
function ua () {
+
+ [[ "$1" ]] || ( echo "Universal unarchive: ua <file> [<file> ...]" >&2 && return 1)
+
while [[ "$1" ]]; do
case "$1" in
;;
*.rar)
- unrar x "$1"
+ unrar -kb x "$1"
;;
*.zip)
}
# function rotjpeg () {
- # if [ "$1" == "90" ] || [ "$1" == "180" ] || [ "$1" == "270" ]; then
- # TEMP=$(mktemp /tmp/rotjpeg.XXXXXX)
- # echo jpegtran -rotate "$1" -copy all $2 > ${TEMP}
- # echo cp $2 ${2/jpg/}original.jpg
- # echo cp ${TEMP} $2
- # rm ${TEMP}
- # else
- # echo "Can not rotate with an angle of "$1" degrees."
- # fi
+# if [ "$1" == "90" ] || [ "$1" == "180" ] || [ "$1" == "270" ]; then
+# TEMP=$(mktemp /tmp/rotjpeg.XXXXXX)
+# echo jpegtran -rotate "$1" -copy all $2 > ${TEMP}
+# echo cp $2 ${2/jpg/}original.jpg
+# echo cp ${TEMP} $2
+# rm ${TEMP}
+# else
+# echo "Can not rotate with an angle of "$1" degrees."
+# fi
# }
######################################################################
# explicitely a dns in the /etc/network/interfaces
REMOVE_LOCAL_DNS=/usr/local/bin/remove-local-dns.sh
+ # REMOVE_LOCAL_DNS=${HOME}/sources/scripts/remove-local-dns.sh
if [[ -x ${REMOVE_LOCAL_DNS} ]]; then
echo "Executing ${VT_GREEN_FG}[sudo ${REMOVE_LOCAL_DNS} 192.168]${VT_RESET}"
echo "Executing sudo ${VT_GREEN_FG}[ifdown ${ARGS}]${VT_RESET}"
sudo ifdown ${ARGS}
+
+ # if [[ $(\ps -C dhclient | tail -n +2) ]]; then
+ # echo "There is still a dhcp client running." >&2
+ # return 1
+ # fi
+
+ # if [[ $(\ps -C wpa_supplicant | tail -n +2) ]]; then
+ # echo "There is still a wpa_supplicant running." >&2
+ # return 1
+ # fi
}
function checkgw () {
fi
elif [[ -d "$1" ]]; then
[[ "${TMP_ROOT}" ]] || TMP_ROOT=/tmp/
+ echo "Using ${TMP_ROOT} as temporary directory."
TMP=$(mktemp ${TMP_ROOT}/cdimage.XXXXXX) && \
genisoimage -input-charset iso8859-1 -r -o ${TMP} "$1" && \
wodim -eject -v dev=${DEVICE} ${TMP}
else
# orientation=$(exif $i \
- # | grep ^Orientation \
- # | head -1 \
- # | sed -e "s/^[^|]*|//" \
- # | sed -e "s/ *$//")
+ # | grep ^Orientation \
+ # | head -1 \
+ # | sed -e "s/^[^|]*|//" \
+ # | sed -e "s/ *$//")
# case ${orientation} in
- # ""|"top - left")
- # rotation_cmd=""
- # ;;
-
- # "right - top")
- # rotation_cmd="-rotate 90"
- # ;;
-
- # "left - bottom")
- # rotation_cmd="-rotate 270"
- # ;;
-
- # *)
- # rotation_cmd=""
- # echo "Unknown orientation \"${orientation}\" !"
- # ;;
+ # ""|"top - left")
+ # rotation_cmd=""
+ # ;;
+
+ # "right - top")
+ # rotation_cmd="-rotate 90"
+ # ;;
+
+ # "left - bottom")
+ # rotation_cmd="-rotate 270"
+ # ;;
+
+ # *)
+ # rotation_cmd=""
+ # echo "Unknown orientation \"${orientation}\" !"
+ # ;;
# esac
if [[ $(file ${i/%.*/}.* | grep -E movie) ]] ; then
echo "Visited ${NB_SUBDIR} directories."
}
-######################################################################
-# Commits all directories under git
-
-alias git-ca="echo Are you sure?"
-
-function git-ca () {
- ORIGINAL_PWD=${PWD}
- UNCOMMITTED=""
- for d in $(find ${PWD} -name ".git" | sed -e "s/\.git$//"); do
- cd $d
- NB_MODIFIED=$(git status | grep modified | wc -l)
- if [[ ${NB_MODIFIED} -gt 0 ]]; then
- if [[ $(pwd) =~ ${NO_AUTOMATIC_GIT_COMMIT} ]]; then
- UNCOMMITTED="${UNCOMMITTED} $(pwd)"
+function vcup () {
+ if [[ "$1" ]]; then
+ CURRENT=${PWD}
+ while [[ "$1" ]]; do
+ cd ${CURRENT}
+ cd $1
+ if [[ -d ".git" ]]; then
+ echo "${PWD} is under GIT"
+ git pull
+ elif [[ -d ".svn" ]]; then
+ echo "${PWD} is under SVN"
+ svn update
else
- echo $(pwd)" (${NB_MODIFIED} modified file(s))"
- git commit -a -m "Automatic commit" | grep -v ^#
+ echo "No known versioning system."
fi
- # git gc
- fi
- done
-
- cd ${ORIGINAL_PWD}
-
- if [[ ${UNCOMMITTED} ]]; then
- echo "** WARNING: Did not automatically commit${UNCOMMITTED}"
- fi
-}
-
-######################################################################
-# Backups all git directories into an encrypted backup file located
-# either on the usb key or the SD card (in that order) if they can be
-# mounted.
-
-function git-backup () {
-
- BACKUPDIR=/mnt/key
-
- mount ${BACKUPDIR} 2> /dev/null
-
- if [[ ! $(mount | grep ${BACKUPDIR}) ]]; then
- BACKUPDIR=/mnt/sd
- mount ${BACKUPDIR}
- fi
-
- if [[ $(mount | grep ${BACKUPDIR}) ]]; then
- echo "Mounted ${BACKUPDIR}"
- else
- echo "Could not mount the backup directory"
- return 1
- fi
-
- RESULT=${BACKUPDIR}/gitbackup-$(date +%F-%H%M%S).tgz.mc
-
- tar zcvf - $(find ${HOME}/ -name .git) \
- | mcrypt -f ${HOME}/private/mcrypt.key > ${RESULT}
-
- if [[ -f ${RESULT} ]]; then
- ls -lh ${RESULT}
+ shift
+ done
+ cd ${CURRENT}
else
- echo "Could not create the backup!"
- return 1
+ vcup .
fi
-
- sync
-
- umount ${BACKUPDIR} && echo "Umounted ${BACKUPDIR}"
}
######################################################################
PS1=""
else
-# If the login is a standard one (as specified in
-# IGNORED_PROMPT_LOGIN, which is set in the private bash file), do not
-# show it. I have IGNORED_PROMPT_LOGIN="^fleuret$".
+ # If the login is a standard one (as specified in
+ # IGNORED_PROMPT_LOGIN, which is set in the private bash file), do not
+ # show it. I have IGNORED_PROMPT_LOGIN="^fleuret$".
if [ ! ${IGNORED_PROMPT_LOGIN} ] || [[ ! ${USER} =~ ${IGNORED_PROMPT_LOGIN} ]]; then
IDENT="${USER}"
fi
-# If the display is not the main one, make the assumption that the
-# shell is not running on the localhost, and show the hostname
+ # If the display is not the main one, make the assumption that the
+ # shell is not running on the localhost, and show the hostname
[ "${DISPLAY}" != ":0.0" ] && IDENT="${IDENT}@\h"
-# If there is the login or the hostname, add a ":" to the prompt
+ # If there is the login or the hostname, add a ":" to the prompt
[ "${IDENT}" ] && IDENT="${IDENT}:"
-# If we are root, show that in red
+ # If we are root, show that in red
if [[ ${USER} == "root" ]]; then
PS1="\[${VT_RED_BG}${VT_WHITE_FG}\]${IDENT}\w\[${VT_RESET}\] "
PS1="\[${VT_WHITE_BG}${VT_BLACK_FG}\]${IDENT}\w\[${VT_RESET}\] "
fi
-# In an xterm, show the hostname and path in the title bar, highlight
-# the prompt
+ # In an xterm, show the hostname and path in the title bar, highlight
+ # the prompt
# [ "${TERMS_WITH_BAR}" ] || TERMS_WITH_BAR="^xterm|screen$"
# if [[ "${TERM}" =~ "${TERMS_WITH_BAR}" ]]; then
- # PS1="\[${VT_SET_TITLE}shell@\h (\w)${VT_END_TITLE}${VT_WHITE_BG}\]${IDENT}\w\[${VT_RESET}\] "
+ # PS1="\[${VT_SET_TITLE}shell@\h (\w)${VT_END_TITLE}${VT_WHITE_BG}\]${IDENT}\w\[${VT_RESET}\] "
# else
- # PS1="\[${VT_WHITE_BG}\]${IDENT}\w\[${VT_RESET}\] "
+ # PS1="\[${VT_WHITE_BG}\]${IDENT}\w\[${VT_RESET}\] "
# fi
fi
#
# git clone http://fleuret.org/git/finddup/
-# alias finddup='finddup -p0d'
alias finddup='finddup -p'
######################################################################
lpq
}
+######################################################################
+# A ls with memory to notice what files have been added/removed from
+# the current directory
+
+function lsn () {
+ LSN_MEMORY=".lsn-mem"
+ if [[ $1 == "--mem" ]]; then
+ \ls > ${LSN_MEMORY}
+ else
+ if [[ -f ${LSN_MEMORY} ]]; then
+ comm -1 -3 ${LSN_MEMORY} <(\ls)
+ comm -2 -3 ${LSN_MEMORY} <(\ls) | while read line; do
+ echo "${VT_RED_FG}${VT_BOLD}${line}${VT_RESET} (missing)"
+ done
+ else
+ echo "No lsn memory here." >&2
+ fi
+ fi
+}
+
######################################################################
function prompt_command () {
-# save the history after every command to avoid loosing some when
-# multiple shells are open
+ # save the history after every command to avoid loosing some when
+ # multiple shells are open
history -a
-# load the saved history
+ # load the saved history
history -n
-# and the local histories system defined above
+ # and the local histories system defined above
keep_local_history
-# and the history cue
+ # and the history cue
histfile_cue
}