Skip to content
This repository has been archived by the owner on Oct 22, 2021. It is now read-only.

Commit

Permalink
Improve remsh script
Browse files Browse the repository at this point in the history
Cookies now default to using ~/.erlang.cookie which is automatically
generated if it does not exist when erlang starts with a name.

There is also no longer a need to specify a name to remsh as it'll
generate a name based on the process id and set the short or long
version appropriately.
  • Loading branch information
davisp committed Oct 13, 2011
1 parent 44ba062 commit d367c4b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 16 deletions.
9 changes: 8 additions & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,20 @@ do
BIGCOUCH_USER=$2
shift 2
;;
-c)
COOKIE=$2
shift 2
;;
*)
echo "usage: $0 [-p {prefix} -t {template} -d {data_dir} -v {view_dir} -u {user}]"
echo "usage: $0 [-p {prefix} -t {template} -d {data_dir} -v {view_dir} -u {user} -c {cookie}]"
exit
;;
esac
done

if test ! -n "$DATA"; then DATA="$PREFIX/var/lib"; fi
if test ! -n "$VIEW"; then VIEW="$PREFIX/var/lib"; fi
if test -n "$COOKIE"; then COOKIE="-setcookie $COOKIE"; fi

echo "==> configuring bigcouch in rel/bigcouch.config"
cat > rel/bigcouch.config << EOF
Expand All @@ -61,6 +66,7 @@ cat > rel/bigcouch.config << EOF
{view_dir, "$VIEW"}.
{user, "$BIGCOUCH_USER"}.
{node_name, "-name bigcouch"}.
{cookie, "$COOKIE"}.
{cluster_port, 5984}.
{cluster_ssl, 6984}.
{backend_port, 5986}.
Expand All @@ -81,6 +87,7 @@ cat > rel/dev$i.config << EOF
{data_dir, "$DIRPATH/rel/tmpdata/dev$i"}.
{view_dir, "$DIRPATH/rel/tmpdata/dev$i"}.
{node_name, "-name dev$i@127.0.0.1"}.
{cookie, "$COOKIE"}.
{cluster_port, `expr 10000 \* $i + 5984`}.
{cluster_ssl, `expr 10000 \* $i + 6984`}.
{backend_port, `expr 10000 \* $i + 5986`}.
Expand Down
20 changes: 9 additions & 11 deletions rel/overlay/bin/remsh
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@
# License for the specific language governing permissions and limitations under
# the License.

if test ! $1 ; then
echo "usage: $0 nodename"
exit 1
fi
NAME="remsh$$"
REM_NODE="{{node_name}}"
NAME_TYPE=${REM_NODE% *}
REM_NODE=${REM_NODE#* }
HOST=`echo "$REM_NODE" | grep -o "@.*" | sed 's/@//'`

if test `echo $1 | sed 's/[^@]//g'`; then
NAME="-name $1"
if test -n $HOST; then
NAME="$NAME_TYPE $NAME@$HOST"
else
NAME="-sname $1"
NAME="$NAME_TYPE $NAME"
fi

ERTS_BIN_DIR=$(cd ${0%/*} && pwd)
Expand All @@ -33,9 +34,6 @@ START_CLEAN="${ROOTDIR}/releases/${APP_VSN}/start_clean"

BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin

REM_NODE="{{node_name}}"
REM_NODE=${REM_NODE#* }

COOKIE="-setcookie monster"
COOKIE="{{cookie}}"

exec $BINDIR/erl $NAME -remsh $REM_NODE $COOKIE -hidden -boot $START_CLEAN
13 changes: 9 additions & 4 deletions rel/overlay/etc/vm.args
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
# with the -name flag.
{{node_name}}

# All nodes must share the same magic cookie for distributed Erlang to work.
# Comment out this line if you synchronized the cookies by other means (using
# the ~/.erlang.cookie file, for example).
-setcookie monster
# If you passed a value for the cookie to ./configure it will be set here.
# Otherwise it will default to using ~/.erlang.cookie which will be generated
# automatically if it doesn't exist.
#
# Note that you need to make sure that the cookie value used is synchronized
# across all nodes in the cluster. This means that if you don't set the
# cookie by hand you need to manually sync ~/.erlang.cookie across all nodes
# in the cluster.
{{cookie}}

# Tell SASL not to log progress reports
-sasl errlog_type error
Expand Down

0 comments on commit d367c4b

Please sign in to comment.