diff options
Diffstat (limited to 'modules/blobs/commit.sh')
-rw-r--r-- | modules/blobs/commit.sh | 51 |
1 files changed, 30 insertions, 21 deletions
diff --git a/modules/blobs/commit.sh b/modules/blobs/commit.sh index 01bc338..44a2465 100644 --- a/modules/blobs/commit.sh +++ b/modules/blobs/commit.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash -# rvs blobs/commit - add a file to the repository -# Copyright (C) 2009-2010, 2015-2016 Luke Shumaker -# +name=blobs/commit +desc='Add files to the repository' +copyright=('2009-2010, 2015-2016 Luke Shumaker') +license='AGPLv3+' # This file is part of rvs. # # This program is free software: you can redistribute it and/or modify @@ -17,23 +18,31 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -. "${0%/*}/_stdio.sh" - -usage='[FILES...]' -if [[ $# -lt 1 ]]; then - set -- . -fi +usage=('[FILES...]') +. "${0%/*}/_shlib.sh" -for file in "$@"; do - local type - if test -L "$file"; then - type=l - elif test -f "$file"; then - type=f - elif test -d "$file"; then - type=d - else - error 'Unsupported file type: %s' "$file" +main() { + if [[ $# -lt 1 ]]; then + set -- . fi - "$RVS" "commit.$type" "$file" -done + + for file in "$@"; do + if ! stat -c '' -- "$file" &>/dev/null; then + error 'No such file or directory: %s' "$file" + fi + + local type + if test -L "$file"; then + type=l + elif test -f "$file"; then + type=f + elif test -d "$file"; then + type=d + else + error 'File has unsupported file type: %s' "$file" + fi + "$RVS" "commit.$type" "$file" + done +} + +main "$@" |