local num
local -A table
for num in 0 1 ; do
- table=( ${=${${${${${(M)${(f)"$(acpiconf -i $num)"}:#(State|Remaining capacity):*}%%( ##|%)}//:[ $'\t']##/@}// /-}//@/ }} )
- if [[ $table[State] != "not-present" ]] ; then
+ 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
# 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`
+ while (( $# > 0 )); do
+ if islinux; then
+ cp -a "$1" "$1_$(date --iso-8601=m)"
+ elif isopenbsd; then
+ cp -R "$1" "$1_$(date "+%FT%H:%M")"
+ elif isfreebsd; then
+ if [[ -d "$1" ]] && [[ "$1" == */ ]]; then
+ echo "cowardly refusing to copy $1 's content; see cp(1)" >&2; return 1
+ else
+ cp -a "$1" "$1_$(date "+%FT%H:%M")"
+ fi
+ else;
+ echo 'sorry, not yet implemented, send a patch!' >&2
+ fi
+ shift
+ done
}
#f5# cd to directoy and list files