internal: clean up regen-gapic.sh

- Script works in /tmp rather than $GOPATH (go modules turned on).
- Move gapics listing to separate file, since it's getting to be quite
long.
- Remove microgenerator blocks, since we don't have a
microgenerated-client yet (we can re-add once we do).

Change-Id: Iaa3ccb35224bd520dfd0e0c55408962ca4f17cf6
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/45570
Reviewed-by: Noah Dietz <ndietz@google.com>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
diff --git a/gapics.sh b/gapics.sh
new file mode 100644
index 0000000..749fae1
--- /dev/null
+++ b/gapics.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file just exists to list gapics and manuals.
+
+APIS=(
+google/api/expr/artman_cel.yaml
+google/iam/artman_iam_admin.yaml
+google/cloud/asset/artman_cloudasset_v1beta1.yaml
+google/cloud/asset/artman_cloudasset_v1p2beta1.yaml
+google/cloud/asset/artman_cloudasset_v1.yaml
+google/iam/credentials/artman_iamcredentials_v1.yaml
+google/cloud/automl/artman_automl_v1beta1.yaml
+google/cloud/bigquery/datatransfer/artman_bigquerydatatransfer.yaml
+google/cloud/bigquery/storage/artman_bigquerystorage_v1beta1.yaml
+google/cloud/dataproc/artman_dataproc_v1.yaml
+google/cloud/dataproc/artman_dataproc_v1beta2.yaml
+google/cloud/dialogflow/artman_dialogflow_v2.yaml
+google/cloud/iot/artman_cloudiot.yaml
+google/cloud/irm/artman_irm_v1alpha2.yaml
+google/cloud/kms/artman_cloudkms.yaml
+google/cloud/language/artman_language_v1.yaml
+google/cloud/language/artman_language_v1beta2.yaml
+google/cloud/oslogin/artman_oslogin_v1.yaml
+google/cloud/oslogin/artman_oslogin_v1beta.yaml
+google/cloud/phishingprotection/artman_phishingprotection_v1beta1.yaml
+google/cloud/recaptchaenterprise/artman_recaptchaenterprise_v1beta1.yaml
+google/cloud/redis/artman_redis_v1beta1.yaml
+google/cloud/redis/artman_redis_v1.yaml
+google/cloud/scheduler/artman_cloudscheduler_v1beta1.yaml
+google/cloud/scheduler/artman_cloudscheduler_v1.yaml
+google/cloud/securitycenter/artman_securitycenter_v1beta1.yaml
+google/cloud/securitycenter/artman_securitycenter_v1.yaml
+google/cloud/speech/artman_speech_v1.yaml
+google/cloud/speech/artman_speech_v1p1beta1.yaml
+google/cloud/talent/artman_talent_v4beta1.yaml
+google/cloud/tasks/artman_cloudtasks_v2beta2.yaml
+google/cloud/tasks/artman_cloudtasks_v2beta3.yaml
+google/cloud/tasks/artman_cloudtasks_v2.yaml
+google/cloud/texttospeech/artman_texttospeech_v1.yaml
+google/cloud/videointelligence/artman_videointelligence_v1.yaml
+google/cloud/videointelligence/artman_videointelligence_v1beta1.yaml
+google/cloud/videointelligence/artman_videointelligence_v1beta2.yaml
+google/cloud/vision/artman_vision_v1.yaml
+google/cloud/vision/artman_vision_v1p1beta1.yaml
+google/cloud/webrisk/artman_webrisk_v1beta1.yaml
+google/devtools/artman_clouddebugger.yaml
+google/devtools/clouderrorreporting/artman_errorreporting.yaml
+google/devtools/cloudtrace/artman_cloudtrace_v1.yaml
+google/devtools/cloudtrace/artman_cloudtrace_v2.yaml
+
+# The containeranalysis team wants manual changes in the auto-generated gapic.
+# So, let's remove it from the autogen list until we're ready to spend energy
+# generating and manually updating it.
+# google/devtools/containeranalysis/artman_containeranalysis_v1.yaml
+
+google/devtools/containeranalysis/artman_containeranalysis_v1beta1.yaml
+google/firestore/artman_firestore.yaml
+google/firestore/admin/artman_firestore_v1.yaml
+
+# See containeranalysis note above.
+# grafeas/artman_grafeas_v1.yaml
+
+google/logging/artman_logging.yaml
+google/longrunning/artman_longrunning.yaml
+google/monitoring/artman_monitoring.yaml
+google/privacy/dlp/artman_dlp_v2.yaml
+google/pubsub/artman_pubsub.yaml
+google/spanner/admin/database/artman_spanner_admin_database.yaml
+google/spanner/admin/instance/artman_spanner_admin_instance.yaml
+google/spanner/artman_spanner.yaml
+)
+
+HAS_MANUAL=(
+errorreporting/apiv1beta1
+firestore/apiv1beta1
+firestore/apiv1
+logging/apiv2
+longrunning/autogen
+pubsub/apiv1
+spanner/apiv1
+trace/apiv1
+)
\ No newline at end of file
diff --git a/regen-gapic.sh b/regen-gapic.sh
index f60f1be..ded1234 100755
--- a/regen-gapic.sh
+++ b/regen-gapic.sh
@@ -14,125 +14,20 @@
 # limitations under the License.
 
 # This script generates all GAPIC clients in this repo.
-# One-time setup:
-#   cd path/to/googleapis # https://github.com/googleapis/googleapis
-#   virtualenv env
-#   . env/bin/activate
-#   pip install googleapis-artman
-#   deactivate
-#
-# Regenerate:
-#   cd path/to/googleapis
-#   . env/bin/activate
-#   $GOPATH/src/cloud.google.com/go/regen-gapic.sh
-#   deactivate
-#
-# Being in googleapis directory is important;
-# that's where we find YAML files and where artman puts the "artman-genfiles" directory.
-#
-# NOTE: This script does not generate the "raw" gRPC client found in google.golang.org/genproto.
-# To do that, use the regen.sh script in the genproto repo instead.
+# See instructions at go/yoshi-site.
 
 set -ex
 
-APIS=(
-google/api/expr/artman_cel.yaml
-google/iam/artman_iam_admin.yaml
-google/cloud/asset/artman_cloudasset_v1beta1.yaml
-google/cloud/asset/artman_cloudasset_v1p2beta1.yaml
-google/cloud/asset/artman_cloudasset_v1.yaml
-google/iam/credentials/artman_iamcredentials_v1.yaml
-google/cloud/automl/artman_automl_v1beta1.yaml
-google/cloud/bigquery/datatransfer/artman_bigquerydatatransfer.yaml
-google/cloud/bigquery/storage/artman_bigquerystorage_v1beta1.yaml
-google/cloud/dataproc/artman_dataproc_v1.yaml
-google/cloud/dataproc/artman_dataproc_v1beta2.yaml
-google/cloud/dialogflow/artman_dialogflow_v2.yaml
-google/cloud/iot/artman_cloudiot.yaml
-google/cloud/irm/artman_irm_v1alpha2.yaml
-google/cloud/kms/artman_cloudkms.yaml
-google/cloud/language/artman_language_v1.yaml
-google/cloud/language/artman_language_v1beta2.yaml
-google/cloud/oslogin/artman_oslogin_v1.yaml
-google/cloud/oslogin/artman_oslogin_v1beta.yaml
-google/cloud/phishingprotection/artman_phishingprotection_v1beta1.yaml
-google/cloud/recaptchaenterprise/artman_recaptchaenterprise_v1beta1.yaml
-google/cloud/redis/artman_redis_v1beta1.yaml
-google/cloud/redis/artman_redis_v1.yaml
-google/cloud/scheduler/artman_cloudscheduler_v1beta1.yaml
-google/cloud/scheduler/artman_cloudscheduler_v1.yaml
-google/cloud/securitycenter/artman_securitycenter_v1beta1.yaml
-google/cloud/securitycenter/artman_securitycenter_v1.yaml
-google/cloud/speech/artman_speech_v1.yaml
-google/cloud/speech/artman_speech_v1p1beta1.yaml
-google/cloud/talent/artman_talent_v4beta1.yaml
-google/cloud/tasks/artman_cloudtasks_v2beta2.yaml
-google/cloud/tasks/artman_cloudtasks_v2beta3.yaml
-google/cloud/tasks/artman_cloudtasks_v2.yaml
-google/cloud/texttospeech/artman_texttospeech_v1.yaml
-google/cloud/videointelligence/artman_videointelligence_v1.yaml
-google/cloud/videointelligence/artman_videointelligence_v1beta1.yaml
-google/cloud/videointelligence/artman_videointelligence_v1beta2.yaml
-google/cloud/vision/artman_vision_v1.yaml
-google/cloud/vision/artman_vision_v1p1beta1.yaml
-google/cloud/webrisk/artman_webrisk_v1beta1.yaml
-google/devtools/artman_clouddebugger.yaml
-google/devtools/clouderrorreporting/artman_errorreporting.yaml
-google/devtools/cloudtrace/artman_cloudtrace_v1.yaml
-google/devtools/cloudtrace/artman_cloudtrace_v2.yaml
-
-# The containeranalysis team wants manual changes in the auto-generated gapic.
-# So, let's remove it from the autogen list until we're ready to spend energy
-# generating and manually updating it.
-# google/devtools/containeranalysis/artman_containeranalysis_v1.yaml
-
-google/devtools/containeranalysis/artman_containeranalysis_v1beta1.yaml
-google/firestore/artman_firestore.yaml
-google/firestore/admin/artman_firestore_v1.yaml
-
-# See containeranalysis note above.
-# grafeas/artman_grafeas_v1.yaml
-
-google/logging/artman_logging.yaml
-google/longrunning/artman_longrunning.yaml
-google/monitoring/artman_monitoring.yaml
-google/privacy/dlp/artman_dlp_v2.yaml
-google/pubsub/artman_pubsub.yaml
-google/spanner/admin/database/artman_spanner_admin_database.yaml
-google/spanner/admin/instance/artman_spanner_admin_instance.yaml
-google/spanner/artman_spanner.yaml
-)
+GOCLOUD_DIR="$(dirname "$0")"
+source "$GOCLOUD_DIR/gapics.sh"
 
 for api in "${APIS[@]}"; do
   rm -rf artman-genfiles/*
   artman --config "$api" generate go_gapic
-  cp -r artman-genfiles/gapi-*/cloud.google.com/go/* $GOPATH/src/cloud.google.com/go/
+  cp -r artman-genfiles/gapi-*/cloud.google.com/go/* $GOCLOUD_DIR
 done
 
-microgen() {
-  input=$1
-  options="${@:2}"
-
-  # see https://github.com/googleapis/gapic-generator-go/blob/master/README.md#docker-wrapper for details
-  docker run \
-    --mount type=bind,source=$(pwd),destination=/conf,readonly \
-    --mount type=bind,source=$(pwd)/$input,destination=/in/$input,readonly \
-    --mount type=bind,source=$GOPATH/src,destination=/out \
-    --rm \
-    gcr.io/gapic-images/gapic-generator-go:latest \
-    $options
-}
-
-MICROAPIS=(
-  # input proto directory  |  gapic-generator-go flag  | gapic-service-config flag
-  # "google/cloud/language/v1 --go-gapic-package cloud.google.com/go/language/apiv1;language --gapic-service-config google/cloud/language/language_v1.yaml"
-)
-
-for api in "${MICROAPIS[@]}"; do
-  microgen $api
-done
-
-pushd $GOPATH/src/cloud.google.com/go/
+pushd $GOCLOUD_DIR
   gofmt -s -d -l -w . && goimports -w .
 
   # NOTE(pongad): `sed -i` doesn't work on Macs, because -i option needs an argument.
@@ -145,19 +40,8 @@
   done
 popd
 
-
-HASMANUAL=(
-errorreporting/apiv1beta1
-firestore/apiv1beta1
-firestore/apiv1
-logging/apiv2
-longrunning/autogen
-pubsub/apiv1
-spanner/apiv1
-trace/apiv1
-)
-for dir in "${HASMANUAL[@]}"; do
-	find "$GOPATH/src/cloud.google.com/go/$dir" -name '*.go' -exec sed -i.backup -e 's/setGoogleClientInfo/SetGoogleClientInfo/g' '{}' '+'
+for dir in "${HAS_MANUAL[@]}"; do
+	find "$GOCLOUD_DIR/$dir" -name '*.go' -exec sed -i.backup -e 's/setGoogleClientInfo/SetGoogleClientInfo/g' '{}' '+'
 done
 
-find $GOPATH/src/cloud.google.com/go/ -name '*.backup' -delete
+find $GOCLOUD_DIR -name '*.backup' -delete