gdfver=1.02 function gdrive_upload() { local err=0; local target=$1; local current_date=$2; which drive > /dev/null 2>&1 || { show_error 'Install drive first! (ppa:twodopeshaggy/drive)' "$FUNCNAME"; return 1; } test $# -eq 2 || { show_error "Wrong usage of the function! Args=$@" "$FUNCNAME"; return 1; } show_notice "Upload $source to $target/$current_date ..." "$FUNCNAME" test "x`drive stat -quiet $target 2>&1`" != "x" && drive push -quiet $target drive push -quiet $target/$current_date 2>&1 || { show_error "Error on drive push $target/$current_date" "$FUNCNAME"; local err=1; } return $err; } function gdrive_clean() { local err=0; local target=$1; local count=$2 which drive > /dev/null 2>&1 || { show_error 'Install drive first! (ppa:twodopeshaggy/drive)' "$FUNCNAME"; return 1; } test $# -eq 2 || { show_error "Wrong usage of the function! Args=$@" "$FUNCNAME"; return 1; } total=`drive ls $target | wc -l` to_delete=$[${total} - ${count}] test $to_delete -gt 0 && { for var in `drive ls $target | xargs basename -a | sort | head -n $to_delete`; do show_notice "Deleting $target/$var ..." "$FUNCNAME" drive del --quiet $target/$var 2>&1 || { show_error "Error on drive del $target/$var" "$FUNCNAME"; local err=1; } done } }