#!/usr/bin/env bash name=blobs/put.d desc='Put a directory 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 . usage=('DIRECTORY') . "${0%/*}/_shlib.sh" main() { [[ $# -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 if [[ "$RVS_REPO" -ef "$file" ]]; then continue fi id="$("$RVS" blobs/put "$file")" stat --printf $'%a\t%u (%U)\t%g (%G)\t' -- "$file" printf $'%s\t%s\n' "$id" "$file" done > "$tmpfile" ) "$RVS" blobs/put.f "$tmpfile" 'd' } main "$@"