|  | #!/bin/bash | 
|  | # | 
|  | # Generate a TODO with a unique hash and priority level to allow tracking. | 
|  | # | 
|  | # Usage: ./gen_todo.sh 2 "Implement this." | 
|  | # | 
|  | # Output: TODO(P2-a07e5416): Implement this. | 
|  |  | 
|  | # Quit if any command produces an error. | 
|  | set -e | 
|  |  | 
|  | # Check the positional arguments, assign defaults or prompt the user. | 
|  | if [ $# -lt 2 ]; | 
|  | then | 
|  | read -p "Priority (ex: 0, 1, 2 or 3):" | 
|  | if [ -z $REPLY ] | 
|  | then | 
|  | PRIORITY="?" | 
|  | else | 
|  | PRIORITY=$REPLY | 
|  | fi | 
|  |  | 
|  | read -p "Description (ex: 'Implement this.'):" | 
|  | TODO_TEXT=$REPLY | 
|  | else | 
|  | PRIORITY=$1 | 
|  | TODO_TEXT=$2 | 
|  | fi | 
|  |  | 
|  | # Build the TODO string. | 
|  | TIME=`date +%s.%N` | 
|  | SHASUM=`echo $TIME | shasum` | 
|  | TODO_ID=${SHASUM:0:6} | 
|  | TODO_STR="TODO(P$PRIORITY-$TODO_ID): $TODO_TEXT" | 
|  | echo $TODO_STR |