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.

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. +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 "$@"
-
-

Getting a fresh copy

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 ==