Refactor create_venv requirements aggregation

BUG=None
TEST=Run virtualenv scripts locally

Change-Id: Iba8d17c323f678089cda4ec24e2342cabfd32e50
Reviewed-on: https://chromium-review.googlesource.com/423208
Commit-Ready: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Reviewed-by: David Riley <davidriley@chromium.org>
diff --git a/create_venv b/create_venv
index b2b873a..cc07e34 100755
--- a/create_venv
+++ b/create_venv
@@ -53,24 +53,23 @@
   local venv_dir=$1
   local requirements=$2
   local installed="$venv_dir/.installed.txt"
-  (
-    for dep in "${base_deps[@]}"; do
-      echo "$dep"
-    done
-    cat "$requirements"
-  ) | "$basedir/expand_reqs.py" 2>/dev/null | cmp -s - "$installed"
+  print_reqs "$requirements" | cmp -s - "$installed"
 }
 
 mark_up_to_date() {
   local venv_dir=$1
   local requirements=$2
   local installed="$venv_dir/.installed.txt"
-  : > "$installed"
-  local dep
+  print_reqs "$requirements" > "$installed"
+}
+
+print_reqs() {
+  local requirements=$1
+
   for dep in "${base_deps[@]}"; do
-    echo "$dep" >> "$installed"
+    echo "$dep"
   done
-  "$basedir/expand_reqs.py" <"$requirements" >>"$installed"
+  "$basedir/expand_reqs.py" <"$requirements" 2>/dev/null
 }
 
 init_venv() {