Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adding a way for log-format numbers to become more human readable.
[rsync/rsync.git]
/
support
/
instant-rsyncd
diff --git
a/support/instant-rsyncd
b/support/instant-rsyncd
index
dcd8757
..
e9efb1a
100755
(executable)
--- a/
support/instant-rsyncd
+++ b/
support/instant-rsyncd
@@
-16,30
+16,41
@@
set -e
dir="$(pwd)"
dir="$(pwd)"
-if [ "$#" -lt 3 ]; then
- echo "I would install an rsync daemon in $dir if you gave me"
- echo "a module name, a port, and an rsync username."
- exit 1
+echo
+echo "This will setup an rsync daemon in $dir"
+
+if [ $# = 0 ]; then
+ IFS='' read -p 'Module name to create (or return to exit): ' module
+ [ ! "$module" ] && exit
+else
+ module="$1"
+ shift
fi
fi
-module="$1"
-port="$2"
-user="$3"
-rsync="$4"
-if [ ! "$rsync" ]; then
- rsync=rsync
+if [ $# = 0 ]; then
+ IFS='' read -p 'Port number the daemon should listen on [873]: ' port
+else
+ port="$1"
+ shift
fi
fi
+[ "$port" ] || port=873
-moduledir="${dir%/}/$module"
+if [ $# = 0 ]; then
+ IFS='' read -p 'User name for authentication (empty for none): ' user
+else
+ user="$1"
+ shift
+fi
-echo
-echo "I'm about to install an rsync daemon in $dir."
-echo "It will listen on port $port for requests giving rsync username $user"
-echo "and the password you are about to specify. It will serve a module"
-echo "$module corresponding to $moduledir."
-echo
+if [ "$user" ]; then
+ IFS='' read -s -p 'Desired password: ' password
+ echo
+fi
+
+rsync="$1"
+[ "$rsync" ] || rsync=rsync
-IFS='' read -s -p 'Desired password: ' password
+moduledir="${dir%/}/$module"
mkdir "$module"
mkdir "$module"
@@
-50,17
+61,20
@@
port = $port
use chroot = no
[$module]
use chroot = no
[$module]
- path = $module
- read only = false
- auth users = $user
- secrets file = $module.secrets
+ path = $module
+ read only = false
EOF
EOF
-touch "$module".secrets
-chmod go-rwx "$module".secrets
-cat >"$module".secrets <<EOF
-$user:$password
-EOF
+if [ "$user" ]; then
+ cat >>rsyncd.conf <<-EOF
+ auth users = $user
+ secrets file = $module.secrets
+ EOF
+ touch "$module".secrets
+ chmod go-rwx "$module".secrets
+ echo "$user:$password" >"$module".secrets
+ user="$user@"
+fi
cat >start <<EOF
#!/bin/bash
cat >start <<EOF
#!/bin/bash
@@
-82,12
+96,12
@@
cd `dirname $0`
EOF
chmod +x stop
EOF
chmod +x stop
-path="rsync://$user
@
$(hostname):$port/$module/"
+path="rsync://$user$(hostname):$port/$module/"
if ./start; then
sleep .2
echo
if ./start; then
sleep .2
echo
- echo "I
tried to start
the daemon. The log file rsyncd.log says:"
+ echo "I
ran the start command for
the daemon. The log file rsyncd.log says:"
echo
cat rsyncd.log
echo
echo
cat rsyncd.log
echo
@@
-97,7
+111,12
@@
if ./start; then
echo "Give rsync the following path to access the module:"
echo " $path"
echo
echo "Give rsync the following path to access the module:"
echo " $path"
echo
- echo "Let's test the daemon now. Enter the password you chose."
+ if [ "$user" ]; then
+ echo "Let's test the daemon now. Enter the password you chose at the prompt."
+ else
+ echo "Let's test the daemon now."
+ fi
+ echo
echo '$' $rsync --list-only "$path"
$rsync --list-only "$path"
echo
echo '$' $rsync --list-only "$path"
$rsync --list-only "$path"
echo