login=$1
password=$2
+host=$3
if [ -z "$login" -o -z "$password" ]; then
- echo "Usage: $0 login password"
+ echo "Usage: $0 login password [host]"
exit 1
fi
mkdir -p users/$login/blob
-echo "$login:$password" > users/$login/secrets
+secrets="users/$login/secrets"
+test ! -z "$host" && login="$login+$host"
+grep "^$login:" $secrets || echo "$login:$password" >> $secrets
+cat $secrets
$login =~ s{^.+/([^/]+)$}{$1};
if ( -d $path && -d "$path/blob" && -f "$path/secrets" ) {
- print "INFO: user $login added\n";
+ my @secrets = map { chomp } read_file "$path/secrets";
+ my $auth_users = join(', ', map { s/:.+$//; $_ } @secrets );
$rsync_config .= <<__RSYNC_MODULE__;
[$login]
path = $dir/users/$login/blob
- auth users = $login
+ auth users = $auth_users
secrets file = $dir/users/$login/secrets
read only = false
__RSYNC_MODULE__
+ print "INFO: added $login = $auth_users\n";
+
} else {
warn "skipped $login: $!";
}
warn "# reading log output from $log_fifo\n";
open(my $fifo, '<', $log_fifo);
while( my $line = <$fifo> ) {
+ die $line if $line =~ /rsync error:/;
chomp $line;
print $line, $/;
+
if ( $line =~ /transfer-log:(.+)/ ) {
my $transfer = $1;
$transfer =~ s|(\d\d\d\d)/(\d\d)/(\d\d)[-\s](\d\d:\d\d:\d\d)|$1-$2-$3T$4|g;
push() {
file=`shift`
- RSYNC_PASSWORD=secret rsync $* $file rsync://test@127.0.0.1:6501/test/$file
+ RSYNC_PASSWORD=secret rsync $* $file rsync://test+localhost@127.0.0.1:6501/test/$file
}
pull() {
from=$1
}
./create-user.sh test secret
+./create-user.sh test secret localhost
dir=/tmp/test
rm -Rf "$dir"