Clean up create_env.sh
Apply some shell scripting essentials:
- Use bash's [[ instead of [ test
- Set strict error and variable checking
BUG=None
TEST=Run create_env.sh
Change-Id: I3ab3e4b7b704e9128054a0a0586d136f69e89d58
Reviewed-on: https://chromium-review.googlesource.com/394866
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
diff --git a/venv/create_env.sh b/venv/create_env.sh
index 24e71ac..d3e2d36 100755
--- a/venv/create_env.sh
+++ b/venv/create_env.sh
@@ -5,13 +5,27 @@
# TODO(ayatane): Unify bin/run_sysmon.sh with this once this is stable.
+set -eu
+
+# Activate virtualenv
+activate() {
+ local venv_dir=$1
+ # virtualenv relies on unset variables, so we disable unset variable checking
+ # just for this.
+ set +u
+ source "$venv_dir/bin/activate"
+ set -u
+}
+
+venv_dir="venv"
+
cd "$(dirname "$(readlink -f -- "$0")")"
-if [ requirements.txt -nt venv/timestamp ]; then
- echo Creating or updating virtualenv in venv/
- virtualenv venv --extra-search-dir=pip_packages
- source venv/bin/activate
+if [[ requirements.txt -nt venv/timestamp ]]; then
+ echo "Creating or updating virtualenv in $(pwd)/$venv_dir/"
+ virtualenv "$venv_dir" --extra-search-dir=pip_packages
+ activate "$venv_dir"
pip install --no-index -f pip_packages -r requirements.txt
- touch venv/timestamp
+ touch "$venv_dir"/timestamp
else
- echo Existing virtualenv is already up to date.
+ echo "Existing virtualenv $(pwd)/$venv_dir/ is already up to date."
fi