#!/usr/bin/env bash
#
# Mine Onion Service keys using mkp224o.
#
# Copyright (C) 2022 Silvio Rhatto <rhatto@torproject.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation, either version 3 of the License,
# or any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

# Parameters
BASENAME="`basename $0`"
DIRNAME="`dirname $0`"
source $DIRNAME/params

# Check
if [ -z "$CONFIG" ]; then
  echo "usage: $BASENAME <config-pool-name>"
  exit 1
elif [ ! -e "$FILTERS" ]; then
  echo "$BASENAME: no such file $FILTERS"
  exit 1
fi

# Create folders
mkdir -p $CANDIDATES $LOGS

# Compile
echo "$BASENAME: compiling mkp224o to make sure it's built with the current flags..."
make -C $BASEDIR compile

# Start log
echo ">started at: $DATE"                  > $LOG
echo ">build flags: $MKP224O_BUILD_FLAGS" >> $LOG
cat $FILTERS | xargs echo ">filters:"     >> $LOG

# Run
echo "$BASENAME: starting mkp224o..."
$BASEDIR/bin/mkp224o $MKP224O_RUN_FLAGS 2>&1 | tee -a $LOG
