X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=bashrc;h=0ce1e409070651c8a63f8facd515b051be52961c;hb=56758159a2d6ce0599166d86f53b46b6ccac54af;hp=067fdf5fe309a32daa1c57338e3ed617978de612;hpb=d010af75293885a1787ac459081df82f7bcc977b;p=scripts.git diff --git a/bashrc b/bashrc index 067fdf5..0ce1e40 100644 --- a/bashrc +++ b/bashrc @@ -108,7 +108,8 @@ alias cp='cp -i -v' alias rd=rmdir alias md='mkdir -pv' alias ps='ps uxaf' -alias df='df -hT --sync' +alias df='df -hT' +# alias df='df -hT --sync' alias grep='grep -i -E --color=auto' alias find='ionice -c3 find' alias pd=pushd @@ -243,7 +244,6 @@ function ua () { while [[ "$1" ]]; do case "$1" in - *.tgz|*.tar.gz|*.tbz|*.tar.bz2) tar xvf "$1" ;; @@ -406,7 +406,7 @@ function netup () { UPPED_WIFI=1 fi - sudo iwlist ${WIFI_INTERFACE} scan|grep ESS\|Quali\|Encry + sudo iwlist ${WIFI_INTERFACE} scan | \grep -E 'ESS|Quali|Encry' | sed -e 's/^[ \t]*//' if [[ ${UPPED_WIFI} ]]; then sudo ifconfig ${WIFI_INTERFACE} down @@ -538,27 +538,49 @@ KEPT_COMMANDS=${HOME}/.kept_bash_commands function keep () { if [[ ${KEPT_COMMANDS} ]]; then - LINE="$*" - [[ "${LINE}" ]] || LINE=$(history | tail -2 | head -1 | sed -e "s/^[0-9 ]*//") - echo $LINE - echo $(date)": "${LINE} >> ${KEPT_COMMANDS} + TOKEEP=$(mktemp /tmp/keep.XXXXXX) + if [[ "$*" ]]; then + echo "$*" > ${TOKEEP} + else + selector -b -i -d -l ${HISTSIZE} -o "${TOKEEP}" <(history) + fi + + if [[ -s "${TOKEEP}" ]]; then + echo $(date)": "$(cat ${TOKEEP}) >> ${KEPT_COMMANDS} + cat "${TOKEEP}" + else + echo "No command stored!" + fi + + \rm ${TOKEEP} else echo "You have to set \$KEPT_COMMANDS" fi } +# function keep () { + # if [[ ${KEPT_COMMANDS} ]]; then + # LINE="$*" + # [[ "${LINE}" ]] || LINE=$(history | tail -2 | head -1 | sed -e "s/^[0-9 ]*//") + # echo $LINE + # echo $(date)": "${LINE} >> ${KEPT_COMMANDS} + # else + # echo "You have to set \$KEPT_COMMANDS" + # fi +# } + ###################################################################### # I sometime burn CDs and DVDs function burn () { - DEVICE="/dev/cdrw" + DEVICE="/dev/cdrw1" if [[ ! "$1" ]]; then echo "burn " >&2 elif [[ -f "$1" ]]; then - if [[ $(file "$1" | grep "ISO 9660") ]]; then + if [[ $(file "$1" | \grep -E 'ISO 9660|UDF filesystem data') ]]; then wodim -eject -v dev=${DEVICE} "$1" else - echo "Unknown type of $1" >&2 + echo "Do not know what to do with $1" >&2 fi elif [[ -d "$1" ]]; then [[ "${TMP_ROOT}" ]] || TMP_ROOT=/tmp/ @@ -606,7 +628,7 @@ function dvd () { -quiet \ -alang en -slang en \ -softvol -softvol-max 1000 \ - -dvd-device ${dvd_device} $* dvd://${title} + -dvd-device ${dvd_device} ${MPLAYER_OPTIONS} dvd://${title} } function ripdvd () { @@ -761,12 +783,13 @@ function git-fm () { echo "Visited ${NB_SUBDIR} directories." } +# Update all the directories provided as argument in their respective +# versionning systems (SVN and GIT for now) + function vcup () { if [[ "$1" ]]; then - CURRENT=${PWD} while [[ "$1" ]]; do - cd ${CURRENT} - cd $1 + pushd > /dev/null "$1" if [[ -d ".git" ]]; then echo "${PWD} is under GIT" git pull @@ -774,8 +797,9 @@ function vcup () { echo "${PWD} is under SVN" svn update else - echo "No known versioning system." + echo "No known versioning system here." fi + popd > /dev/null shift done cd ${CURRENT} @@ -891,6 +915,26 @@ function histfile_cue () { PS1="\[${VT_YELLOW_BG}\]\${HISTORY_CUE}\[${VT_RESET}\]${PS1}" +###################################################################### + +# parse_git_branch () { + # git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' +# } + +# parse_git_tag () { + # git describe --tags 2> /dev/null +# } + +# parse_git_branch_or_tag() { + # local OUT="$(parse_git_branch)" + # if [ "$OUT" == " ((no branch))" ]; then + # OUT="($(parse_git_tag))"; + # fi + # echo $OUT +# } + +# PS1="${PS1}\$(parse_git_branch_or_tag)" + ###################################################################### # The dus command is available on my web site # @@ -935,22 +979,46 @@ function selector-printer () { function lsn () { LSN_MEMORY=".lsn-state" + if [[ $1 == "--mem" ]] || [[ "$1" == "-m" ]]; then + \ls -pa | sort > ${LSN_MEMORY} echo "State updated." >&2 + + elif [[ $1 == "+" ]]; then + + shift + + TMP=$(mktemp /tmp/lsn.XXXXXX) + \ls -d $* > ${TMP} + cat ${LSN_MEMORY} >> ${TMP} + sort -u ${TMP} > ${LSN_MEMORY} + \rm ${TMP} + elif [[ -n "$1" ]]; then - echo "lsn [--mem|-m]" >&2 + + echo "lsn [--mem|-m] [+ ...]" >&2 return 1 + else + if [[ -f ${LSN_MEMORY} ]]; then - comm -1 -3 ${LSN_MEMORY} <(\ls -pa | sort) - comm -2 -3 ${LSN_MEMORY} <(\ls -pa | sort) | while read line; do - echo "${VT_RED_FG}${VT_BOLD}${line}${VT_RESET} (missing)" - done + TMP=$(mktemp /tmp/lsn.XXXXXX) + \ls -pa | sort > ${TMP} + if diff > /dev/null ${TMP} ${LSN_MEMORY}; then + echo "${VT_GREEN_FG}${VT_BOLD}No change (since $(date +"%b %d, %Y" -r ${LSN_MEMORY}))${VT_RESET}" + else + \comm -1 -3 ${LSN_MEMORY} ${TMP} + \comm -2 -3 ${LSN_MEMORY} ${TMP} | while read line; do + echo "${VT_RED_FG}${VT_BOLD}${line}${VT_RESET} (missing)" + done + fi + \rm ${TMP} else echo "No lsn state here." >&2 return 1 fi + fi }