#!/bin/bash
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

t1=$1
if [ -z "${t1}" ]; then
    t1=1
fi

rebasedb=$(python3 -c "from common import rebasedb; print(rebasedb)")

sql="select disposition,sha,dsha,subject from commits where topic=${t1}"

tlist="${t1}"

while [ "$2" != "" ]
do
    sql="${sql} or topic=$2"
    tlist="${tlist}, $2"
    shift
done

echo "# ${tlist}"

sql="${sql};"

sqlite3 "${rebasedb}" "${sql}" | while read -r line
do
    dotag=0
    fromupstream=0
    conflicts=0

    f1=$(echo "${line}" | awk -F '|' '{print $1}')    # disposition
    f2=$(echo "${line}" | awk -F '|' '{print $2}')    # sha
    f3=$(echo "${line}" | awk -F '|' '{print $3}')    # replacement sha
    f4=$(echo "${line}" | awk -F '|' '{print $4}')    # subject

    case "${f1}" in
    "replace")
        f2_old="${f2}"
        f2="${f3}"
        f1="pick"
        fromupstream=1
        ;;
    "pick" | "drop")
        ;;
    "tag")
        # maybe later
        dotag=1
        # f1="pick"
        ;;
    "squash")
        # maybe later
        # f1="pick"
        ;;
    "conflicts")
        # maybe later
        # f1="pick"
        ;;
    *)
        echo "Oops"
        exit 1
        ;;
    esac

    if [ "${f1}" = "squash" ]
    then
        # special processing.
        echo "exec dosquash49.sh ${f2} ${f4}"
        continue
    fi
    if [[ "${f1}" != "pick" && "${f1}" != "edit" && "${f1}" != "reword" ]]
    then
        continue
    fi
    # echo "cherry-picking ${f2}"
    if [ "${fromupstream}" -ne 0 ]
    then
            echo "pick ${f2_old} ${f4}"
        echo "exec fromupstream.py --replace ${f2}"
    elif [ "${dotag}" -ne 0 ]
    then
        echo "pick ${f2} ${f4}"
        echo "exec dotag.sh"
    elif [ "${conflicts}" -ne 0 ]
    then
        echo "exec doconflicts49.sh ${f2} ${f4}"
    else
        echo "${f1} ${f2} ${f4}"
    fi
done
