(List (= scope= flags=0 words=[] bindings=[('storage', {[LIT_CHARS gcs]})]) (Com {[LIT_CHARS read]} {[LIT_CHARS -p]} {[DQ [LIT_CHARS "Backup Storage (file, gcs) [gcs]: "]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub REPLY]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('storage', {[DQ [VarSub REPLY]]})]) ) (Case to_match={[DQ [VarSub storage]]}, pat_word_list=[[{[LIT_CHARS gcs]}], [{[LIT_CHARS file]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('project', {[ComSub (Pipeline (Com {[LIT_CHARS gcloud]} {[LIT_CHARS config]} {[LIT_CHARS list]} {[LIT_CHARS project]}) (Com {[LIT_CHARS grep]} {[SQ ]}) )]})]) (Com {[LIT_CHARS read]} {[LIT_CHARS -p]} {[DQ [LIT_CHARS "Google Developers Console Project ["][VarSub project][LIT_CHARS "]: "]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub REPLY]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('project', {[DQ [VarSub REPLY]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub project]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Project name must not be empty."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS read]} {[LIT_CHARS -p]} {[DQ [LIT_CHARS "Google Cloud Storage bucket for Vitess backups: "]]} {[LIT_CHARS bucket]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub bucket]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Bucket name must not be empty."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NOTE: If you haven't already created this bucket, you can do so by running:"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " gsutil mb gs://"][VarSub bucket]]} ) (Com {[LIT_CHARS echo]} ) (= scope= flags=0 words=[] bindings=[('backup_flags', {[ComSub (Com {[LIT_CHARS echo]} {[LIT_CHARS -backup_storage_implementation]} {[LIT_CHARS gcs]} {[LIT_CHARS -gcs_backup_storage_project]} {[DQ [LIT_CHARS "'"][VarSub project][LIT_CHARS "'"]]} {[LIT_CHARS -gcs_backup_storage_bucket]} {[DQ [LIT_CHARS "'"][VarSub bucket][LIT_CHARS "'"]]})]})]) ) (List (Com {[LIT_CHARS read]} {[LIT_CHARS -p]} {[DQ [LIT_CHARS "Root directory for backups (usually an NFS mount): "]]} {[LIT_CHARS file_root]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub file_root]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Root directory must not be empty."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NOTE: You must add your NFS mount to the vtctld-controller-template"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " and vttablet-pod-template as described in the Kubernetes docs:"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " http://kubernetes.io/v1.0/docs/user-guide/volumes.html#nfs"]]} ) (Com {[LIT_CHARS echo]} ) (= scope= flags=0 words=[] bindings=[('backup_flags', {[ComSub (Com {[LIT_CHARS echo]} {[LIT_CHARS -backup_storage_implementation]} {[LIT_CHARS file]} {[LIT_CHARS -file_backup_storage_root]} {[DQ [LIT_CHARS "'"][VarSub file_root][LIT_CHARS "'"]]})]})]) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Unsupported backup storage implementation: "][VarSub storage]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Saving config.sh..."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "backup_flags="][\ LIT_ESCAPED_CHAR "\\\""][VarSub backup_flags][\ LIT_ESCAPED_CHAR "\\\""]]} < (FilenameRedirectNode filename={[LIT_CHARS config.sh]} "> 1), > ) )