summaryrefslogtreecommitdiff
path: root/modules/blobs/commit.d.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules/blobs/commit.d.sh')
-rw-r--r--modules/blobs/commit.d.sh40
1 files changed, 24 insertions, 16 deletions
diff --git a/modules/blobs/commit.d.sh b/modules/blobs/commit.d.sh
index 7fcdd7e..08e9698 100644
--- a/modules/blobs/commit.d.sh
+++ b/modules/blobs/commit.d.sh
@@ -1,7 +1,8 @@
#!/usr/bin/env bash
-# rvs blobs/commit.d - add a directory to the repository
-# Copyright (C) 2009-2010, 2015-2016 Luke Shumaker
-#
+name=blobs/commit.d
+desc='Add a directory 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,18 +18,25 @@
# 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=('DIRECTORY')
+. "${0%/*}/_shlib.sh"
+
+main() {
+ [[ $# -eq 1 ]] || errusage
+ dir="$1"
-usage='DIRECTORY'
-[[ $# -eq 1 ]] || errusage
-dir="$1"
+ tmpfile="$(mktemp -t "${0##*/}.XXXXXXXXXX")"
+ trap 'rm -f -- "$tmpfile"' EXIT
+ (
+ cd "$dir"
+ shopt -s dotglob nullglob
+ for file in *; do
+ id="$("$RVS" commit "$file")"
+ stat -c $'%a\t%u (%U)\t%g (%G)\t' -- "$file"
+ printf $'%s\t%s\n' "$id" "$file"
+ done > "$tmpfile"
+ )
+ "$RVS" commit.f "$tmpfile" 'd'
+}
-shopt -s dotglob
-cd "$dir"
-tmpfile="$(mktemp -t "${0##*/}.XXXXXXXXXX")"
-for file in *; do
- id="$("$RVS" commit "$file")"
- stat -c $'%a\t%u (%U)\t%g (%G)\t' -- "$file"
- printf $'%s\t%s\n' "$id" "$file"
-done > "$tmpfile"
-"$RVS" commit.f "$tmpfile" d
+main "$@"