diff --git a/tools/buildgen/generate_build_additions.sh b/tools/buildgen/generate_build_additions.sh
new file mode 100644
index 0000000000000000000000000000000000000000..65a7af3c4e9d95f7ef8bea1446d4c4877ab6ddb3
--- /dev/null
+++ b/tools/buildgen/generate_build_additions.sh
@@ -0,0 +1,8 @@
+gen_build_json_dirs="test/core/end2end test/core/bad_client"
+gen_build_files=""
+for gen_build_json in $gen_build_json_dirs
+do
+  output_file=`mktemp /tmp/genXXXXXX`
+  $gen_build_json/gen_build_json.py > $output_file
+  gen_build_files="$gen_build_files $output_file"
+done
diff --git a/tools/buildgen/generate_projects.sh b/tools/buildgen/generate_projects.sh
index d896380c374190e368518f0e7858cb2b2e523da4..8aba118f370375bf662bd9e5a3eacc7a5451e0f9 100755
--- a/tools/buildgen/generate_projects.sh
+++ b/tools/buildgen/generate_projects.sh
@@ -38,19 +38,12 @@ fi
 
 cd `dirname $0`/../..
 mako_renderer=tools/buildgen/mako_renderer.py
-gen_build_json_dirs="test/core/end2end test/core/bad_client"
 
 if [ "x$TEST" != "x" ] ; then
   tools/buildgen/build-cleaner.py build.json
 fi
 
-gen_build_files=""
-for gen_build_json in $gen_build_json_dirs
-do
-  output_file=`mktemp /tmp/genXXXXXX`
-  $gen_build_json/gen_build_json.py > $output_file
-  gen_build_files="$gen_build_files $output_file"
-done
+source tools/buildgen/generate_build_additions.sh
 
 global_plugins=`find ./tools/buildgen/plugins -name '*.py' |
   sort | grep -v __init__ | awk ' { printf "-p %s ", $0 } '`