diff --git a/doc/darcs-cm b/doc/darcs-cm new file mode 100644 index 000000000..2f9af8fec --- /dev/null +++ b/doc/darcs-cm @@ -0,0 +1,29 @@ +#!/bin/bash + +DARCS=`which darcs` +SSH=`which ssh` +REPOSERVER=gfreposerver + +if [ ! -x "$SSH" ]; then + echo "ssh ($SSH): command not found" 1>&2 + exit 1 +fi + +if [ "$1" = "--stop" ]; then + $SSH -O exit "$REPOSERVER" + exit $? +fi + +if [ ! -x "$DARCS" ]; then + echo "darcs ($DARCS): command not found" 1>&2 + exit 1 +fi + +if ! $SSH -O check "$REPOSERVER" >& /dev/null; then + echo "Connection to $REPOSERVER is down, connecting..." + $SSH -f -M "$REPOSERVER" \ + "bash -c 'while true; do echo -n .; sleep 30; done'" > /dev/null + sleep 1 +fi + +exec $DARCS "$@" diff --git a/doc/darcs.html b/doc/darcs.html index 9c3b43262..e61f3b00c 100644 --- a/doc/darcs.html +++ b/doc/darcs.html @@ -233,42 +233,11 @@ You may want to create a script or alias for starting the connection.
-You can create a darcs wrapper which sets up a ControlMaster connection
-if there isn't one already. Put the code below in for example ~bin/darcs-cm,
-and use that program instead of darcs to work with the repository.
+You can use a darcs wrapper which sets up a ControlMaster connection
+if there isn't one already. Put the script darcs-cm
+somewhere on your path and use it instead of darcs to work with
+the remote repository.
- #!/bin/bash - - DARCS=`which darcs` - SSH=`which ssh` - REPOSERVER=gfreposerver - - if [ ! -x "$SSH" ]; then - echo "ssh ($SSH): command not found" 1>&2 - exit 1 - fi - - if [ "$1" = "--stop" ]; then - $SSH -O exit "$REPOSERVER" - exit $? - fi - - if [ ! -x "$DARCS" ]; then - echo "darcs ($DARCS): command not found" 1>&2 - exit 1 - fi - - if ! $SSH -O check "$REPOSERVER" >& /dev/null; then - echo "Connection to $REPOSERVER is down, connecting..." - $SSH -f -M "$REPOSERVER" \ - "bash -c 'while true; do echo -n .; sleep 30; done'" > /dev/null - sleep 1 - fi - - exec $DARCS "$@" --
diff --git a/doc/darcs.txt b/doc/darcs.txt index 1a62279f3..35903ed08 100644 --- a/doc/darcs.txt +++ b/doc/darcs.txt @@ -174,42 +174,10 @@ You may want to create a script or alias for starting the connection. === Automating the ControlMaster connection === -You can create a darcs wrapper which sets up a ControlMaster connection -if there isn't one already. Put the code below in, for example, ``~bin/darcs-cm``, -and use that program instead of ``darcs`` to work with the repository. - - -``` -#!/bin/bash - -DARCS=`which darcs` -SSH=`which ssh` -REPOSERVER=gfreposerver - -if [ ! -x "$SSH" ]; then - echo "ssh ($SSH): command not found" 1>&2 - exit 1 -fi - -if [ "$1" = "--stop" ]; then - $SSH -O exit "$REPOSERVER" - exit $? -fi - -if [ ! -x "$DARCS" ]; then - echo "darcs ($DARCS): command not found" 1>&2 - exit 1 -fi - -if ! $SSH -O check "$REPOSERVER" >& /dev/null; then - echo "Connection to $REPOSERVER is down, connecting..." - $SSH -f -M "$REPOSERVER" \ - "bash -c 'while true; do echo -n .; sleep 30; done'" > /dev/null - sleep 1 -fi - -exec $DARCS "$@" -``` +You can use a darcs wrapper which sets up a ControlMaster connection +if there isn't one already. Put the script [darcs-cm darcs-cm] +somewhere on your path and use it instead of ``darcs`` to work with +the remote repository. == Getting a fresh copy ==