diff options
Diffstat (limited to 'modules/blobs/put.sh')
-rw-r--r-- | modules/blobs/put.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/modules/blobs/put.sh b/modules/blobs/put.sh new file mode 100644 index 0000000..c92f161 --- /dev/null +++ b/modules/blobs/put.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +name=blobs/put +desc='Put files into 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 +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# 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/>. + +usage=('[FILES...]') +. "${0%/*}/_shlib.sh" + +main() { + if [[ $# -lt 1 ]]; then + set -- . + fi + + 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" "blobs/put.$type" "$file" + done +} + +main "$@" |