#!/bin/bash

# This script runs Chord with the specified number of nodes.
# Usage: ./run_chord nb_nodes
# The platform file is chosen as the smallest platform of the files
# examples/platforms/cluster_with_*_hosts.xml that contains enough nodes.

# check arguments number
if [ $# != 1 ]; then
  echo "Usage: ./run_chord nb_nodes"
  exit 1
fi

# pick an appropriate platform file
if [ $1 -le 100 ]; then
  platform=100
else
  if [ $1 -le 1000 ]; then
    platform=1000
  else
    if [ $1 -le 10000 ]; then
      platform=10000
    else
      if [ $1 -le 100000 ]; then
	platform=100000
      else
	if [ $1 -le 300000 ]; then
	  platform=300000
	else
	  echo "Cannot find a platform file large enough."
	  exit 2
	fi
      fi
    fi
  fi
fi

# set up the deployment file
nb_lines=$[ $1 + 3]
head -n $nb_lines chord300000.xml > tmp_depl.xml
echo "</platform>" >> tmp_depl.xml

# run Chord
./chord -nb_bits=24 -timeout=50 "../../platforms/cluster_with_${platform}_hosts.xml" tmp_depl.xml

# cleanup
# rm tmp_depl.xml

