mirror of
https://github.com/flynx/proxmox-utils.git
synced 2025-10-28 10:40:07 +00:00
72 lines
1.4 KiB
Bash
72 lines
1.4 KiB
Bash
#!/usr/bin/bash
|
|
#----------------------------------------------------------------------
|
|
#
|
|
#----------------------------------------------------------------------
|
|
|
|
# XXX
|
|
source $(dirname "$0")/.pct-helpers
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
case $1 in
|
|
-h|--help)
|
|
echo "Recursively push a directory to a CT creating the necessary paths"
|
|
echo
|
|
echo "Usage:"
|
|
echo " `basename $0` ID FROM TO"
|
|
echo
|
|
exit
|
|
;;
|
|
-*)
|
|
echo "Unknown option: $1"
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
if [[ $# < 3 ]] ; then
|
|
echo ERR need both id and target id 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
IFS=$'\n'
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
id=$1
|
|
from=$2
|
|
to=$3
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
wd=$(pwd)
|
|
# get from path relative to working directory...
|
|
if [[ ${from:0:1} != '/' ]] ; then
|
|
from="$(normpath "${wd}/${from}")"
|
|
fi
|
|
|
|
dirs=($(find "$from" -type d))
|
|
for dir in "${dirs[@]}" ; do
|
|
if [[ "$dir" == "${to}" ]] ; then
|
|
continue
|
|
fi
|
|
dir=${dir#${from}}
|
|
lxc-attach $id -- mkdir -p "${to}/${dir}"
|
|
done
|
|
|
|
files=($(find "$from" -type f))
|
|
for file in "${files[@]}" ; do
|
|
file=${file#${from}}
|
|
f=$(normpath "${from}/${file}")
|
|
t=$(normpath "${to}/${file}")
|
|
[ $QUIET ] \
|
|
|| echo "copy: \"${f#${wd}/}\" -> $id:\"$t\""
|
|
pct push $id "$f" "$t"
|
|
done
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
# vim:set ts=4 sw=4 nowrap :
|