Die if DIR is missing.

Change-Id: I81b1f33eec3dd29769b75862990b4131c332eb9f
Reviewed-on: https://chromium-review.googlesource.com/465508
Tested-by: danny chan <dchan@chromium.org>
Reviewed-by: Tyler Reid <twreid@google.com>
Commit-Queue: danny chan <dchan@chromium.org>
diff --git a/provingground/firmware/chroot_setup.sh b/provingground/firmware/chroot_setup.sh
index 1576421..c8ba4ab 100755
--- a/provingground/firmware/chroot_setup.sh
+++ b/provingground/firmware/chroot_setup.sh
@@ -1,28 +1,29 @@
 #!/bin/bash
 #
-# Copyright 2016 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.
-#
 # Wrapper script to create a new chroot
 #
 
 usage()
 {
 cat <<EOF
-  Usage: branch_setup.sh -d {DIR} -b {BRANCH_NAME} [ -s {BOARD_NAME} ]
+  Usage: $0 -d {DIR} [ -b {BRANCH} ] [ -s {BOARD} ]
+  -d {DIR}    a non-existing directory to create repo
+  -b {BRANCH} optional: will create BRANCH_NAME repo
+  -s {BOARD}  optional: will setup and build BOARD_NAME
 
   Example:
-  To setup branch firmware-tidus-6301.109.B on /disk2 and build board tidus :
-    ./chroot_setup.sh -d /disk2/firmware-tidus-6301.109.B -b firmware-tidus-6301.109.B -s tidus
+  To setup a new repo at head on /disk2:
+    ./chroot_setup.sh -d /disk2/chromiumos
 
   To setup at head on /disk2 and build board tidus :
     ./chroot_setup.sh -d /disk2/chromiumos -s tidus
 
+  To setup branch firmware-tidus-6301.109.B on /disk2 and build board tidus :
+    ./chroot_setup.sh -d /disk2/firmware-tidus-6301.109.B -b firmware-tidus-6301.109.B -s tidus
+
   To cleanup branch created in /disk2/chromiumos:
-    cd /disk2/chromiumos
-    cros_sdk --delete
-    sudo rm -rf /disk2/chromiumos
+    cd /disk2/chromiumos; cros_sdk --delete
+    cd /; sudo rm -rf /disk2/chromiumos
 EOF
 }
 
@@ -44,6 +45,15 @@
   exit 1
 fi
 
+if [ -d $DIR ]; then
+  echo Directory $DIR already exist. Cannot create new repo $DIR.
+  exit 1
+fi
+
+
+# so you can do sudo later without asking password.
+sudo echo
+
 # Print each command as they executed
 set -x
 # Script exit on any command exit with non zero status
@@ -54,7 +64,7 @@
   BRANCH_OPT="-b $BRANCH"
 fi
 
-mkdir $DIR
+mkdir -p $DIR
 cd $DIR
 
 date
@@ -68,15 +78,20 @@
 repo sync > repo_sync.out 2>&1
 
 date
-cros_sdk -- exit > cros_sdk.out 2>&1
+cros_sdk -- exit
+
+# remove bash logout clear screen
+rm $DIR/chroot/home/$USER/.bash_logout
 
 # personalize shell
 cat <<EOF >> $DIR/chroot/home/$USER/.bash_profile
-export PS1='${DIR}:\W\$(__git_ps1 "(%s)") \u \$ '
+# export PS1='\${HOME}:\W\$(__git_ps1 "(%s)") \u \$ '
+export PS1='\033]2;\h[\${TTY}]\${PWD}\007\n$DIR:\W\$(__git_ps1 "(%s)") \u \$ '
 # use the right editor
 export EDITOR=vi
 # do not clear screen on exit
 export LESS=”-XF”
+export PAGER=more
 # useful aliases
 alias ls='ls -CF'
 alias ll='ls -l'
@@ -84,20 +99,29 @@
 alias h='history'
 alias rm='rm -i'
 alias is='ps axuwwww | grep'
+alias tt='test_that --autotest_dir ~/trunk/src/third_party/autotest/files/'
+EOF
+
+cat <<EOF >> $DIR/chroot/home/$USER/.vimrc
+" no warp in seach
+set nowrapscan
+" no highlight in search
+set hlsearch!
+set shiftwidth=4
+set tabstop=4
 EOF
 
 if [ -z "$BOARD" ]; then
+  echo repo $DIR setup done.
   exit 0
 fi
 
 date
-cros_sdk -- ./setup_board --board=$BOARD > setu_board.out 2>&1
-
-## date
-# cros_sdk -- emerge-${board_name} libchrome > emerge_libchrome.out 2>&1
+cros_sdk -- ./setup_board --board=$BOARD > setup_board.out 2>&1
 
 date
 cros_sdk -- ./build_packages --board=$BOARD > build_packages.out 2>&1
 
 date
+echo DONE.
 exit 0