term: Fix confirmation prompts on windows #413
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes confirmation prompts on windows by scanning for a line of input and comparing that to the desired prompt.
term.Confirm(...)
is refactored slightly to make it easier to test.Fixes #347
Note that other tests (not those added in this PR) will fail on windows until #411 is merged.
I've also verified this works on windows:
With `tk` `v0.12.0`
C:\Users\Nathan\projects\grafana-agent-operator\example [master ≡ +0 ~4 -0 !]> tk apply .\environments\default\ diff -u -N C:\Users\Nathan\AppData\Local\Temp\LIVE-097035773/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com C:\Users\Nathan\AppData\Local\Temp\MERGED-483356984/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com --- C:\Users\Nathan\AppData\Local\Temp\LIVE-097035773/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com 2020-10-27 22:12:54.118744100 -0700 +++ C:\Users\Nathan\AppData\Local\Temp\MERGED-483356984/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com 2020-10-27 22:12:54.142744000 -0700 @@ -46,7 +46,7 @@ f:storedVersions: {} manager: kubectl-client-side-apply operation: Update - time: "2020-10-28T05:04:03Z" + time: "2020-10-28T05:12:51Z" name: servicemonitors.monitoring.coreos.com resourceVersion: "545577" selfLink: /apis/apiextensions.k8s.io/v1/customresourcedefinitions/servicemonitors.monitoring.coreos.com Applying to namespace 'default' of cluster 'docker-desktop' at 'https://kubernetes.docker.internal:6443' using context 'docker-desktop'. Please type 'yes' to confirm: yes aborted by user
With `tk` built from this commit
C:\Users\Nathan\projects\grafana-agent-operator\example [master ≡ +0 ~4 -0 !]> ..\..\tanka\tk.exe apply .\environments\default\ diff -u -N C:\Users\Nathan\AppData\Local\Temp\LIVE-142144125/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com C:\Users\Nathan\AppData\Local\Temp\MERGED-139668408/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com --- C:\Users\Nathan\AppData\Local\Temp\LIVE-142144125/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com 2020-10-27 22:04:00.340253300 -0700 +++ C:\Users\Nathan\AppData\Local\Temp\MERGED-139668408/apiextensions.k8s.io.v1.CustomResourceDefinition..servicemonitors.monitoring.coreos.com 2020-10-27 22:04:00.366253100 -0700 @@ -46,7 +46,7 @@ f:storedVersions: {} manager: kubectl-client-side-apply operation: Update - time: "2020-10-28T05:03:23Z" + time: "2020-10-28T05:03:57Z" name: servicemonitors.monitoring.coreos.com resourceVersion: "545509" selfLink: /apis/apiextensions.k8s.io/v1/customresourcedefinitions/servicemonitors.monitoring.coreos.com Applying to namespace 'default' of cluster 'docker-desktop' at 'https://kubernetes.docker.internal:6443' using context 'docker-desktop'. Please type 'yes' to confirm: yes namespace/etcd unchanged namespace/foo-a unchanged namespace/foo-b unchanged namespace/foo-c unchanged namespace/monitoring unchanged serviceaccount/grafana-agent-cluster unchanged configmap/cortex-config unchanged configmap/dashboards-0 unchanged configmap/dashboards-1 unchanged configmap/dashboards-2 unchanged configmap/dashboards-3 unchanged configmap/dashboards-4 unchanged configmap/dashboards-5 unchanged configmap/dashboards-6 unchanged configmap/dashboards-7 unchanged configmap/grafana-agent-cluster unchanged configmap/grafana-config unchanged configmap/grafana-dashboard-provisioning unchanged configmap/grafana-datasources unchanged persistentvolumeclaim/cortex-data unchanged customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com configured clusterrole.rbac.authorization.k8s.io/grafana-agent-cluster unchanged clusterrolebinding.rbac.authorization.k8s.io/grafana-agent-cluster unchanged service/etcd unchanged service/example unchanged service/example unchanged service/example unchanged service/cortex unchanged service/grafana unchanged service/grafana-agent-cluster unchanged deployment.apps/etcd unchanged deployment.apps/example unchanged deployment.apps/load-generator unchanged deployment.apps/example unchanged deployment.apps/load-generator unchanged deployment.apps/example unchanged deployment.apps/load-generator unchanged deployment.apps/cortex unchanged deployment.apps/grafana unchanged deployment.apps/grafana-agent-cluster configured servicemonitor.monitoring.coreos.com/example unchanged servicemonitor.monitoring.coreos.com/example unchanged servicemonitor.monitoring.coreos.com/example unchanged servicemonitor.monitoring.coreos.com/cortex unchanged