#!/bin/zsh

source activate grl

algos=(bmg)
suite=sagw
envs=(tc)
config=tc
args1=(True False)
seed=4
date=$(date +"%m%d")
# date=1006
info=""
ld="${suite}-logs"
# for x in $(seq 1 1); do
#     shift
# done

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

gs=$1
if [ "$gs" = "gs" ]; then
    shift
    cmdkws=""
    for item in $@; do
        if [ "$cmdkws" = "" ]; then
            cmdkws="$item"
        else
            cmdkws="$cmdkws-$item"
        fi
    done

    i=0
    for e in "${envs[@]}"; do
        for a in "${algos[@]}"; do
            for a1 in "${args1[@]}"; do
                for ((s=1; s<=$seed; s++)); do
                    # if [ "$a1" -eq 1 ] && [ "$a3" = "last" ]; then
                    #     break
                    # fi
                    kw1="use_action_mask=$a1"
                    kwstr="$kw1"
                    kws="$kw1"
                    if [ "$cmdkws" != "" ]; then
                        kwstr="$cmdkws-$kwstr"
                        kws="$@ $kws"
                    fi
                    env="${suite}-${e}"
                    gpus=$(nvidia-smi -L | wc -l)
                    gpu=$(($i % $gpus))
                    dir="$ld/$env/$a/$n-$kwstr/seed=$s"
                    mkdir -p $dir
                    # py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $gpu -n $n -s $s -kw $kws -i $info 2> ${dir}/err.txt | tee -a ${dir}/out.txt > /dev/null &"
                    py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $gpu -n $n -s $s -kw $kws -i $info 2> ${dir}/err.txt | tee -a ${dir}/out.txt"
                    echo $py_script
                    inf_mac job run python --exec-command "sh -c \"export PYTHONPATH=. && $py_script \" " \
                        --working-dir . --num-nodes 1 --user chenxw --use-env chenxw \
                        --sync-dir ./$ld:/System/Volumes/Data/mnt/公共区/cxw &
                    sleep 3
                    ((i=(i+1) ))
                done
            done
        done
    done
else
    kw1=""
    kwstr="$kw1"
    kws="$@"
    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<=$seed; s++)); do
                env="${suite}-${e}"
                n="$date"
                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))
                # gpu=1
                # py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $gpu -n $n -s $s -kw $kws 2> ${dir}/err.txt | tee -a ${dir}/out.txt > /dev/null &"
                py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $gpu -n $n -s $s -kw $kws 2> ${dir}/err.txt | tee -a ${dir}/out.txt"
                echo $py_script
                inf_mac job run python --exec-command "sh -c \"export PYTHONPATH=. && $py_script \" " \
                    --working-dir . --num-nodes 1 --user chenxw --use-env chenxw \
                    --sync-dir ./$ld:/System/Volumes/Data/mnt/公共区/cxw &
                sleep 3
            done
        done
    done
fi
