#!/bin/bash

set -e

# Parse arguments
spec_path=''
output_path=''
locale='en'
max_array_length='3'
seed='1337'
while [[ "$#" -gt 0 ]]; do case $1 in
  --spec-path) spec_path="$2"; shift;;
  --output-path) output_path="$2"; shift;;
  --locale) locale="$2"; shift;;
  --max-array-length) max_array_length="$2"; shift;;
  --seed) seed="$2"; shift;;
esac; shift; done

echo "Generating Mock Data..."

working_dir=$(pwd)
script_dir="$( cd -- "$(dirname $([ -L "${BASH_SOURCE[0]:-$0}" ] && readlink -f "${BASH_SOURCE[0]:-$0}" || echo "${BASH_SOURCE[0]:-$0}"))" >/dev/null 2>&1 ; pwd -P )";

# load common package manager helper functions
. "$script_dir/../../common/common.sh"

# Create a temporary directory
tmp_dir=$(mktemp -d "${TMPDIR:-/tmp/}generate-mock-data.XXXXXXXXX")
cd $tmp_dir

log "mock-data :: tmp_dir :: $tmp_dir"

# Copy the script directory into the temp directory
cp -r $script_dir/* .

# Install dependencies
install_packages

outdir="$working_dir/$output_path/mocks"

log "mock-data :: deleting outdir :: $outdir"
rm -rf $outdir
mkdir -p $outdir

# Generate
log "mock-data :: generate"
run_command ts-node generate-mock-data.ts \
  --specPath="$working_dir/$spec_path" \
  --outputPath="$working_dir/$output_path/mocks" \
  --locale="$locale" \
  --maxArrayLength="$max_array_length" \
  --seed="$seed"

echo "Mock data generation done!"

# Clean up
cd $working_dir
rm -rf $tmp_dir
