X-Git-Url: http://git.grml.org/?a=blobdiff_plain;ds=inline;f=etc%2Fzsh%2Fzshrc;h=4ad12c6b117843180aa2140b189d779af11db080;hb=1049e383c183bce753a1f11fdc05ddd0a3f1942e;hp=0c60a9a9337347182df64bc7d9c4669cc8d8f52c;hpb=cd0cfc77c94225e4955668c4d05a1b2a2b7e7f22;p=grml-etc-core.git
diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc
index 0c60a9a..4ad12c6 100644
--- a/etc/zsh/zshrc
+++ b/etc/zsh/zshrc
@@ -180,14 +180,22 @@ else
isgrmlsmall() { return 1 }
fi
+GRML_OSTYPE=$(uname -s)
+
+islinux(){
+ [[ $GRML_OSTYPE == "Linux" ]]
+}
+
isdarwin(){
- [[ $OSTYPE == darwin* ]] && return 0
- return 1
+ [[ $GRML_OSTYPE == "Darwin" ]]
}
isfreebsd(){
- [[ $OSTYPE == freebsd* ]] && return 0
- return 1
+ [[ $GRML_OSTYPE == "FreeBSD" ]]
+}
+
+isopenbsd(){
+ [[ $GRML_OSTYPE == "OpenBSD" ]]
}
#f1# are we running within an utf environment?
@@ -339,19 +347,18 @@ NOMENU=${NOMENU:-0}
NOPRECMD=${NOPRECMD:-0}
COMMAND_NOT_FOUND=${COMMAND_NOT_FOUND:-0}
GRML_ZSH_CNF_HANDLER=${GRML_ZSH_CNF_HANDLER:-/usr/share/command-not-found/command-not-found}
-BATTERY=${BATTERY:-0}
+GRML_DISPLAY_BATTERY=${GRML_DISPLAY_BATTERY:-${BATTERY:-0}}
GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1}
ZSH_NO_DEFAULT_LOCALE=${ZSH_NO_DEFAULT_LOCALE:-0}
typeset -ga ls_options
typeset -ga grep_options
-if ls --help 2> /dev/null | grep -q GNU; then
+if ls --color=auto / >/dev/null 2>&1; then
ls_options=( --color=auto )
-elif [[ $OSTYPE == freebsd* ]]; then
+elif ls -G / >/dev/null 2>&1; then
ls_options=( -G )
fi
-if grep --help 2> /dev/null | grep -q GNU || \
- [[ $OSTYPE == freebsd* ]]; then
+if grep --color=auto -q "a" <<< "a" >/dev/null 2>&1; then
grep_options=( --color=auto )
fi
@@ -757,14 +764,17 @@ grmlcomp() {
# host completion
if is42 ; then
+ [[ -r ~/.ssh/config ]] && _ssh_config_hosts=(${${${(@M)${(f)"$(<$HOME/.ssh/config)"}:#Host *}#Host }:#*[*?]*}) || _ssh_config_hosts=()
[[ -r ~/.ssh/known_hosts ]] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
[[ -r /etc/hosts ]] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$( 0 )) ; then
- NOABBREVIATION=0
- else
- NOABBREVIATION=1
- fi
-}
-zle -N grml_toggle_abbrev
-
# add a command line to the shells history without executing it
commit-to-history() {
print -s ${(z)BUFFER}
@@ -1029,11 +1024,6 @@ zleiab() {
setopt extendedglob
local MATCH
- if (( NOABBREVIATION > 0 )) ; then
- LBUFFER="${LBUFFER},."
- return 0
- fi
-
LBUFFER=${LBUFFER%%(#m)[.\-+:|_a-zA-Z0-9]#}
LBUFFER+=${abk[$MATCH]:-$MATCH}
}
@@ -1042,7 +1032,7 @@ zle -N zleiab
help-show-abk()
{
- zle -M "$(print "Type ,. after these abbreviations to expand them:"; print -a -C 2 ${(kv)abk})"
+ zle -M "$(print "Available abbreviations for expansion:"; print -a -C 2 ${(kv)abk})"
}
zle -N help-show-abk
@@ -1124,7 +1114,6 @@ inplaceMkDirs() {
fi
}
-#k# mkdir -p
from string under cursor or marked area
zle -N inplaceMkDirs
#v1# set number of lines to display per page
@@ -1407,10 +1396,11 @@ bind2maps emacs -- Left backward-char
bind2maps viins vicmd -- Left vi-backward-char
bind2maps emacs -- Right forward-char
bind2maps viins vicmd -- Right vi-forward-char
-bind2maps viins vicmd -- Right vi-forward-char
-#k# Display list of abbreviations that expand when followed by ,.
+#k# Perform abbreviation expansion
bind2maps emacs viins -- -s '^x.' zleiab
+#k# Display list of abbreviations that would expand
bind2maps emacs viins -- -s '^xb' help-show-abk
+#k# mkdir -p from string under cursor or marked area
bind2maps emacs viins -- -s '^xM' inplaceMkDirs
#k# display help for keybindings and ZLE
bind2maps emacs viins -- -s '^xz' help-zle
@@ -1426,8 +1416,6 @@ bind2maps emacs viins -- -s '^xP' history-beginning-search-forward-end
bind2maps emacs viins -- PageUp history-beginning-search-backward-end
#k# search history forward for entry beginning with typed text
bind2maps emacs viins -- PageDown history-beginning-search-forward-end
-#k# Toggle abbreviation expansion on/off
-bind2maps emacs viins -- -s '^xA' grml_toggle_abbrev
bind2maps emacs viins -- -s "^x^h" commit-to-history
#k# Kill left-side word or everything up to next slash
bind2maps emacs viins -- -s '\ev' slash-backward-kill-word
@@ -1453,7 +1441,7 @@ bind2maps emacs viins -- -s '^x1' jump_after_first_word
bind2maps emacs viins -- -s "^x^x" hist-complete
# insert unicode character
-# usage example: 'ctrl-x i' 00A7 'ctrl-x i' will give you an §
+# usage example: 'ctrl-x i' 00A7 'ctrl-x i' will give you an §
# See for example http://unicode.org/charts/ for unicode characters code
#k# Insert Unicode character
bind2maps emacs viins -- -s '^xi' insert-unicode-char
@@ -1618,7 +1606,16 @@ fi # is433
# set colors for use in prompts (modern zshs allow for the use of %F{red}foo%f
# in prompts to get a red "foo" embedded, but it's good to keep these for
# backwards compatibility).
-if zrcautoload colors && colors 2>/dev/null ; then
+if is437; then
+ BLUE="%F{blue}"
+ RED="%F{red}"
+ GREEN="%F{green}"
+ CYAN="%F{cyan}"
+ MAGENTA="%F{magenta}"
+ YELLOW="%F{yellow}"
+ WHITE="%F{white}"
+ NO_COLOR="%f"
+elif zrcautoload colors && colors 2>/dev/null ; then
BLUE="%{${fg[blue]}%}"
RED="%{${fg_bold[red]}%}"
GREEN="%{${fg[green]}%}"
@@ -1654,25 +1651,129 @@ PS4='+%N:%i:%_> '
# - debian_chroot
# - vcs_info setup and version specific fixes
-# display battery status on right side of prompt via running 'BATTERY=1 zsh'
-if [[ $BATTERY -gt 0 ]] ; then
- if ! check_com -c acpi ; then
- BATTERY=0
- fi
-fi
+# display battery status on right side of prompt using 'GRML_DISPLAY_BATTERY=1' in .zshrc.pre
battery() {
-if [[ $BATTERY -gt 0 ]] ; then
- PERCENT="${${"$(acpi 2>/dev/null)"}/(#b)[[:space:]]#Battery <->: [^0-9]##, (<->)%*/${match[1]}}"
- if [[ -z "$PERCENT" ]] ; then
- PERCENT='acpi not present'
+if [[ $GRML_DISPLAY_BATTERY -gt 0 ]] ; then
+ if islinux ; then
+ batterylinux
+ elif isopenbsd ; then
+ batteryopenbsd
+ elif isfreebsd ; then
+ batteryfreebsd
+ elif isdarwin ; then
+ batterydarwin
else
- if [[ "$PERCENT" -lt 20 ]] ; then
- PERCENT="warning: ${PERCENT}%%"
- else
- PERCENT="${PERCENT}%%"
- fi
+ #not yet supported
+ GRML_DISPLAY_BATTERY=0
+ fi
+fi
+}
+
+batterylinux(){
+GRML_BATTERY_LEVEL=''
+local batteries bat capacity
+batteries=( /sys/class/power_supply/BAT*(N) )
+if (( $#batteries > 0 )) ; then
+ for bat in $batteries ; do
+ capacity=$(< $bat/capacity)
+ case $(< $bat/status) in
+ Charging)
+ GRML_BATTERY_LEVEL+=" ^"
+ ;;
+ Discharging)
+ if (( capacity < 20 )) ; then
+ GRML_BATTERY_LEVEL+=" !v"
+ else
+ GRML_BATTERY_LEVEL+=" v"
+ fi
+ ;;
+ *) # Full, Unknown
+ GRML_BATTERY_LEVEL+=" ="
+ ;;
+ esac
+ GRML_BATTERY_LEVEL+="${capacity}%%"
+ done
+fi
+}
+
+batteryopenbsd(){
+GRML_BATTERY_LEVEL=''
+local bat batfull batwarn batnow num
+for num in 0 1 ; do
+ bat=$(sysctl -n hw.sensors.acpibat${num} 2>/dev/null)
+ if [[ -n $bat ]]; then
+ batfull=${"$(sysctl -n hw.sensors.acpibat${num}.amphour0)"%% *}
+ batwarn=${"$(sysctl -n hw.sensors.acpibat${num}.amphour1)"%% *}
+ batnow=${"$(sysctl -n hw.sensors.acpibat${num}.amphour3)"%% *}
+ case "$(sysctl -n hw.sensors.acpibat${num}.raw0)" in
+ *" discharging"*)
+ if (( batnow < batwarn )) ; then
+ GRML_BATTERY_LEVEL+=" !v"
+ else
+ GRML_BATTERY_LEVEL+=" v"
+ fi
+ ;;
+ *" charging"*)
+ GRML_BATTERY_LEVEL+=" ^"
+ ;;
+ *)
+ GRML_BATTERY_LEVEL+=" ="
+ ;;
+ esac
+ GRML_BATTERY_LEVEL+="${$(( 100 * batnow / batfull ))%%.*}%%"
+ fi
+done
+}
+
+batteryfreebsd(){
+GRML_BATTERY_LEVEL=''
+local num
+local -A table
+for num in 0 1 ; do
+ table=( ${=${${${${${(M)${(f)"$(acpiconf -i $num 2>&1)"}:#(State|Remaining capacity):*}%%( ##|%)}//:[ $'\t']##/@}// /-}//@/ }} )
+ if [[ -n $table ]] && [[ $table[State] != "not-present" ]] ; then
+ case $table[State] in
+ *discharging*)
+ if (( $table[Remaining-capacity] < 20 )) ; then
+ GRML_BATTERY_LEVEL+=" !v"
+ else
+ GRML_BATTERY_LEVEL+=" v"
+ fi
+ ;;
+ *charging*)
+ GRML_BATTERY_LEVEL+=" ^"
+ ;;
+ *)
+ GRML_BATTERY_LEVEL+=" ="
+ ;;
+ esac
+ GRML_BATTERY_LEVEL+="$table[Remaining-capacity]%%"
fi
+done
+}
+
+batterydarwin(){
+GRML_BATTERY_LEVEL=''
+local -a table
+table=( ${$(pmset -g ps)[(w)7,8]%%(\%|);} )
+if [[ -n $table[2] ]] ; then
+ case $table[2] in
+ charging)
+ GRML_BATTERY_LEVEL+=" ^"
+ ;;
+ discharging)
+ if (( $table[1] < 20 )) ; then
+ GRML_BATTERY_LEVEL+=" !v"
+ else
+ GRML_BATTERY_LEVEL+=" v"
+ fi
+ ;;
+ *)
+ GRML_BATTERY_LEVEL+=" ="
+ ;;
+ esac
+ GRML_BATTERY_LEVEL+="$table[1]%%"
fi
}
@@ -1701,21 +1802,61 @@ if zrcautoload vcs_info; then
fi
fi
+typeset -A grml_vcs_coloured_formats
+typeset -A grml_vcs_plain_formats
+
+grml_vcs_plain_formats=(
+ format "(%s%)-[%b] " "zsh: %r"
+ actionformat "(%s%)-[%b|%a] " "zsh: %r"
+ rev-branchformat "%b:%r"
+)
+
+grml_vcs_coloured_formats=(
+ format "${MAGENTA}(${NO_COLOR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${MAGENTA}]${NO_COLOR} "
+ actionformat "${MAGENTA}(${NO_COLOR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${YELLOW}|${RED}%a${MAGENTA}]${NO_COLOR} "
+ rev-branchformat "%b${RED}:${YELLOW}%r"
+)
+
+typeset GRML_VCS_COLOUR_MODE=xxx
+
+grml_vcs_info_toggle_colour () {
+ emulate -L zsh
+ if [[ $GRML_VCS_COLOUR_MODE == plain ]]; then
+ grml_vcs_info_set_formats coloured
+ else
+ grml_vcs_info_set_formats plain
+ fi
+ return 0
+}
+
+grml_vcs_info_set_formats () {
+ emulate -L zsh
+ #setopt localoptions xtrace
+ local mode=$1 AF F BF
+ if [[ $mode == coloured ]]; then
+ AF=${grml_vcs_coloured_formats[actionformat]}
+ F=${grml_vcs_coloured_formats[format]}
+ BF=${grml_vcs_coloured_formats[rev-branchformat]}
+ GRML_VCS_COLOUR_MODE=coloured
+ else
+ AF=${grml_vcs_plain_formats[actionformat]}
+ F=${grml_vcs_plain_formats[format]}
+ BF=${grml_vcs_plain_formats[rev-branchformat]}
+ GRML_VCS_COLOUR_MODE=plain
+ fi
+
+ zstyle ':vcs_info:*' actionformats "$AF" "zsh: %r"
+ zstyle ':vcs_info:*' formats "$F" "zsh: %r"
+ zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat "$BF"
+ return 0
+}
+
# Change vcs_info formats for the grml prompt. The 2nd format sets up
# $vcs_info_msg_1_ to contain "zsh: repo-name" used to set our screen title.
-# TODO: The included vcs_info() version still uses $VCS_INFO_message_N_.
-# That needs to be the use of $VCS_INFO_message_N_ needs to be changed
-# to $vcs_info_msg_N_ as soon as we use the included version.
if [[ "$TERM" == dumb ]] ; then
- zstyle ':vcs_info:*' actionformats "(%s%)-[%b|%a] " "zsh: %r"
- zstyle ':vcs_info:*' formats "(%s%)-[%b] " "zsh: %r"
+ grml_vcs_info_set_formats plain
else
- # these are the same, just with a lot of colors:
- zstyle ':vcs_info:*' actionformats "${MAGENTA}(${NO_COLOR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${YELLOW}|${RED}%a${MAGENTA}]${NO_COLOR} " \
- "zsh: %r"
- zstyle ':vcs_info:*' formats "${MAGENTA}(${NO_COLOR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${MAGENTA}]${NO_COLOR}%} " \
- "zsh: %r"
- zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat "%b${RED}:${YELLOW}%r"
+ grml_vcs_info_set_formats coloured
fi
# Now for the fun part: The grml prompt themes in `promptsys' mode of operation
@@ -1889,7 +2030,7 @@ grml_prompt_post_default=(
grml_prompt_token_default=(
at '@'
- battery 'PERCENT'
+ battery 'GRML_BATTERY_LEVEL'
change-root 'debian_chroot'
date '%D{%Y-%m-%d}'
grml-chroot 'GRML_CHROOT'
@@ -2160,7 +2301,7 @@ fi
if is437; then
# The prompt themes use modern features of zsh, that require at least
# version 4.3.7 of the shell. Use the fallback otherwise.
- if [[ $BATTERY -gt 0 ]]; then
+ if [[ $GRML_DISPLAY_BATTERY -gt 0 ]]; then
zstyle ':prompt:grml:right:setup' items sad-smiley battery
add-zsh-hook precmd battery
fi
@@ -2272,8 +2413,6 @@ hash -d linux=/lib/modules/$(command uname -r)/build/
hash -d log=/var/log
hash -d slog=/var/log/syslog
hash -d src=/usr/src
-hash -d templ=/usr/share/doc/grml-templates
-hash -d tt=/usr/share/doc/texttools-doc
hash -d www=/var/www
#d# end
@@ -2298,22 +2437,22 @@ fi
# do we have GNU ls with color-support?
if [[ "$TERM" != dumb ]]; then
- #a1# List files with colors (\kbd{ls -CF \ldots})
- alias ls='ls -CF '${ls_options:+"${ls_options[*]}"}
+ #a1# List files with colors (\kbd{ls -F \ldots})
+ alias ls='command ls -F '${ls_options:+"${ls_options[*]}"}
#a1# List all files, with colors (\kbd{ls -la \ldots})
- alias la='ls -la '${ls_options:+"${ls_options[*]}"}
+ alias la='command ls -la '${ls_options:+"${ls_options[*]}"}
#a1# List files with long colored list, without dotfiles (\kbd{ls -l \ldots})
- alias ll='ls -l '${ls_options:+"${ls_options[*]}"}
+ alias ll='command ls -l '${ls_options:+"${ls_options[*]}"}
#a1# List files with long colored list, human readable sizes (\kbd{ls -hAl \ldots})
- alias lh='ls -hAl '${ls_options:+"${ls_options[*]}"}
+ alias lh='command ls -hAl '${ls_options:+"${ls_options[*]}"}
#a1# List files with long colored list, append qualifier to filenames (\kbd{ls -lF \ldots})\\&\quad(\kbd{/} for directories, \kbd{@} for symlinks ...)
- alias l='ls -lF '${ls_options:+"${ls_options[*]}"}
+ alias l='command ls -lF '${ls_options:+"${ls_options[*]}"}
else
- alias ls='ls -CF'
- alias la='ls -la'
- alias ll='ls -l'
- alias lh='ls -hAl'
- alias l='ls -lF'
+ alias ls='command ls -F'
+ alias la='command ls -la'
+ alias ll='command ls -l'
+ alias lh='command ls -hAl'
+ alias l='command ls -lF'
fi
alias mdstat='cat /proc/mdstat'
@@ -2403,7 +2542,8 @@ the zsh yet. :)
"NOPRECMD=1 zsh" => disable the precmd + preexec commands (set GNU screen title)
"NOTITLE=1 zsh" => disable setting the title of xterms without disabling
preexec() and precmd() completely
- "BATTERY=1 zsh" => activate battery status (via acpi) on right side of prompt
+ "GRML_DISPLAY_BATTERY=1 zsh"
+ => activate battery status on right side of prompt (WIP)
"COMMAND_NOT_FOUND=1 zsh"
=> Enable a handler if an external command was not found
The command called in the handler can be altered by setting
@@ -2449,7 +2589,7 @@ if [[ -r /etc/debian_version ]] ; then
# get a root shell as normal user in live-cd mode:
if isgrmlcd && [[ $UID -ne 0 ]] ; then
alias su="sudo su"
- fi
+ fi
#a1# Take a look at the syslog: \kbd{\$PAGER /var/log/syslog}
salias llog="$PAGER /var/log/syslog" # take a look at the syslog
@@ -2817,40 +2957,38 @@ export COLORTERM="yes"
# general
#a2# Execute \kbd{du -sch}
alias da='du -sch'
-#a2# Execute \kbd{jobs -l}
-alias j='jobs -l'
# listing stuff
#a2# Execute \kbd{ls -lSrah}
-alias dir="ls -lSrah"
+alias dir="command ls -lSrah"
#a2# Only show dot-directories
-alias lad='ls -d .*(/)'
+alias lad='command ls -d .*(/)'
#a2# Only show dot-files
-alias lsa='ls -a .*(.)'
+alias lsa='command ls -a .*(.)'
#a2# Only files with setgid/setuid/sticky flag
-alias lss='ls -l *(s,S,t)'
+alias lss='command ls -l *(s,S,t)'
#a2# Only show symlinks
-alias lsl='ls -l *(@)'
+alias lsl='command ls -l *(@)'
#a2# Display only executables
-alias lsx='ls -l *(*)'
+alias lsx='command ls -l *(*)'
#a2# Display world-{readable,writable,executable} files
-alias lsw='ls -ld *(R,W,X.^ND/)'
+alias lsw='command ls -ld *(R,W,X.^ND/)'
#a2# Display the ten biggest files
-alias lsbig="ls -flh *(.OL[1,10])"
+alias lsbig="command ls -flh *(.OL[1,10])"
#a2# Only show directories
-alias lsd='ls -d *(/)'
+alias lsd='command ls -d *(/)'
#a2# Only show empty directories
-alias lse='ls -d *(/^F)'
+alias lse='command ls -d *(/^F)'
#a2# Display the ten newest files
-alias lsnew="ls -rtlh *(D.om[1,10])"
+alias lsnew="command ls -rtlh *(D.om[1,10])"
#a2# Display the ten oldest files
-alias lsold="ls -rtlh *(D.Om[1,10])"
+alias lsold="command ls -rtlh *(D.Om[1,10])"
#a2# Display the ten smallest files
-alias lssmall="ls -Srl *(.oL[1,10])"
+alias lssmall="command ls -Srl *(.oL[1,10])"
#a2# Display the ten newest directories and ten newest .directories
-alias lsnewdir="ls -rthdl *(/om[1,10]) .*(D/om[1,10])"
+alias lsnewdir="command ls -rthdl *(/om[1,10]) .*(D/om[1,10])"
#a2# Display the ten oldest directories and ten oldest .directories
-alias lsolddir="ls -rthdl *(/Om[1,10]) .*(D/Om[1,10])"
+alias lsolddir="command ls -rthdl *(/Om[1,10]) .*(D/Om[1,10])"
# some useful aliases
#a2# Remove current empty directory. Execute \kbd{cd ..; rmdir \$OLDCWD}
@@ -2881,10 +3019,74 @@ fi
# useful functions
-#f5# Backup \kbd{file {\rm to} file\_timestamp}
+#f5# Backup \kbd{file_or_folder {\rm to} file_or_folder\_timestamp}
bk() {
emulate -L zsh
- cp -b $1 $1_`date --iso-8601=m`
+ local current_date=$(date -u "+%Y-%m-%dT%H:%M:%SZ")
+ local clean keep move verbose result
+ setopt extended_glob
+ usage() {
+ cat << EOT
+bk [-hcmv] FILE [FILE ...]
+bk -r [-v] [FILE [FILE ...]]
+Backup a file or folder in place and append the timestamp
+Remove backups of a file or folder, or all backups in the current directory
+
+Usage:
+-h Display this help text
+-c Keep the file/folder as is, create a copy backup using cp(1) (default)
+-m Move the file/folder, using mv(1)
+-r Remove backups of the specified file or directory, using rm(1). If none
+ is provided, remove all backups in the current directory.
+-v Verbose
+
+The -c, -r and -m options are mutually exclusive. If specified at the same time,
+the last one is used.
+
+The return code is the sum of all cp/mv/rm return codes.
+EOT
+ }
+ keep=1
+ while getopts ":hcmrv" opt; do
+ case $opt in
+ c) unset move clean && (( ++keep ));;
+ m) unset keep clean && (( ++move ));;
+ r) unset move keep && (( ++clean ));;
+ v) verbose="-v";;
+ h) usage;;
+ \?) usage >&2; return 1;;
+ esac
+ done
+ shift "$((OPTIND-1))"
+ if (( keep > 0 )); then
+ while (( $# > 0 )); do
+ if islinux || isfreebsd; then
+ cp $verbose -a "${1%/}" "${1%/}_$current_date"
+ else
+ cp $verbose -pR "${1%/}" "${1%/}_$current_date"
+ fi
+ (( result += $? ))
+ shift
+ done
+ elif (( move > 0 )); then
+ while (( $# > 0 )); do
+ mv $verbose "${1%/}" "${1%/}_$current_date"
+ (( result += $? ))
+ shift
+ done
+ elif (( clean > 0 )); then
+ if (( $# > 0 )); then
+ while (( $# > 0 )); do
+ rm $verbose -rf "${1%/}"_[0-9](#c4,)-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1])T([0-1][0-9]|2[0-3])(:[0-5][0-9])(#c2)Z
+ (( result += $? ))
+ shift
+ done
+ else
+ rm $verbose -rf *_[0-9](#c4,)-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1])T([0-1][0-9]|2[0-3])(:[0-5][0-9])(#c2)Z
+ (( result += $? ))
+ fi
+ fi
+ return $result
}
#f5# cd to directoy and list files