#!/bin/zsh

source activate grl

algos=(
    # ppo
    # gpo
    # zero
    $1
    # sync2-zero
)
suite=matrix
envs=(
    ipd
)
shift
config=matrix
seeds=(0 1 2 3)
args1=(1 5)
args2=()
args3=(None)
args4=(0)
date=$(date +"%m%d")
# date=0804
# info="tbptt=5"
info=""

if [ -z "$info" ]; then
    n=$date
else
    n="$date-$info"
fi

k1="n_epochs"
k2="entropy_coef:outer"
k3=""
k4=""

cmdkws=""
for item in $@; do
    if [ -z != $cmdkws ]; then
        cmdkws="$cmdkws-$item"
    else
        cmdkws="$item"
    fi
done

# i=0
# for e in "${envs[@]}"; do
#     for a in "${algos[@]}"; do
#         for a1 in "${args1[@]}"; do
#             for a2 in "${args2[@]}"; do
#                 for a3 in "${args3[@]}"; do
#                     for a4 in "${args4[@]}"; do
#                         for ((seed=1; seed<=4; seed++)); do
#                             kw1="$k1=$a1"
#                             kw2="$k2=$a2"
#                             kw3="$k3=$a3"
#                             kw4="$k4=$a4"
#                             kwstr="$kw1-$kw2"
#                             if [ 0 != $# ]; then
#                                 kwstr="$cmdkws-$kwstr"
#                             fi
#                             env="${suite}-${e}"
#                             ld="$suite-logs"
#                             dir="$ld/$env/$a/$n-$kwstr/seed=$seed"
#                             mkdir -p $dir
#                             if [ "0" = $# ]; then
#                                 kws="$kw1 $kw2"
#                             else
#                                 kws="$@ $kw1 $kw2"
#                             fi
#                             gpus=$(nvidia-smi -L | wc -l)
#                             gpu=$(($seed % $gpus))
#                             py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $gpu -n $n -kw $kws -s $seed -v info -i $info 2> ${dir}/err.txt | tee -a ${dir}/out.txt > /dev/null &"
#                             echo $py_script
#                             eval $py_script
#                             # sleep 3
#                         done
#                     done
#                 done
#             done
#         done
#     done
# done

kws="$@"
shift
kw1=""
kwstr="$kw1"
kws="$kws $kw1"
for item in $@; do
    if [ -z != $kwstr ]; then
        kwstr="$kwstr-$item"
    else
        kwstr="$item"
    fi
done

for e in "${envs[@]}"; do
    for a in "${algos[@]}"; do
        for ((s=1; s<=8; s++)); do
            env="${suite}-${e}"
            ld="$suite-logs"
            if [ 0 != $# ]; then
                dir="$ld/$env/$a/$n-$kwstr/seed=$s"
            else
                dir="$ld/$env/$a/$n/seed=$s"
            fi
            mkdir -p $dir
            gpus=$(nvidia-smi -L | wc -l)
            gpu=$((($s-1) % $gpus))
            py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $gpu -n $n -s $s $kws -i $info 2> ${dir}/err.txt | tee -a ${dir}/out.txt > /dev/null &"
            echo $py_script
            eval $py_script
            # sleep 3
        done
    done
done
