| #!/bin/bash | 
 |  | 
 | # This script will be run bazel when building process starts to | 
 | # generate key-value information that represents the status of the | 
 | # workspace. The output should be like | 
 | # | 
 | # KEY1 VALUE1 | 
 | # KEY2 VALUE2 | 
 | # | 
 | # If the script exits with non-zero code, it's considered as a failure | 
 | # and the output will be discarded. | 
 |  | 
 | # The code below presents an implementation that works for git repository | 
 | git_rev=$(git rev-parse HEAD) | 
 | if [[ $? != 0 ]]; | 
 | then | 
 |     exit 1 | 
 | fi | 
 | echo "BUILD_SCM_REVISION ${git_rev}" | 
 |  | 
 | # Check whether there are any uncommitted changes | 
 | git diff-index --quiet HEAD -- | 
 | if [[ $? == 0 ]]; | 
 | then | 
 |     tree_status="Clean" | 
 | else | 
 |     tree_status="Modified" | 
 | fi | 
 | echo "BUILD_SCM_STATUS ${tree_status}" |