You've already forked db-wait
							
							Compare commits
	
		
			214 Commits
		
	
	
		
			v0.1.0
			...
			328b399bf6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						328b399bf6
	
				 | 
					
					
						|||
| 
						
						
							
						
						3959a5abfb
	
				 | 
					
					
						|||
| 
						
						
							
						
						47fdee3e20
	
				 | 
					
					
						|||
| 
						
						
							
						
						81610dc20d
	
				 | 
					
					
						|||
| 
						
						
							
						
						bdf8f98b9a
	
				 | 
					
					
						|||
| 
						
						
							
						
						81c80aaf05
	
				 | 
					
					
						|||
| 
						
						
							
						
						2faae1a8b3
	
				 | 
					
					
						|||
| 
						
						
							
						
						f76e73a1fd
	
				 | 
					
					
						|||
| 
						
						
							
						
						4c7ce56f1b
	
				 | 
					
					
						|||
| 
						
						
							
						
						c9065425b1
	
				 | 
					
					
						|||
| 
						
						
							
						
						165d14f8ad
	
				 | 
					
					
						|||
| 
						
						
							
						
						18010829b7
	
				 | 
					
					
						|||
| 7b1c08ae02 | |||
| 8b4310224b | |||
| 
						
						
							
						
						406b61a521
	
				 | 
					
					
						|||
| 
						
						
							
						
						7dc3b2909f
	
				 | 
					
					
						|||
| 
						
						
							
						
						8775b53315
	
				 | 
					
					
						|||
| 
						
						
							
						
						30f4774c54
	
				 | 
					
					
						|||
| 
						
						
							
						
						d82fdecdd1
	
				 | 
					
					
						|||
| 
						
						
							
						
						56e846e33a
	
				 | 
					
					
						|||
| 
						
						
							
						
						fe937d178e
	
				 | 
					
					
						|||
| 
						
						
							
						
						ef591b8418
	
				 | 
					
					
						|||
| 
						
						
							
						
						ef2d5bf459
	
				 | 
					
					
						|||
| 
						
						
							
						
						43ede29989
	
				 | 
					
					
						|||
| 
						
						
							
						
						35a1047564
	
				 | 
					
					
						|||
| 
						
						
							
						
						728700f9c3
	
				 | 
					
					
						|||
| 
						
						
							
						
						66deb75d74
	
				 | 
					
					
						|||
| 
						
						
							
						
						ef81712058
	
				 | 
					
					
						|||
| d74b9af9f4 | |||
| 
						
						
							
						
						27c68a823e
	
				 | 
					
					
						|||
| 
						
						
							
						
						ca65a15690
	
				 | 
					
					
						|||
| 
						
						
							
						
						61aea245f8
	
				 | 
					
					
						|||
| 
						
						
							
						
						5fa67707fb
	
				 | 
					
					
						|||
| 
						
						
							
						
						2f1f629994
	
				 | 
					
					
						|||
| 
						
						
							
						
						9d7a5e9458
	
				 | 
					
					
						|||
| 
						
						
							
						
						51150d440c
	
				 | 
					
					
						|||
| 
						
						
							
						
						e93993169f
	
				 | 
					
					
						|||
| 
						
						
							
						
						8d8a74f5f0
	
				 | 
					
					
						|||
| 46c1b84d68 | |||
| 
						
						
							
						
						bc6c51ab59
	
				 | 
					
					
						|||
| 
						
						
							
						
						ad2d363c26
	
				 | 
					
					
						|||
| 
						
						
							
						
						64c94ab42e
	
				 | 
					
					
						|||
| 
						
						
							
						
						b1715da247
	
				 | 
					
					
						|||
| 
						
						
							
						
						d6b0f5bf2d
	
				 | 
					
					
						|||
| 
						
						
							
						
						d5ae462430
	
				 | 
					
					
						|||
| 
						
						
							
						
						78c189b58d
	
				 | 
					
					
						|||
| 
						
						
							
						
						2fc18f62a2
	
				 | 
					
					
						|||
| 
						
						
							
						
						e4b54aa3ee
	
				 | 
					
					
						|||
| 99dd463078 | |||
| 
						
						
							
						
						becaff9f47
	
				 | 
					
					
						|||
| 
						
						
							
						
						226442759d
	
				 | 
					
					
						|||
| 
						
						
							
						
						bd48dafb02
	
				 | 
					
					
						|||
| 
						
						
							
						
						4231ec2bb3
	
				 | 
					
					
						|||
| 
						
						
							
						
						3aa719b8c3
	
				 | 
					
					
						|||
| 
						
						
							
						
						95abe3c1c8
	
				 | 
					
					
						|||
| 
						
						
							
						
						fa23737a4a
	
				 | 
					
					
						|||
| 
						
						
							
						
						3df2227c25
	
				 | 
					
					
						|||
| 
						
						
							
						
						c646a99fb4
	
				 | 
					
					
						|||
| 
						
						
							
						
						f4e9108c56
	
				 | 
					
					
						|||
| 
						
						
							
						
						eb15ba98a0
	
				 | 
					
					
						|||
| 
						
						
							
						
						665dc1056e
	
				 | 
					
					
						|||
| 
						
						
							
						
						3fb934fffb
	
				 | 
					
					
						|||
| 
						
						
							
						
						2a5b2504c1
	
				 | 
					
					
						|||
| 
						
						
							
						
						f6fe9bf794
	
				 | 
					
					
						|||
| 
						
						
							
						
						c6dea704f6
	
				 | 
					
					
						|||
| 
						
						
							
						
						783e33e196
	
				 | 
					
					
						|||
| 
						
						
							
						
						8b381816be
	
				 | 
					
					
						|||
| 
						
						
							
						
						1e62144c87
	
				 | 
					
					
						|||
| 0dd328c94a | |||
| 04a34d2268 | |||
| 107864c2ee | |||
| 2fa1b1d3ae | |||
| 1af23eb8a6 | |||
| da4fc30ade | |||
| cecc7bf5dd | |||
| 69e0c9dc07 | |||
| 575f170c86 | |||
| 10e43a77ec | |||
| f0e3bcc7b4 | |||
| 5f318070e2 | |||
| 505015c1cb | |||
| c92afd95d2 | |||
| c77dd52044 | |||
| 780ee6cd01 | |||
| e3d03ac8dc | |||
| 3480f41d8f | |||
| 86aed02ab3 | |||
| 
						
						
							
						
						e284995e96
	
				 | 
					
					
						|||
| 
						
						
							
						
						1b8f079506
	
				 | 
					
					
						|||
| 
						
						
							
						
						5e1c365205
	
				 | 
					
					
						|||
| 
						
						
							
						
						98773b9fab
	
				 | 
					
					
						|||
| edeb43736a | |||
| 3f13d23ff1 | |||
| 1e5c78d681 | |||
| 4e8c2197d4 | |||
| 0ba129fc5f | |||
| 261bcd30fa | |||
| 5776003a1b | |||
| 
						
						
							
						
						0d6eefc348
	
				 | 
					
					
						|||
| d16526a51c | |||
| c059ad7d27 | |||
| e99de072fa | |||
| 11a56fbcbd | |||
| d1f17974a0 | |||
| 2ed8a81ccc | |||
| 
						
						
							
						
						1a7bc4188b
	
				 | 
					
					
						|||
| 
						
						
							
						
						955abb6572
	
				 | 
					
					
						|||
| 4b8d12be27 | |||
| afe11480fb | |||
| c444ed207d | |||
| 1d54ca6181 | |||
| 4958e39c3f | |||
| c52cf7b942 | |||
| dece859bf1 | |||
| d4e12e095d | |||
| 58a91d2798 | |||
| 5b83830dde | |||
| 0bdd135e10 | |||
| 24c0c33e79 | |||
| a5b4d7558c | |||
| b9fa25650f | |||
| 
						
						
							
						
						6cea9d5120
	
				 | 
					
					
						|||
| 
						
						
							
						
						908fe4de5e
	
				 | 
					
					
						|||
| 
						
						
							
						
						9ed2b834f1
	
				 | 
					
					
						|||
| 61703b5a88 | |||
| 15f254b24c | |||
| 4d7c4a0466 | |||
| 53ef3e30e9 | |||
| 32faab65c8 | |||
| 2d0b110958 | |||
| e0a7a78e34 | |||
| 8884dfd7ec | |||
| 9bb3317d11 | |||
| a187b2ea6a | |||
| 58b98b5968 | |||
| ab68751ff0 | |||
| 4cf3d3ff1c | |||
| 0cd336bf1f | |||
| 5306ba35cc | |||
| c816d8d958 | |||
| 3bfbf8ef1d | |||
| 24aae57b95 | |||
| 87df8da555 | |||
| 6a8857c757 | |||
| 397462f70d | |||
| 7839de9208 | |||
| 86c386f488 | |||
| e2ca6e315c | |||
| 41f95c0588 | |||
| fd38a919c3 | |||
| 826a971a79 | |||
| b333f81101 | |||
| 
						
						
							
						
						d5093855f8
	
				 | 
					
					
						|||
| 
						
						
							
						
						a5a64aa5f0
	
				 | 
					
					
						|||
| 
						
						
							
						
						d59516d120
	
				 | 
					
					
						|||
| 
						
						
							
						
						0dbe303c15
	
				 | 
					
					
						|||
| 
						
						
							
						
						fd5aa6793b
	
				 | 
					
					
						|||
| 0d8c7602e7 | |||
| dad4bf0feb | |||
| 342613d738 | |||
| 5995d600e6 | |||
| 
						
						
							
						
						c0d8dfb638
	
				 | 
					
					
						|||
| 7d6291d1d6 | |||
| 0e89d63531 | |||
| d060e96e7b | |||
| 3c84c1c478 | |||
| dcca6d59f9 | |||
| 826d01cc07 | |||
| 58c5b7d793 | |||
| c950912f3c | |||
| 64f0363ed1 | |||
| 20c9492c0d | |||
| 
						
						
							
						
						a8e4d8c0b1
	
				 | 
					
					
						|||
| cd7c18425f | |||
| fe45f731c0 | |||
| 
						
						
							
						
						ed296a81fa
	
				 | 
					
					
						|||
| 718f03df4d | |||
| 157b54d446 | |||
| 608e57318d | |||
| 6f996669c8 | |||
| c0bdb42e5f | |||
| 0940836789 | |||
| 04027482ee | |||
| 3dd3bb0bf3 | |||
| eaa444f837 | |||
| e9ebe34e62 | |||
| 9a6869ca56 | |||
| 17880e23dd | |||
| 
						
						
							
						
						ac723e84c3
	
				 | 
					
					
						|||
| 379e9e794d | |||
| 1ffd1bba62 | |||
| 
						
						
							
						
						256d28c12f
	
				 | 
					
					
						|||
| 
						
						
							
						
						899275e4f6
	
				 | 
					
					
						|||
| 74adce99fb | |||
| 
						
						
							
						
						56fdccc09f
	
				 | 
					
					
						|||
| 7697b6662c | |||
| 4ef1587fe6 | |||
| e96001f2a0 | |||
| 68c07b6a81 | |||
| 
						
						
							
						
						e44cbaeed3
	
				 | 
					
					
						|||
| 
						
						
							
						
						655c5b0329
	
				 | 
					
					
						|||
| 
						
						
							
						
						62df6f7955
	
				 | 
					
					
						|||
| 1e3a25c202 | |||
| 
						
						
							
						
						f4740434c6
	
				 | 
					
					
						|||
| 
						
						
							
						
						47d8e2222a
	
				 | 
					
					
						|||
| 
						
						
							
						
						a7a8703d7f
	
				 | 
					
					
						|||
| 
						
						
							
						
						8dd6bc21fb
	
				 | 
					
					
						|||
| 6c6bfd8c6d | |||
| 
						
						
							
						
						d53bf5fafe
	
				 | 
					
					
						|||
| 
						
						
							
						
						9b37cc1966
	
				 | 
					
					
						|||
| 
						
						
							
						
						7a0eaa6764
	
				 | 
					
					
						|||
| 
						
						
							
						
						760c55f48e
	
				 | 
					
					
						|||
| 
						
						
							
						
						081f147657
	
				 | 
					
					
						|||
| 
						
						
							
						
						7afd418bb8
	
				 | 
					
					
						
@@ -1 +0,0 @@
 | 
				
			|||||||
db-wait
 | 
					 | 
				
			||||||
							
								
								
									
										244
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										244
									
								
								.drone.yml
									
									
									
									
									
								
							@@ -1,244 +0,0 @@
 | 
				
			|||||||
---
 | 
					 | 
				
			||||||
kind: pipeline
 | 
					 | 
				
			||||||
type: kubernetes
 | 
					 | 
				
			||||||
name: linter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
platform:
 | 
					 | 
				
			||||||
  os: linux
 | 
					 | 
				
			||||||
  arch: amd64
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
- name: markdown lint
 | 
					 | 
				
			||||||
  commands:
 | 
					 | 
				
			||||||
  - markdownlint *.md
 | 
					 | 
				
			||||||
  image: docker.io/volkerraschek/markdownlint:0.28.1
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    limits:
 | 
					 | 
				
			||||||
      cpu: 50
 | 
					 | 
				
			||||||
      memory: 50M
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: email-notification
 | 
					 | 
				
			||||||
  environment:
 | 
					 | 
				
			||||||
    PLUGIN_HOST:
 | 
					 | 
				
			||||||
      from_secret: smtp_host
 | 
					 | 
				
			||||||
    PLUGIN_USERNAME:
 | 
					 | 
				
			||||||
      from_secret: smtp_username
 | 
					 | 
				
			||||||
    PLUGIN_PASSWORD:
 | 
					 | 
				
			||||||
      from_secret: smtp_password
 | 
					 | 
				
			||||||
    PLUGIN_FROM:
 | 
					 | 
				
			||||||
      from_secret: smtp_mail_address
 | 
					 | 
				
			||||||
  image: docker.io/drillster/drone-email:latest
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    limits:
 | 
					 | 
				
			||||||
      cpu: 50
 | 
					 | 
				
			||||||
      memory: 25M
 | 
					 | 
				
			||||||
  when:
 | 
					 | 
				
			||||||
    status:
 | 
					 | 
				
			||||||
    - changed
 | 
					 | 
				
			||||||
    - failure
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
trigger:
 | 
					 | 
				
			||||||
  event:
 | 
					 | 
				
			||||||
    exclude:
 | 
					 | 
				
			||||||
    - tag
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: pipeline
 | 
					 | 
				
			||||||
type: docker
 | 
					 | 
				
			||||||
name: latest-amd64
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
platform:
 | 
					 | 
				
			||||||
  os: linux
 | 
					 | 
				
			||||||
  arch: amd64
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
- name: build
 | 
					 | 
				
			||||||
  image: plugins/docker
 | 
					 | 
				
			||||||
  settings:
 | 
					 | 
				
			||||||
    dockerfile: Dockerfile
 | 
					 | 
				
			||||||
    auto_tag: false
 | 
					 | 
				
			||||||
    tags: latest-amd64
 | 
					 | 
				
			||||||
    repo: volkerraschek/db-wait
 | 
					 | 
				
			||||||
    username:
 | 
					 | 
				
			||||||
      from_secret: container_image_registry_user
 | 
					 | 
				
			||||||
    password:
 | 
					 | 
				
			||||||
      from_secret: container_image_registry_password
 | 
					 | 
				
			||||||
  volumes:
 | 
					 | 
				
			||||||
  - name: docker_socket
 | 
					 | 
				
			||||||
    path: /var/run/docker.sock
 | 
					 | 
				
			||||||
  when:
 | 
					 | 
				
			||||||
    branch:
 | 
					 | 
				
			||||||
    - master
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: notify
 | 
					 | 
				
			||||||
  image: drillster/drone-email
 | 
					 | 
				
			||||||
  environment:
 | 
					 | 
				
			||||||
    PLUGIN_HOST:
 | 
					 | 
				
			||||||
      from_secret: smtp_host
 | 
					 | 
				
			||||||
    PLUGIN_USERNAME:
 | 
					 | 
				
			||||||
      from_secret: smtp_username
 | 
					 | 
				
			||||||
    PLUGIN_PASSWORD:
 | 
					 | 
				
			||||||
      from_secret: smtp_password
 | 
					 | 
				
			||||||
    PLUGIN_FROM:
 | 
					 | 
				
			||||||
      from_secret: smtp_mail_address
 | 
					 | 
				
			||||||
  when:
 | 
					 | 
				
			||||||
    status:
 | 
					 | 
				
			||||||
    - changed
 | 
					 | 
				
			||||||
    - failure
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumes:
 | 
					 | 
				
			||||||
- name: docker_socket
 | 
					 | 
				
			||||||
  host:
 | 
					 | 
				
			||||||
    path: /var/run/docker.sock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
trigger:
 | 
					 | 
				
			||||||
  event:
 | 
					 | 
				
			||||||
    exclude:
 | 
					 | 
				
			||||||
    - tag
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: pipeline
 | 
					 | 
				
			||||||
type: docker
 | 
					 | 
				
			||||||
name: latest-armv7
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
platform:
 | 
					 | 
				
			||||||
  os: linux
 | 
					 | 
				
			||||||
  arch: arm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
- name: build
 | 
					 | 
				
			||||||
  image: plugins/docker
 | 
					 | 
				
			||||||
  settings:
 | 
					 | 
				
			||||||
    dockerfile: Dockerfile
 | 
					 | 
				
			||||||
    auto_tag: false
 | 
					 | 
				
			||||||
    tags: latest-armv7
 | 
					 | 
				
			||||||
    repo: volkerraschek/db-wait
 | 
					 | 
				
			||||||
    username:
 | 
					 | 
				
			||||||
      from_secret: container_image_registry_user
 | 
					 | 
				
			||||||
    password:
 | 
					 | 
				
			||||||
      from_secret: container_image_registry_password
 | 
					 | 
				
			||||||
  when:
 | 
					 | 
				
			||||||
    branch:
 | 
					 | 
				
			||||||
    - master
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: notify
 | 
					 | 
				
			||||||
  image: drillster/drone-email
 | 
					 | 
				
			||||||
  environment:
 | 
					 | 
				
			||||||
    PLUGIN_HOST:
 | 
					 | 
				
			||||||
      from_secret: smtp_host
 | 
					 | 
				
			||||||
    PLUGIN_USERNAME:
 | 
					 | 
				
			||||||
      from_secret: smtp_username
 | 
					 | 
				
			||||||
    PLUGIN_PASSWORD:
 | 
					 | 
				
			||||||
      from_secret: smtp_password
 | 
					 | 
				
			||||||
    PLUGIN_FROM:
 | 
					 | 
				
			||||||
      from_secret: smtp_mail_address
 | 
					 | 
				
			||||||
  volumes:
 | 
					 | 
				
			||||||
  - name: docker_socket
 | 
					 | 
				
			||||||
    path: /var/run/docker.sock
 | 
					 | 
				
			||||||
  when:
 | 
					 | 
				
			||||||
    status:
 | 
					 | 
				
			||||||
    - changed
 | 
					 | 
				
			||||||
    - failure
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumes:
 | 
					 | 
				
			||||||
- name: docker_socket
 | 
					 | 
				
			||||||
  host:
 | 
					 | 
				
			||||||
    path: /var/run/docker.sock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
trigger:
 | 
					 | 
				
			||||||
  event:
 | 
					 | 
				
			||||||
    exclude:
 | 
					 | 
				
			||||||
    - tag
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: pipeline
 | 
					 | 
				
			||||||
type: kubernetes
 | 
					 | 
				
			||||||
name: latest-manifest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
- name: build-manifest
 | 
					 | 
				
			||||||
  image: plugins/manifest
 | 
					 | 
				
			||||||
  settings:
 | 
					 | 
				
			||||||
    auto_tag: false
 | 
					 | 
				
			||||||
    ignore_missing: true
 | 
					 | 
				
			||||||
    spec: manifest.tmpl
 | 
					 | 
				
			||||||
    username:
 | 
					 | 
				
			||||||
      from_secret: container_image_registry_user
 | 
					 | 
				
			||||||
    password:
 | 
					 | 
				
			||||||
      from_secret: container_image_registry_password
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: notify
 | 
					 | 
				
			||||||
  image: docker.io/drillster/drone-email:latest
 | 
					 | 
				
			||||||
  environment:
 | 
					 | 
				
			||||||
    PLUGIN_HOST:
 | 
					 | 
				
			||||||
      from_secret: smtp_host
 | 
					 | 
				
			||||||
    PLUGIN_USERNAME:
 | 
					 | 
				
			||||||
      from_secret: smtp_username
 | 
					 | 
				
			||||||
    PLUGIN_PASSWORD:
 | 
					 | 
				
			||||||
      from_secret: smtp_password
 | 
					 | 
				
			||||||
    PLUGIN_FROM:
 | 
					 | 
				
			||||||
      from_secret: smtp_mail_address
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    limits:
 | 
					 | 
				
			||||||
      cpu: 50
 | 
					 | 
				
			||||||
      memory: 25M
 | 
					 | 
				
			||||||
  when:
 | 
					 | 
				
			||||||
    status:
 | 
					 | 
				
			||||||
    - changed
 | 
					 | 
				
			||||||
    - failure
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
depends_on:
 | 
					 | 
				
			||||||
- latest-amd64
 | 
					 | 
				
			||||||
- latest-armv7
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
trigger:
 | 
					 | 
				
			||||||
  event:
 | 
					 | 
				
			||||||
    exclude:
 | 
					 | 
				
			||||||
    - tag
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: pipeline
 | 
					 | 
				
			||||||
type: kubernetes
 | 
					 | 
				
			||||||
name: sync
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
platform:
 | 
					 | 
				
			||||||
  os: linux
 | 
					 | 
				
			||||||
  arch: amd64
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
- name: github
 | 
					 | 
				
			||||||
  image: docker.io/appleboy/drone-git-push:latest
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    limits:
 | 
					 | 
				
			||||||
      cpu: 50
 | 
					 | 
				
			||||||
      memory: 25M
 | 
					 | 
				
			||||||
  settings:
 | 
					 | 
				
			||||||
    branch: master
 | 
					 | 
				
			||||||
    remote: ssh://git@github.com/volker-raschek/db-wait.git
 | 
					 | 
				
			||||||
    force: true
 | 
					 | 
				
			||||||
    ssh_key:
 | 
					 | 
				
			||||||
      from_secret: ssh_key
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: email-notification
 | 
					 | 
				
			||||||
  environment:
 | 
					 | 
				
			||||||
    PLUGIN_HOST:
 | 
					 | 
				
			||||||
      from_secret: smtp_host
 | 
					 | 
				
			||||||
    PLUGIN_USERNAME:
 | 
					 | 
				
			||||||
      from_secret: smtp_username
 | 
					 | 
				
			||||||
    PLUGIN_PASSWORD:
 | 
					 | 
				
			||||||
      from_secret: smtp_password
 | 
					 | 
				
			||||||
    PLUGIN_FROM:
 | 
					 | 
				
			||||||
      from_secret: smtp_mail_address
 | 
					 | 
				
			||||||
  image: docker.io/drillster/drone-email:latest
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    limits:
 | 
					 | 
				
			||||||
      cpu: 50
 | 
					 | 
				
			||||||
      memory: 25M
 | 
					 | 
				
			||||||
  when:
 | 
					 | 
				
			||||||
    status:
 | 
					 | 
				
			||||||
    - changed
 | 
					 | 
				
			||||||
    - failure
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
trigger:
 | 
					 | 
				
			||||||
  event:
 | 
					 | 
				
			||||||
  - push
 | 
					 | 
				
			||||||
  repo:
 | 
					 | 
				
			||||||
  - volker.raschek/db-wait
 | 
					 | 
				
			||||||
							
								
								
									
										24
									
								
								.gitea/workflows/golang-tests.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.gitea/workflows/golang-tests.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					name: Golang Tests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    types: [ "opened", "reopened", "synchronize" ]
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ '**' ]
 | 
				
			||||||
 | 
					    tags-ignore: [ '**' ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  unittest:
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        go: [ stable ]
 | 
				
			||||||
 | 
					        os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v4.3.0
 | 
				
			||||||
 | 
					    - uses: actions/setup-go@v5.5.0
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        go-version: ${{ matrix.go }}
 | 
				
			||||||
 | 
					    - env:
 | 
				
			||||||
 | 
					        GOPROXY: ${{ vars.GOPROXY }}
 | 
				
			||||||
 | 
					      run: make test/unit
 | 
				
			||||||
							
								
								
									
										27
									
								
								.gitea/workflows/golangci-lint.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								.gitea/workflows/golangci-lint.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					name: Golang CI lint
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    types: [ "opened", "reopened", "synchronize" ]
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ '**' ]
 | 
				
			||||||
 | 
					    tags-ignore: [ '**' ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					permissions:
 | 
				
			||||||
 | 
					  contents: read
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  golangci:
 | 
				
			||||||
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        go: [ stable ]
 | 
				
			||||||
 | 
					        os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ]
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v4.3.0
 | 
				
			||||||
 | 
					    - uses: actions/setup-go@v5.5.0
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        go-version: ${{ matrix.go }}
 | 
				
			||||||
 | 
					    - uses: golangci/golangci-lint-action@v8.0.0
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        version: v2.1
 | 
				
			||||||
							
								
								
									
										18
									
								
								.gitea/workflows/markdown-linters.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.gitea/workflows/markdown-linters.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					name: 'Lint Markdown files'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    types: [ "opened", "reopened", "synchronize" ]
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ '*' ]
 | 
				
			||||||
 | 
					    tags-ignore: [ '*' ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  markdown-lint:
 | 
				
			||||||
 | 
					    runs-on:
 | 
				
			||||||
 | 
					    - ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v4.3.0
 | 
				
			||||||
 | 
					    - uses: DavidAnson/markdownlint-cli2-action@v20.0.0
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        globs: '**/*.md'
 | 
				
			||||||
							
								
								
									
										52
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					name: Release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    tags: [ '**' ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					permissions:
 | 
				
			||||||
 | 
					  contents: write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  release:
 | 
				
			||||||
 | 
					    runs-on:
 | 
				
			||||||
 | 
					    - ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v4.3.0
 | 
				
			||||||
 | 
					    - uses: docker/setup-qemu-action@v3.6.0
 | 
				
			||||||
 | 
					    - uses: actions/setup-go@v5.5.0
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        go-version: stable
 | 
				
			||||||
 | 
					    - uses: docker/login-action@v3.5.0
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        registry: git.cryptic.systems
 | 
				
			||||||
 | 
					        username: ${{ github.repository_owner }}
 | 
				
			||||||
 | 
					        password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
 | 
				
			||||||
 | 
					    - env:
 | 
				
			||||||
 | 
					        GITEA_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
 | 
				
			||||||
 | 
					        GONOSUMDB: ${{ vars.GONOSUMDB }}
 | 
				
			||||||
 | 
					        GOPROXY: ${{ vars.GOPROXY }}
 | 
				
			||||||
 | 
					      uses: goreleaser/goreleaser-action@v6.3.0
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        version: "~> v2"
 | 
				
			||||||
 | 
					        args: release --clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sync-to-hub-docker-io:
 | 
				
			||||||
 | 
					    needs:
 | 
				
			||||||
 | 
					    - release
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - name: Copy images to docker.io
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        apt-get update --yes
 | 
				
			||||||
 | 
					        apt-get install --yes skopeo
 | 
				
			||||||
 | 
					        skopeo copy \
 | 
				
			||||||
 | 
					          --all \
 | 
				
			||||||
 | 
					          --dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \
 | 
				
			||||||
 | 
					          --dest-username ${{ secrets.DOCKER_IO_USERNAME }} \
 | 
				
			||||||
 | 
					          --src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \
 | 
				
			||||||
 | 
					          --src-username volker.raschek \
 | 
				
			||||||
 | 
					            docker://git.cryptic.systems/volker.raschek/db-wait:${TAG} \
 | 
				
			||||||
 | 
					            docker://docker.io/volkerraschek/db-wait:${TAG}
 | 
				
			||||||
							
								
								
									
										20
									
								
								.gitea/workflows/update-docker-hub-description.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.gitea/workflows/update-docker-hub-description.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					name: Update Docker Hub Description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ 'master' ]
 | 
				
			||||||
 | 
					    paths: [ 'README.md' ]
 | 
				
			||||||
 | 
					  workflow_dispatch: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  update-description-on-hub-docker-io:
 | 
				
			||||||
 | 
					    runs-on:
 | 
				
			||||||
 | 
					    - ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v4.3.0
 | 
				
			||||||
 | 
					    - uses: peter-evans/dockerhub-description@v4.0.2
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        username: ${{ secrets.DOCKER_IO_USERNAME }}
 | 
				
			||||||
 | 
					        password: ${{ secrets.DOCKER_IO_PASSWORD }}
 | 
				
			||||||
 | 
					        repository: volkerraschek/db-wait
 | 
				
			||||||
 | 
					        readme-filepath: README.md
 | 
				
			||||||
							
								
								
									
										28
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,25 +1,3 @@
 | 
				
			|||||||
**/*.iml
 | 
					db-wait
 | 
				
			||||||
**/*.idea
 | 
					coverage.txt
 | 
				
			||||||
**/target
 | 
					dist
 | 
				
			||||||
**/.project
 | 
					 | 
				
			||||||
**/.settings
 | 
					 | 
				
			||||||
**/.classpath
 | 
					 | 
				
			||||||
**/npm-debug.log
 | 
					 | 
				
			||||||
**/node/*
 | 
					 | 
				
			||||||
**/nb-configuration.xml
 | 
					 | 
				
			||||||
**/*.war
 | 
					 | 
				
			||||||
**/*.class
 | 
					 | 
				
			||||||
**/*.DS_Store
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
**/.vscode
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.repo
 | 
					 | 
				
			||||||
**/pom.xml.releaseBackup
 | 
					 | 
				
			||||||
**/release.properties
 | 
					 | 
				
			||||||
**/bindata.go
 | 
					 | 
				
			||||||
**/t1k.rpm
 | 
					 | 
				
			||||||
**/orbis-u-t1k.tar.gz
 | 
					 | 
				
			||||||
**/container.log
 | 
					 | 
				
			||||||
**/.env
 | 
					 | 
				
			||||||
**/coverage*
 | 
					 | 
				
			||||||
db-wait*
 | 
					 | 
				
			||||||
@@ -1,29 +0,0 @@
 | 
				
			|||||||
run:
 | 
					 | 
				
			||||||
  skip-dirs:
 | 
					 | 
				
			||||||
  - it
 | 
					 | 
				
			||||||
  timeout: 10m
 | 
					 | 
				
			||||||
  tests: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
linters:
 | 
					 | 
				
			||||||
  disable-all: true
 | 
					 | 
				
			||||||
  enable:
 | 
					 | 
				
			||||||
  # Default
 | 
					 | 
				
			||||||
  - deadcode
 | 
					 | 
				
			||||||
  - errcheck
 | 
					 | 
				
			||||||
  - gosimple
 | 
					 | 
				
			||||||
  - govet
 | 
					 | 
				
			||||||
  - ineffassign
 | 
					 | 
				
			||||||
  - staticcheck
 | 
					 | 
				
			||||||
  - structcheck
 | 
					 | 
				
			||||||
  - typecheck
 | 
					 | 
				
			||||||
  - unused
 | 
					 | 
				
			||||||
  - varcheck
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Additionally linters
 | 
					 | 
				
			||||||
  - bodyclose
 | 
					 | 
				
			||||||
  - misspell
 | 
					 | 
				
			||||||
  - nilerr
 | 
					 | 
				
			||||||
  - rowserrcheck
 | 
					 | 
				
			||||||
  - sqlclosecheck
 | 
					 | 
				
			||||||
  - unparam
 | 
					 | 
				
			||||||
  - whitespace
 | 
					 | 
				
			||||||
							
								
								
									
										175
									
								
								.goreleaser.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								.goreleaser.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,175 @@
 | 
				
			|||||||
 | 
					project_name: db-wait
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					archives:
 | 
				
			||||||
 | 
					- formats: [ "tar.xz" ]
 | 
				
			||||||
 | 
					  files:
 | 
				
			||||||
 | 
					  - README.md
 | 
				
			||||||
 | 
					  - LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					before:
 | 
				
			||||||
 | 
					  hooks:
 | 
				
			||||||
 | 
					  - go mod tidy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					builds:
 | 
				
			||||||
 | 
					- main: main.go
 | 
				
			||||||
 | 
					  binary: >-
 | 
				
			||||||
 | 
					    {{ .ProjectName }}-
 | 
				
			||||||
 | 
					    {{- .Version }}-
 | 
				
			||||||
 | 
					    {{- .Os }}-
 | 
				
			||||||
 | 
					    {{- if eq .Arch "amd64" }}amd64
 | 
				
			||||||
 | 
					    {{- else if eq .Arch "amd64_v1" }}amd64
 | 
				
			||||||
 | 
					    {{- else }}{{ .Arch }}{{ end }}
 | 
				
			||||||
 | 
					    {{- if .Arm }}-{{ .Arm }}{{ end }}
 | 
				
			||||||
 | 
					  env:
 | 
				
			||||||
 | 
					  - CGO_ENABLED=0
 | 
				
			||||||
 | 
					  - GONOSUMDB={{ .Env.GONOSUMDB }}
 | 
				
			||||||
 | 
					  - GOPROXY={{ .Env.GOPROXY }}
 | 
				
			||||||
 | 
					  goos:
 | 
				
			||||||
 | 
					  - linux
 | 
				
			||||||
 | 
					  goarch:
 | 
				
			||||||
 | 
					  - amd64
 | 
				
			||||||
 | 
					  - arm
 | 
				
			||||||
 | 
					  - arm64
 | 
				
			||||||
 | 
					  - riscv64
 | 
				
			||||||
 | 
					  goarm:
 | 
				
			||||||
 | 
					  - "6"
 | 
				
			||||||
 | 
					  - "7"
 | 
				
			||||||
 | 
					  flags:
 | 
				
			||||||
 | 
					  - -trimpath
 | 
				
			||||||
 | 
					  ldflags:
 | 
				
			||||||
 | 
					  - -s -w -X 'main.version={{ trimprefix .Tag "v" }}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					changelog:
 | 
				
			||||||
 | 
					  filters:
 | 
				
			||||||
 | 
					    exclude:
 | 
				
			||||||
 | 
					    - '^chore'
 | 
				
			||||||
 | 
					    - '^docs'
 | 
				
			||||||
 | 
					    - '^test'
 | 
				
			||||||
 | 
					    - Merge pull request
 | 
				
			||||||
 | 
					    - Merge branch
 | 
				
			||||||
 | 
					    - go mod tidy
 | 
				
			||||||
 | 
					  format: "{{.SHA}}: {{.Message}} (@{{.AuthorUsername}})"
 | 
				
			||||||
 | 
					  groups:
 | 
				
			||||||
 | 
					  - title: Features
 | 
				
			||||||
 | 
					    regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
 | 
				
			||||||
 | 
					    order: 0
 | 
				
			||||||
 | 
					  - title: "Bug fixes"
 | 
				
			||||||
 | 
					    regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
 | 
				
			||||||
 | 
					    order: 1
 | 
				
			||||||
 | 
					  - title: Others
 | 
				
			||||||
 | 
					    order: 999
 | 
				
			||||||
 | 
					  sort: asc
 | 
				
			||||||
 | 
					  use: git
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dockers:
 | 
				
			||||||
 | 
					- build_flag_templates:
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.description={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.documentation={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.revision={{ .FullCommit }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.source={{ .GitURL }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.title={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
 | 
				
			||||||
 | 
					  - --platform=linux/amd64
 | 
				
			||||||
 | 
					  - --pull
 | 
				
			||||||
 | 
					  dockerfile: Dockerfile
 | 
				
			||||||
 | 
					  goarch: amd64
 | 
				
			||||||
 | 
					  goos: linux
 | 
				
			||||||
 | 
					  image_templates:
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64'
 | 
				
			||||||
 | 
					  skip_push: false
 | 
				
			||||||
 | 
					  use: buildx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- build_flag_templates:
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.description={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.documentation={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.revision={{ .FullCommit }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.source={{ .GitURL }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.title={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
 | 
				
			||||||
 | 
					  - --platform=linux/arm/v6
 | 
				
			||||||
 | 
					  - --pull
 | 
				
			||||||
 | 
					  dockerfile: Dockerfile
 | 
				
			||||||
 | 
					  goarch: arm
 | 
				
			||||||
 | 
					  goarm: "6"
 | 
				
			||||||
 | 
					  goos: linux
 | 
				
			||||||
 | 
					  image_templates:
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6'
 | 
				
			||||||
 | 
					  skip_push: false
 | 
				
			||||||
 | 
					  use: buildx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- build_flag_templates:
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.description={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.documentation={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.revision={{ .FullCommit }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.source={{ .GitURL }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.title={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
 | 
				
			||||||
 | 
					  - --platform=linux/arm/v7
 | 
				
			||||||
 | 
					  - --pull
 | 
				
			||||||
 | 
					  dockerfile: Dockerfile
 | 
				
			||||||
 | 
					  goarch: arm
 | 
				
			||||||
 | 
					  goarm: "7"
 | 
				
			||||||
 | 
					  goos: linux
 | 
				
			||||||
 | 
					  image_templates:
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7'
 | 
				
			||||||
 | 
					  skip_push: false
 | 
				
			||||||
 | 
					  use: buildx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- build_flag_templates:
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.description={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.documentation={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.revision={{ .FullCommit }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.source={{ .GitURL }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.title={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
 | 
				
			||||||
 | 
					  - --platform=linux/arm64
 | 
				
			||||||
 | 
					  - --pull
 | 
				
			||||||
 | 
					  dockerfile: Dockerfile
 | 
				
			||||||
 | 
					  goarch: arm64
 | 
				
			||||||
 | 
					  goos: linux
 | 
				
			||||||
 | 
					  image_templates:
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
 | 
				
			||||||
 | 
					  skip_push: false
 | 
				
			||||||
 | 
					  use: buildx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- build_flag_templates:
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.description={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.documentation={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.revision={{ .FullCommit }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.source={{ .GitURL }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.title={{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
 | 
				
			||||||
 | 
					  - --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
 | 
				
			||||||
 | 
					  - --platform=linux/riscv64
 | 
				
			||||||
 | 
					  - --pull
 | 
				
			||||||
 | 
					  dockerfile: Dockerfile
 | 
				
			||||||
 | 
					  goarch: riscv64
 | 
				
			||||||
 | 
					  goos: linux
 | 
				
			||||||
 | 
					  image_templates:
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-riscv64'
 | 
				
			||||||
 | 
					  skip_push: false
 | 
				
			||||||
 | 
					  use: buildx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					docker_manifests:
 | 
				
			||||||
 | 
					- name_template: 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}'
 | 
				
			||||||
 | 
					  image_templates:
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64'
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6'
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7'
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
 | 
				
			||||||
 | 
					  - 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-riscv64'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gitea_urls:
 | 
				
			||||||
 | 
					  api: https://git.cryptic.systems/api/v1
 | 
				
			||||||
 | 
					  download: https://git.cryptic.systems
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version: 2
 | 
				
			||||||
@@ -45,19 +45,17 @@ MD012:
 | 
				
			|||||||
# MD013/line-length - Line length
 | 
					# MD013/line-length - Line length
 | 
				
			||||||
MD013:
 | 
					MD013:
 | 
				
			||||||
  # Number of characters
 | 
					  # Number of characters
 | 
				
			||||||
  line_length: 80
 | 
					  line_length: 120
 | 
				
			||||||
  # Number of characters for headings
 | 
					  # Number of characters for headings
 | 
				
			||||||
  heading_line_length: 80
 | 
					  heading_line_length: 120
 | 
				
			||||||
  # Number of characters for code blocks
 | 
					  # Number of characters for code blocks
 | 
				
			||||||
  code_block_line_length: 80
 | 
					  code_block_line_length: 120
 | 
				
			||||||
  # Include code blocks
 | 
					  # Include code blocks
 | 
				
			||||||
  code_blocks: false
 | 
					  code_blocks: false
 | 
				
			||||||
  # Include tables
 | 
					  # Include tables
 | 
				
			||||||
  tables: false
 | 
					  tables: false
 | 
				
			||||||
  # Include headings
 | 
					  # Include headings
 | 
				
			||||||
  headings: true
 | 
					  headings: true
 | 
				
			||||||
  # Include headings
 | 
					 | 
				
			||||||
  headers: true
 | 
					 | 
				
			||||||
  # Strict length checking
 | 
					  # Strict length checking
 | 
				
			||||||
  strict: false
 | 
					  strict: false
 | 
				
			||||||
  # Stern length checking
 | 
					  # Stern length checking
 | 
				
			||||||
@@ -70,11 +68,6 @@ MD022:
 | 
				
			|||||||
  # Blank lines below heading
 | 
					  # Blank lines below heading
 | 
				
			||||||
  lines_below: 1
 | 
					  lines_below: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
 | 
					 | 
				
			||||||
MD024:
 | 
					 | 
				
			||||||
  # Only check sibling headings
 | 
					 | 
				
			||||||
  allow_different_nesting: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# MD025/single-title/single-h1 - Multiple top-level headings in the same document
 | 
					# MD025/single-title/single-h1 - Multiple top-level headings in the same document
 | 
				
			||||||
MD025:
 | 
					MD025:
 | 
				
			||||||
  # Heading level
 | 
					  # Heading level
 | 
				
			||||||
@@ -128,8 +121,7 @@ MD041:
 | 
				
			|||||||
# MD044/proper-names - Proper names should have the correct capitalization
 | 
					# MD044/proper-names - Proper names should have the correct capitalization
 | 
				
			||||||
MD044:
 | 
					MD044:
 | 
				
			||||||
  # List of proper names
 | 
					  # List of proper names
 | 
				
			||||||
  names:
 | 
					  names: []
 | 
				
			||||||
  - oas-collector
 | 
					 | 
				
			||||||
  # Include code blocks
 | 
					  # Include code blocks
 | 
				
			||||||
  code_blocks: false
 | 
					  code_blocks: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								Dockerfile
									
									
									
									
									
								
							@@ -1,16 +1,5 @@
 | 
				
			|||||||
FROM docker.io/library/golang:1.17-alpine3.14 AS build
 | 
					FROM scratch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY . /workspace
 | 
					COPY db-wait-* /usr/bin/db-wait
 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /workspace
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN set -ex && \
 | 
					 | 
				
			||||||
    apk update && \
 | 
					 | 
				
			||||||
    apk add git make && \
 | 
					 | 
				
			||||||
    make install DESTDIR=/db-wait PREFIX=/usr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM docker.io/library/alpine:3.14.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY --from=build /db-wait /
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENTRYPOINT [ "/usr/bin/db-wait" ]
 | 
					ENTRYPOINT [ "/usr/bin/db-wait" ]
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										115
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										115
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,50 +1,58 @@
 | 
				
			|||||||
VERSION?=$(shell git describe --abbrev=0)+$(shell date +'%Y%m%d%H%I%S')
 | 
					EXECUTABLE=db-wait
 | 
				
			||||||
 | 
					VERSION?=$(shell git describe --abbrev=0)+hash.$(shell git rev-parse --short HEAD)
 | 
				
			||||||
EXECUTABLE:=db-wait
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Destination directory and prefix to place the compiled binaries, documentaions
 | 
				
			||||||
 | 
					# and other files.
 | 
				
			||||||
DESTDIR?=
 | 
					DESTDIR?=
 | 
				
			||||||
PREFIX?=/usr/local
 | 
					PREFIX?=/usr/local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# BINARIES
 | 
					# CONTAINER_RUNTIME
 | 
				
			||||||
# ==============================================================================
 | 
					# The CONTAINER_RUNTIME variable will be used to specified the path to a
 | 
				
			||||||
all: ${EXECUTABLE}
 | 
					# container runtime. This is needed to start and run a container image.
 | 
				
			||||||
 | 
					CONTAINER_RUNTIME?=$(shell which podman)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
${EXECUTABLE}:
 | 
					# DB_WAIT_IMAGE_REGISTRY_NAME
 | 
				
			||||||
 | 
					# Defines the name of the new container to be built using several variables.
 | 
				
			||||||
 | 
					DB_WAIT_IMAGE_REGISTRY_NAME:=git.cryptic.systems
 | 
				
			||||||
 | 
					DB_WAIT_IMAGE_REGISTRY_USER:=volker.raschek
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DB_WAIT_IMAGE_NAMESPACE?=${DB_WAIT_IMAGE_REGISTRY_USER}
 | 
				
			||||||
 | 
					DB_WAIT_IMAGE_NAME:=${EXECUTABLE}
 | 
				
			||||||
 | 
					DB_WAIT_IMAGE_VERSION?=latest
 | 
				
			||||||
 | 
					DB_WAIT_IMAGE_FULLY_QUALIFIED=${DB_WAIT_IMAGE_REGISTRY_NAME}/${DB_WAIT_IMAGE_NAMESPACE}/${DB_WAIT_IMAGE_NAME}:${DB_WAIT_IMAGE_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# BIN
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					db-wait:
 | 
				
			||||||
 | 
						CGO_ENABLED=1 \
 | 
				
			||||||
	GOPROXY=$(shell go env GOPROXY) \
 | 
						GOPROXY=$(shell go env GOPROXY) \
 | 
				
			||||||
	GOPRIVATE=$(shell go env GOPRIVATE) \
 | 
							go build -ldflags "-X 'main.version=${VERSION}'" -o ${@} main.go
 | 
				
			||||||
		go build -ldflags "-X main.version=${VERSION:v%=%}" -o ${@}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# UN/INSTALL
 | 
					 | 
				
			||||||
# ==============================================================================
 | 
					 | 
				
			||||||
PHONY+=install
 | 
					 | 
				
			||||||
install: ${EXECUTABLE}
 | 
					 | 
				
			||||||
	install --directory ${DESTDIR}${PREFIX}/bin
 | 
					 | 
				
			||||||
	install --mode 755 ${EXECUTABLE} ${DESTDIR}${PREFIX}/bin/${EXECUTABLE}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	install --directory ${DESTDIR}${PREFIX}/licenses/${EXECUTABLE}
 | 
					 | 
				
			||||||
	install --mode 644 LICENSE ${DESTDIR}${PREFIX}/licenses/${EXECUTABLE}/LICENSE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PHONY+=uninstall
 | 
					 | 
				
			||||||
uninstall:
 | 
					 | 
				
			||||||
	-rm --recursive --force \
 | 
					 | 
				
			||||||
		${DESTDIR}${PREFIX}/bin/${EXECUTABLE} \
 | 
					 | 
				
			||||||
		${DESTDIR}${PREFIX}/licenses/${EXECUTABLE}/LICENSE
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# CLEAN
 | 
					# CLEAN
 | 
				
			||||||
# ==============================================================================
 | 
					# ==============================================================================
 | 
				
			||||||
PHONY+=clean
 | 
					PHONY+=clean
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	rm --force --recursive ${EXECUTABLE}* || true
 | 
						rm --force --recursive db-wait
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# TEST
 | 
					# TESTS
 | 
				
			||||||
# ==============================================================================
 | 
					# ==============================================================================
 | 
				
			||||||
PHONY+=test/unit
 | 
					PHONY+=test/unit
 | 
				
			||||||
test/unit:
 | 
					test/unit:
 | 
				
			||||||
	go test -v -race -coverprofile=coverage.txt -covermode=atomic -timeout 600s -count=1 ./pkg/...
 | 
						CGO_ENABLED=0 \
 | 
				
			||||||
 | 
						GOPROXY=$(shell go env GOPROXY) \
 | 
				
			||||||
 | 
							go test -v -p 1 -coverprofile=coverage.txt -covermode=count -timeout 1200s ./pkg/...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PHONY+=test/integration
 | 
				
			||||||
 | 
					test/integration:
 | 
				
			||||||
 | 
						CGO_ENABLED=0 \
 | 
				
			||||||
 | 
						GOPROXY=$(shell go env GOPROXY) \
 | 
				
			||||||
 | 
							go test -v -p 1 -count=1 -timeout 1200s ./it/...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PHONY+=test/coverage
 | 
					PHONY+=test/coverage
 | 
				
			||||||
test/coverage: test/unit
 | 
					test/coverage: test/unit
 | 
				
			||||||
	go tool cover -html=coverage.txt
 | 
						CGO_ENABLED=0 \
 | 
				
			||||||
 | 
						GOPROXY=$(shell go env GOPROXY) \
 | 
				
			||||||
 | 
							go tool cover -html=coverage.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# GOLANGCI-LINT
 | 
					# GOLANGCI-LINT
 | 
				
			||||||
# ==============================================================================
 | 
					# ==============================================================================
 | 
				
			||||||
@@ -52,11 +60,52 @@ PHONY+=golangci-lint
 | 
				
			|||||||
golangci-lint:
 | 
					golangci-lint:
 | 
				
			||||||
	golangci-lint run --concurrency=$(shell nproc)
 | 
						golangci-lint run --concurrency=$(shell nproc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# GOSEC
 | 
					# INSTALL
 | 
				
			||||||
# ==============================================================================
 | 
					# ==============================================================================
 | 
				
			||||||
PHONY+=gosec
 | 
					PHONY+=uninstall
 | 
				
			||||||
gosec:
 | 
					install: db-wait
 | 
				
			||||||
	gosec $(shell pwd)/...
 | 
						install --directory ${DESTDIR}/etc/bash_completion.d
 | 
				
			||||||
 | 
						./db-wait completion bash > ${DESTDIR}/etc/bash_completion.d/${EXECUTABLE}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						install --directory ${DESTDIR}${PREFIX}/bin
 | 
				
			||||||
 | 
						install --mode 0755 ${EXECUTABLE} ${DESTDIR}${PREFIX}/bin/${EXECUTABLE}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						install --directory ${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE}
 | 
				
			||||||
 | 
						install --mode 0644 LICENSE ${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE}/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# UNINSTALL
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					PHONY+=uninstall
 | 
				
			||||||
 | 
					uninstall:
 | 
				
			||||||
 | 
						-rm --force --recursive \
 | 
				
			||||||
 | 
							${DESTDIR}/etc/bash_completion.d/${EXECUTABLE} \
 | 
				
			||||||
 | 
							${DESTDIR}${PREFIX}/bin/${EXECUTABLE} \
 | 
				
			||||||
 | 
							${DESTDIR}${PREFIX}/share/licenses/${EXECUTABLE}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# BUILD CONTAINER IMAGE
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					PHONY+=container-image/build
 | 
				
			||||||
 | 
					container-image/build:
 | 
				
			||||||
 | 
						${CONTAINER_RUNTIME} build \
 | 
				
			||||||
 | 
							--build-arg VERSION=${VERSION} \
 | 
				
			||||||
 | 
							--file Dockerfile \
 | 
				
			||||||
 | 
							--no-cache \
 | 
				
			||||||
 | 
							--pull \
 | 
				
			||||||
 | 
							--tag ${DB_WAIT_IMAGE_FULLY_QUALIFIED} \
 | 
				
			||||||
 | 
							.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DELETE CONTAINER IMAGE
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					PHONY:=container-image/delete
 | 
				
			||||||
 | 
					container-image/delete:
 | 
				
			||||||
 | 
						- ${CONTAINER_RUNTIME} image rm ${DB_WAIT_IMAGE_FULLY_QUALIFIED}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# PUSH CONTAINER IMAGE
 | 
				
			||||||
 | 
					# ==============================================================================
 | 
				
			||||||
 | 
					PHONY+=container-image/push
 | 
				
			||||||
 | 
					container-image/push:
 | 
				
			||||||
 | 
						echo ${DB_WAIT_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${DB_WAIT_IMAGE_REGISTRY_NAME} --username ${DB_WAIT_IMAGE_REGISTRY_USER} --password-stdin
 | 
				
			||||||
 | 
						${CONTAINER_RUNTIME} push ${DB_WAIT_IMAGE_FULLY_QUALIFIED}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# PHONY
 | 
					# PHONY
 | 
				
			||||||
# ==============================================================================
 | 
					# ==============================================================================
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										33
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								README.md
									
									
									
									
									
								
							@@ -1,21 +1,18 @@
 | 
				
			|||||||
# db-wait
 | 
					# db-wait
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[](https://drone.cryptic.systems/volker.raschek/db-wait)
 | 
					 | 
				
			||||||
[](https://hub.docker.com/r/volkerraschek/db-wait)
 | 
					[](https://hub.docker.com/r/volkerraschek/db-wait)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
With `db-wait` is it possible to wait in CI/CD environments until a database
 | 
					With `db-wait` is it possible to wait in CI/CD environments until a database connection can be established and SQL
 | 
				
			||||||
connection can be established and SQL queries are possible.
 | 
					queries are possible.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is very useful for example when a database is started for an integration
 | 
					This is very useful for example when a database is started for an integration test and it needs time to start and
 | 
				
			||||||
test and it needs time to start and initialize all schemes before the test
 | 
					initialize all schemes before the test connects to it.
 | 
				
			||||||
connects to it.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Usage
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
As argument db-wait expects a database URI. This can be different depending on
 | 
					As argument db-wait expects a database URI. This can be different depending on the backend. Currently only oracle and
 | 
				
			||||||
the backend. Currently only oracle and postgres are supported. The supported URI
 | 
					postgres are supported. The supported URI patterns can be found in the respective library or directly in the
 | 
				
			||||||
patterns can be found in the respective library or directly in the documentation
 | 
					documentation of the database backend.
 | 
				
			||||||
of the database backend.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
For example:
 | 
					For example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -28,15 +25,14 @@ db-wait oracle://user:password@localhost:1521/xe
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
More about URI Pattern is documented here for
 | 
					More about URI Pattern is documented here for
 | 
				
			||||||
[oracle](https://godror.github.io/godror/doc/connection.html#-connection-strings)
 | 
					[oracle](https://godror.github.io/godror/doc/connection.html#-connection-strings) and
 | 
				
			||||||
and
 | 
					 | 
				
			||||||
[postgres](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING).
 | 
					[postgres](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Installation
 | 
					## Installation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are two ways to install `db-wait`. Directly via `go` or via `make` in
 | 
					There are two ways to install `db-wait`. Directly via `go` or via `make` in combination with `git` and `go`. The
 | 
				
			||||||
combination with `git` and `go`. The advantage of the second option is that the
 | 
					advantage of the second option is that the binary is installed with all the additional files that the developer
 | 
				
			||||||
binary is installed with all the additional files that the developer specifies.
 | 
					specifies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
# go
 | 
					# go
 | 
				
			||||||
@@ -50,15 +46,14 @@ $ git clone https://git.cryptic.systems/volker.raschek/db-wait.git && \
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Usage as container image
 | 
					## Usage as container image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Alternatively can be `db-wait` used as container image. A local installation is
 | 
					Alternatively can be `db-wait` used as container image. A local installation is not necessary.
 | 
				
			||||||
not necessary.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
# postgres
 | 
					# postgres
 | 
				
			||||||
$ docker run --rm --network host docker.io/volkerraschek/db-wait:latest \
 | 
					$ docker run --rm --network host git.cryptic.systems/volker.raschek/db-wait:latest \
 | 
				
			||||||
    postgres://user:password@localhost:5432/postgres?sslmode=disable
 | 
					    postgres://user:password@localhost:5432/postgres?sslmode=disable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# oracle
 | 
					# oracle
 | 
				
			||||||
$ docker run --rm --network host docker.io/volkerraschek/db-wait:latest \
 | 
					$ docker run --rm --network host git.cryptic.systems/volker.raschek/db-wait:latest \
 | 
				
			||||||
    oracle://user:password@localhost:1521/xe
 | 
					    oracle://user:password@localhost:1521/xe
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,9 +6,6 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"git.cryptic.systems/volker.raschek/db-wait/pkg/dbwait"
 | 
						"git.cryptic.systems/volker.raschek/db-wait/pkg/dbwait"
 | 
				
			||||||
	"github.com/spf13/cobra"
 | 
						"github.com/spf13/cobra"
 | 
				
			||||||
 | 
					 | 
				
			||||||
	_ "github.com/lib/pq"
 | 
					 | 
				
			||||||
	_ "github.com/sijms/go-ora"
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Execute(version string) error {
 | 
					func Execute(version string) error {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								go.mod
									
									
									
									
									
								
							@@ -1,11 +1,14 @@
 | 
				
			|||||||
module git.cryptic.systems/volker.raschek/db-wait
 | 
					module git.cryptic.systems/volker.raschek/db-wait
 | 
				
			||||||
 | 
					
 | 
				
			||||||
go 1.17
 | 
					go 1.24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require (
 | 
					require (
 | 
				
			||||||
	github.com/inconshreveable/mousetrap v1.0.0 // indirect
 | 
						github.com/lib/pq v1.10.9
 | 
				
			||||||
	github.com/lib/pq v1.10.3
 | 
						github.com/sijms/go-ora/v2 v2.8.24
 | 
				
			||||||
	github.com/sijms/go-ora v1.2.1
 | 
						github.com/spf13/cobra v1.9.1
 | 
				
			||||||
	github.com/spf13/cobra v1.2.1
 | 
					)
 | 
				
			||||||
	github.com/spf13/pflag v1.0.5 // indirect
 | 
					
 | 
				
			||||||
 | 
					require (
 | 
				
			||||||
 | 
						github.com/inconshreveable/mousetrap v1.1.0 // indirect
 | 
				
			||||||
 | 
						github.com/spf13/pflag v1.0.6 // indirect
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										582
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										582
									
								
								go.sum
									
									
									
									
									
								
							@@ -1,570 +1,14 @@
 | 
				
			|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 | 
					github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
 | 
				
			||||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 | 
					github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
 | 
				
			||||||
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
 | 
					github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 | 
				
			||||||
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
 | 
					github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
 | 
				
			||||||
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
 | 
					github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 | 
				
			||||||
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
 | 
					github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 | 
				
			||||||
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
 | 
					github.com/sijms/go-ora/v2 v2.8.24 h1:TODRWjWGwJ1VlBOhbTLat+diTYe8HXq2soJeB+HMjnw=
 | 
				
			||||||
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
 | 
					github.com/sijms/go-ora/v2 v2.8.24/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU=
 | 
				
			||||||
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
 | 
					github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
 | 
				
			||||||
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
 | 
					github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
 | 
				
			||||||
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
 | 
					github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
 | 
				
			||||||
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
 | 
					github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 | 
				
			||||||
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
 | 
					 | 
				
			||||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
 | 
					 | 
				
			||||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
 | 
					 | 
				
			||||||
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
 | 
					 | 
				
			||||||
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
 | 
					 | 
				
			||||||
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
 | 
					 | 
				
			||||||
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
 | 
					 | 
				
			||||||
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
 | 
					 | 
				
			||||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
 | 
					 | 
				
			||||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
 | 
					 | 
				
			||||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
 | 
					 | 
				
			||||||
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
 | 
					 | 
				
			||||||
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
 | 
					 | 
				
			||||||
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
 | 
					 | 
				
			||||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
 | 
					 | 
				
			||||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
 | 
					 | 
				
			||||||
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
 | 
					 | 
				
			||||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
 | 
					 | 
				
			||||||
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
 | 
					 | 
				
			||||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
 | 
					 | 
				
			||||||
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
 | 
					 | 
				
			||||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
 | 
					 | 
				
			||||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
 | 
					 | 
				
			||||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
 | 
					 | 
				
			||||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 | 
					 | 
				
			||||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
 | 
					 | 
				
			||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 | 
					 | 
				
			||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
					 | 
				
			||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 | 
					 | 
				
			||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 | 
					 | 
				
			||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
 | 
					 | 
				
			||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
 | 
					 | 
				
			||||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
 | 
					 | 
				
			||||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
 | 
					 | 
				
			||||||
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
 | 
					 | 
				
			||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 | 
					 | 
				
			||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
 | 
					 | 
				
			||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 | 
					 | 
				
			||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
 | 
					 | 
				
			||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
					 | 
				
			||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 | 
					 | 
				
			||||||
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 | 
					 | 
				
			||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
 | 
					 | 
				
			||||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 | 
					 | 
				
			||||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
 | 
					 | 
				
			||||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
 | 
					 | 
				
			||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
					 | 
				
			||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
					 | 
				
			||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
					 | 
				
			||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
					 | 
				
			||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 | 
					 | 
				
			||||||
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
 | 
					 | 
				
			||||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 | 
					 | 
				
			||||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
 | 
					 | 
				
			||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
					 | 
				
			||||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 | 
					 | 
				
			||||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 | 
					 | 
				
			||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 | 
					 | 
				
			||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
					 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					 | 
				
			||||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 | 
					 | 
				
			||||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 | 
					 | 
				
			||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
					 | 
				
			||||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 | 
					 | 
				
			||||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 | 
					 | 
				
			||||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
 | 
					 | 
				
			||||||
github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
 | 
					 | 
				
			||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 | 
					 | 
				
			||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 | 
					 | 
				
			||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					 | 
				
			||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 | 
					 | 
				
			||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
 | 
					 | 
				
			||||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
 | 
					 | 
				
			||||||
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 | 
					 | 
				
			||||||
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 | 
					 | 
				
			||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 | 
					 | 
				
			||||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
 | 
					 | 
				
			||||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 | 
					 | 
				
			||||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 | 
					 | 
				
			||||||
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
 | 
					 | 
				
			||||||
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
 | 
					 | 
				
			||||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 | 
					 | 
				
			||||||
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 | 
					 | 
				
			||||||
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
 | 
					 | 
				
			||||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 | 
					 | 
				
			||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 | 
					 | 
				
			||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
 | 
					 | 
				
			||||||
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
 | 
					 | 
				
			||||||
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
 | 
					 | 
				
			||||||
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
 | 
					 | 
				
			||||||
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
 | 
					 | 
				
			||||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 | 
					 | 
				
			||||||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 | 
					 | 
				
			||||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 | 
					 | 
				
			||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 | 
					 | 
				
			||||||
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
					 | 
				
			||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
 | 
					 | 
				
			||||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
 | 
					 | 
				
			||||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 | 
					 | 
				
			||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
 | 
					 | 
				
			||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 | 
					 | 
				
			||||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 | 
					 | 
				
			||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 | 
					 | 
				
			||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
					 | 
				
			||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 | 
					 | 
				
			||||||
github.com/lib/pq v1.10.3 h1:v9QZf2Sn6AmjXtQeFpdoq/eaNtYP6IN+7lcrygsIAtg=
 | 
					 | 
				
			||||||
github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 | 
					 | 
				
			||||||
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
 | 
					 | 
				
			||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
 | 
					 | 
				
			||||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 | 
					 | 
				
			||||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
 | 
					 | 
				
			||||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
 | 
					 | 
				
			||||||
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 | 
					 | 
				
			||||||
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
 | 
					 | 
				
			||||||
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
 | 
					 | 
				
			||||||
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 | 
					 | 
				
			||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 | 
					 | 
				
			||||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 | 
					 | 
				
			||||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 | 
					 | 
				
			||||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
 | 
					 | 
				
			||||||
github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
 | 
					 | 
				
			||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
					 | 
				
			||||||
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
 | 
					 | 
				
			||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
					 | 
				
			||||||
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
 | 
					 | 
				
			||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 | 
					 | 
				
			||||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
 | 
					 | 
				
			||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 | 
					 | 
				
			||||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 | 
					 | 
				
			||||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
 | 
					 | 
				
			||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 | 
					 | 
				
			||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 | 
					 | 
				
			||||||
github.com/sijms/go-ora v1.2.1 h1:+Vh95Lyv1+AltE74Ru9fvpJx/X1Y7hvw9OriuxPqLbU=
 | 
					 | 
				
			||||||
github.com/sijms/go-ora v1.2.1/go.mod h1:ZGVmJgxUfyGIVmYgA7MVGEq6BX5aoFECRMtHW5DEcs4=
 | 
					 | 
				
			||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 | 
					 | 
				
			||||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
 | 
					 | 
				
			||||||
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
 | 
					 | 
				
			||||||
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 | 
					 | 
				
			||||||
github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
 | 
					 | 
				
			||||||
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
 | 
					 | 
				
			||||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
 | 
					 | 
				
			||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 | 
					 | 
				
			||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 | 
					 | 
				
			||||||
github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
 | 
					 | 
				
			||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
					 | 
				
			||||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
 | 
					 | 
				
			||||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
					 | 
				
			||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
					 | 
				
			||||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
					 | 
				
			||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 | 
					 | 
				
			||||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 | 
					 | 
				
			||||||
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
 | 
					 | 
				
			||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
 | 
					 | 
				
			||||||
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
 | 
					 | 
				
			||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 | 
					 | 
				
			||||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
 | 
					 | 
				
			||||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 | 
					 | 
				
			||||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 | 
					 | 
				
			||||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
 | 
					 | 
				
			||||||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
 | 
					 | 
				
			||||||
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
 | 
					 | 
				
			||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 | 
					 | 
				
			||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
 | 
					 | 
				
			||||||
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
 | 
					 | 
				
			||||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
 | 
					 | 
				
			||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 | 
					 | 
				
			||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
					 | 
				
			||||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 | 
					 | 
				
			||||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
 | 
					 | 
				
			||||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
					 | 
				
			||||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
					 | 
				
			||||||
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
					 | 
				
			||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 | 
					 | 
				
			||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
					 | 
				
			||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
					 | 
				
			||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
					 | 
				
			||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 | 
					 | 
				
			||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
					 | 
				
			||||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
					 | 
				
			||||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
					 | 
				
			||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
					 | 
				
			||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
					 | 
				
			||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
 | 
					 | 
				
			||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
					 | 
				
			||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
					 | 
				
			||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
					 | 
				
			||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
					 | 
				
			||||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
 | 
					 | 
				
			||||||
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
 | 
					 | 
				
			||||||
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
 | 
					 | 
				
			||||||
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
 | 
					 | 
				
			||||||
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
 | 
					 | 
				
			||||||
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
 | 
					 | 
				
			||||||
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
 | 
					 | 
				
			||||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
 | 
					 | 
				
			||||||
google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
 | 
					 | 
				
			||||||
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
 | 
					 | 
				
			||||||
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
 | 
					 | 
				
			||||||
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
 | 
					 | 
				
			||||||
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
 | 
					 | 
				
			||||||
google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8=
 | 
					 | 
				
			||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
					 | 
				
			||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
					 | 
				
			||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
					 | 
				
			||||||
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
 | 
					 | 
				
			||||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 | 
					 | 
				
			||||||
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 | 
					 | 
				
			||||||
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
 | 
					 | 
				
			||||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
 | 
					 | 
				
			||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 | 
					 | 
				
			||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 | 
					 | 
				
			||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
				
			||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
				
			||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
 | 
					 | 
				
			||||||
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
					 | 
				
			||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
					 | 
				
			||||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
					 | 
				
			||||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
					 | 
				
			||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
					 | 
				
			||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 | 
					 | 
				
			||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 | 
					 | 
				
			||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
 | 
					 | 
				
			||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 | 
					 | 
				
			||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 | 
					 | 
				
			||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								main.go
									
									
									
									
									
								
							@@ -1,6 +1,10 @@
 | 
				
			|||||||
package main
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import "git.cryptic.systems/volker.raschek/db-wait/cmd"
 | 
					import (
 | 
				
			||||||
 | 
						"git.cryptic.systems/volker.raschek/db-wait/cmd"
 | 
				
			||||||
 | 
						_ "github.com/lib/pq"
 | 
				
			||||||
 | 
						_ "github.com/sijms/go-ora/v2"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var version string
 | 
					var version string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +0,0 @@
 | 
				
			|||||||
image: volkerraschek/db-wait:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
 | 
					 | 
				
			||||||
{{#if build.tags}}
 | 
					 | 
				
			||||||
tags:
 | 
					 | 
				
			||||||
{{#each build.tags}}
 | 
					 | 
				
			||||||
  - {{this}}
 | 
					 | 
				
			||||||
{{/each}}
 | 
					 | 
				
			||||||
  - "latest"
 | 
					 | 
				
			||||||
{{/if}}
 | 
					 | 
				
			||||||
manifests:
 | 
					 | 
				
			||||||
  -
 | 
					 | 
				
			||||||
    image: volkerraschek/db-wait:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{else}}latest{{/if}}-amd64
 | 
					 | 
				
			||||||
    platform:
 | 
					 | 
				
			||||||
      architecture: amd64
 | 
					 | 
				
			||||||
      os: linux
 | 
					 | 
				
			||||||
  -
 | 
					 | 
				
			||||||
    image: volkerraschek/db-wait:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{else}}latest{{/if}}-arm64
 | 
					 | 
				
			||||||
    platform:
 | 
					 | 
				
			||||||
      architecture: arm64
 | 
					 | 
				
			||||||
      os: linux
 | 
					 | 
				
			||||||
      variant: v8
 | 
					 | 
				
			||||||
@@ -25,7 +25,7 @@ func Wait(databaseURL *url.URL, period time.Duration, timeout time.Duration) err
 | 
				
			|||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	defer sqlDB.Close()
 | 
						defer func() { _ = sqlDB.Close() }()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx, cancel := context.WithTimeout(context.Background(), timeout)
 | 
						ctx, cancel := context.WithTimeout(context.Background(), timeout)
 | 
				
			||||||
	defer cancel()
 | 
						defer cancel()
 | 
				
			||||||
@@ -44,21 +44,34 @@ LOOP:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			switch databaseURL.Scheme {
 | 
								switch databaseURL.Scheme {
 | 
				
			||||||
			case "oracle":
 | 
								case "oracle":
 | 
				
			||||||
				_, err := sqlDB.QueryContext(queryCtx, "SELECT 1 FROM dual")
 | 
									row := sqlDB.QueryRowContext(queryCtx, "SELECT 1 FROM dual")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									var n int
 | 
				
			||||||
 | 
									err := row.Scan(&n)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					fmt.Fprintf(os.Stderr, "%s: %s\n", time.Now().String(), err.Error())
 | 
										fmt.Fprintf(os.Stderr, "%s: %s\n", time.Now().String(), err.Error())
 | 
				
			||||||
					ticker.Reset(period)
 | 
										ticker.Reset(period)
 | 
				
			||||||
					continue LOOP
 | 
										continue LOOP
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if n != 1 {
 | 
				
			||||||
 | 
										fmt.Fprintf(os.Stderr, "%s: Returned value not 1\n", time.Now().String())
 | 
				
			||||||
 | 
										ticker.Reset(period)
 | 
				
			||||||
 | 
										continue LOOP
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				return nil
 | 
									return nil
 | 
				
			||||||
			case "postgres":
 | 
								case "postgres":
 | 
				
			||||||
				_, err := sqlDB.QueryContext(queryCtx, "SELECT 1 AS ROW")
 | 
									row := sqlDB.QueryRowContext(queryCtx, "SELECT 1 AS ROW")
 | 
				
			||||||
				if err != nil {
 | 
									err := row.Err()
 | 
				
			||||||
 | 
									switch err {
 | 
				
			||||||
 | 
									case nil:
 | 
				
			||||||
 | 
										return nil
 | 
				
			||||||
 | 
									default:
 | 
				
			||||||
					fmt.Fprintf(os.Stderr, "%s: %s\n", time.Now().String(), err.Error())
 | 
										fmt.Fprintf(os.Stderr, "%s: %s\n", time.Now().String(), err.Error())
 | 
				
			||||||
					ticker.Reset(period)
 | 
										ticker.Reset(period)
 | 
				
			||||||
					continue LOOP
 | 
										continue LOOP
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				return nil
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								renovate.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								renovate.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
 | 
				
			||||||
 | 
					  "extends": [
 | 
				
			||||||
 | 
					    "local>volker.raschek/renovate-config:default#master",
 | 
				
			||||||
 | 
					    "local>volker.raschek/renovate-config:container#master",
 | 
				
			||||||
 | 
					    "local>volker.raschek/renovate-config:actions#master",
 | 
				
			||||||
 | 
					    "local>volker.raschek/renovate-config:golang#master",
 | 
				
			||||||
 | 
					    "local>volker.raschek/renovate-config:regexp#master"
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user