#!/bin/bash
BLANK_DEMO=1
. demo_repo.sh

trunc() {
  echo ... truncated output ...
}

trunc_command() {
  pcommand "$@"
  trunc
}

WS=build/whitespace_file.txt
add_ws() {
  praw cat '>>' $WS '<<EOF'
  echo -e "$1"
  echo EOF
  echo -e "$1" >> $WS
}

ed_ws() {
  echo -ne "\x1B[37;1m$ echo -e "
  echo -n "'$1'"
  echo -e " | ed $WS\x1B[m"
  echo -e "$1" | ed $WS 2>&1
}

# needs an extra echo afterwards
map() {
  run git map
  echo
}

ED1='/Banana\ns/Banana/Kuun\nwq'

ADD1="
\"You recall what happened on Mulholland drive?\" The ceiling fan rotated slowly
overhead, barely disturbing the thick cigarette smoke. No doubt was left about
when the fan was last cleaned."

ED2='/Kuun\ns/Kuun/Kun\nwq'

ADD2="
There was an poignant pause."

ADD3="
CHAPTER 3:
Mr. Usagi felt that something wasn't right. Shortly after the Domo-Kun left he
began feeling sick."

trunc_command fetch chromium
pcommand cd src

comment "(only on linux)"
trunc_command ./build/install-build-deps.sh

comment "Pull in all dependencies for HEAD"
trunc_command gclient sync

comment "Let's fix something!"
run git new-branch fix_typo
ed_ws "$ED1"
run git commit -am 'Fix terrible typo.'
map
run git status
trunc_command git cl upload -r domo@chromium.org --send-mail

comment "While we wait for feedback, let's do something else."
run git new-branch chap2
run git map-branches
add_ws "$ADD1"
run git status

comment "Someone on the code review pointed out that our typo-fix has a typo :("
comment "We're still working on 'chap2' but we really want to land"
comment "'fix_typo', so let's switch over and fix it."
run git freeze
run git checkout fix_typo  2>&1
ed_ws "$ED2"
run git upstream-diff --wordwise
run git commit -am 'Fix typo for good!'
trunc_command git cl upload

comment "Since we got lgtm, let the CQ land it."
pcommand git cl set_commit
map

comment "Switch back to where we were using the nav* commands (for fun..."
comment "git checkout would work here too)"
run git map-branches
run git nav-upstream  2>&1
pcommand git nav-downstream
git nav-downstream --pick 0  2>&1
run git map-branches

comment "Now we can pick up on chapter2 where we left off."
run git thaw
run git diff
add_ws "$ADD2"
run git diff
run git commit -am 'Finish chapter 2'
map
trunc_command git cl upload -r domo@chromium.org --send-mail

comment "We poke a committer until they lgtm :)"
pcommand git cl set_commit

comment "While that runs through the CQ, let's get started on chapter 3."
comment "Since we know that chapter 3 depends on chapter 2, we'll track the"
comment "current chapter2 branch."
run git new-branch --upstream_current chap3
add_ws "$ADD3"
run git commit -am 'beginning of chapter 3'
map

comment "We haven't updated the code in a while, so let's do that now."
pcommand git rebase-update
echo Fetching origin
git fetch origin 2>&1 | grep -v 'stage' | sed 's+From.*+From https://upstream+'
silent git update-ref refs/remotes/origin/master stage_2
silent git tag -d $(git tag -l 'stage_*')
git rebase-update --no_fetch

comment "Well look at that. The CQ landed our typo and chapter2 branches "
comment "already and git rebase-update cleaned them up for us."
trunc_command gclient sync
map

comment "Someone on IRC mentions that they actually landed a chapter 3 already!"
comment "We should pull their changes before continuing. Brace for"
comment "a code conflict!"
pcommand git rebase-update
echo Fetching origin
git fetch origin 2>&1 | grep -v 'stage' | sed 's+From.*+From https://upstream+'
silent git tag -d $(git tag -l 'stage_*')
echo Rebasing: chap2
silent git rebase-update
echo ... lots of output, it\'s a conflict alright :\(...
run git diff

comment "Oh, well, that's not too bad. In fact... that's a terrible chapter 3!"
praw \$EDITOR "$WS"
echo "... /me deletes bad chapter 3 ..."
silent git checkout --theirs -- "$WS"
run git add "$WS"
run git diff --cached

comment "Much better"
run git rebase --continue
run git rebase-update
silent git tag -d $(git tag -l 'stage_*')
trunc_command gclient sync
map
trunc_command git cl upload
