common_demo_functions.sh 1.41 KB
Newer Older
1
#!/usr/bin/env bash
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

REMOTE=$(pwd)/demo_repo

unset GIT_DIR

# Helper functions
set_user() {
  export GIT_AUTHOR_EMAIL="$1@chromium.org"
  export GIT_AUTHOR_NAME="$1"
  export GIT_COMMITTER_EMAIL="$1@chromium.org"
  export GIT_COMMITTER_NAME="$1"
}
set_user 'local'


# increment time by X seconds
TIME=1397119976
tick() {
  TIME=$[$TIME + $1]
  export GIT_COMMITTER_DATE="$TIME +0000"
  export GIT_AUTHOR_DATE="$TIME +0000"
}
tick 0

# a commit
c() {
  silent git commit --allow-empty -m "$1"
  tick 10
}

praw() {
  echo -e "\x1B[37;1m$ $@\x1B[m"
}

# print a visible command (but don't run it)
pcommand() {
  praw "$(python -c '\
    import sys, pipes; \
    print " ".join(map(pipes.quote, sys.argv[1:]))' "$@")"
}

# run a visible command
run() {
  pcommand "$@"
  "$@"
}

comment() {
50
  echo "###COMMENT### $@"
51 52
}

sammc@chromium.org's avatar
sammc@chromium.org committed
53 54 55 56 57
# run a command and print its output without printing the command itself
output() {
  "$@"
}

58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
# run a silent command
silent() {
  if [[ $DEBUG ]]
  then
    "$@"
  else
    "$@" > /dev/null 2> /dev/null
  fi
}

# add a file with optionally content
add() {
  local CONTENT=$2
  if [[ ! $CONTENT ]]
  then
    CONTENT=$(python -c 'import random, string; \
      print "".join(random.sample(string.lowercase, 16))')
  fi
  echo "$CONTENT" > $1
  silent git add $1
}

# Add a special callout marker at the given line offset to indicate to
# filter_demo_output.py to add a callout at that offset.
callout() {
  echo -e "\x1b[${1}c"
}