aquaproj / aqua

Declarative CLI Version manager written in Go. Support Lazy Install, Registry, and continuous update with Renovate. CLI version is switched seamlessly
https://aquaproj.github.io
824 stars 34 forks source link

Support Windows #850

Closed suzuki-shunsuke closed 2 years ago

suzuki-shunsuke commented 2 years ago

Feature Overview

Currently, aqua doesn't support Windows. It is desirable for aqua to support Windows.

I don't have Windows, so I'm not familiar with Windows. And it is a little difficult to verify aqua on Windows.

There are differences between Windows and Linux, so we have to solve some problems.

We also have to fix aqua-registry to support Windows.

Why is the feature needed?

Please explain the problem you want to solve.

Windows is most popular OS, so the Windows support may make aqua more popular.

Does the feature include Breaking Changes?

Probably no, but we have to investigate it.

Example Code

Nothing.

suzuki-shunsuke commented 2 years ago

I didn't know this function. https://pkg.go.dev/path/filepath#SplitList

https://github.com/aquaproj/aqua/pull/851 https://github.com/aquaproj/aqua/pull/854

suzuki-shunsuke commented 2 years ago

Install Path (AQUA_ROOT_DIR)

XDG Base Directory doesn't match Windows.

https://aquaproj.github.io/docs/reference/config#environment-variables

We have to decide the default value of AQUA_ROOT_DIR on Windows. I'm not familiar with Windows, so I'll take a look.

4513ECHO commented 2 years ago

If we support windows, almost all of supported_if which value is not (GOOS == "linux" and GOARCH == "arm64") in aqua-registry should be rewritten. Because its actual meaning is "the package only supports amd64, but darwin with rosetta2 is also working." So we have to replace like below:

supported_if: GOARCH == "amd64" or GOOS == "darwin"
4513ECHO commented 2 years ago

We can use adrg/xdg to handle XDG Base Directory Specification even on Windows and simplify logics.

Go implementation of the XDG Base Directory Specification and XDG user directories

suzuki-shunsuke commented 2 years ago

If we support windows, almost all of supported_if which value is not (GOOS == "linux" and GOARCH == "arm64") in aqua-registry should be rewritten. Because its actual meaning is "the package only supports amd64, but darwin with rosetta2 is also working." So we have to replace like below:

supported_if: GOARCH == "amd64" or GOOS == "darwin"

Hmm... I think basically there is no difference between two expressions except for Windows ARM64.

not (GOOS == "linux" and GOARCH == "arm64")

GOOS GOARCH result
windows amd64 true
windows arm64 true
darwin - true
linux amd64 true
linux arm64 false

GOARCH == "amd64" or GOOS == "darwin"

GOOS GOARCH result
windows amd64 true
windows arm64 false
darwin - true
linux amd64 true
linux arm64 false
suzuki-shunsuke commented 2 years ago

We can use adrg/xdg to handle XDG Base Directory Specification even on Windows and simplify logics.

Go implementation of the XDG Base Directory Specification and XDG user directories

Oh, it's interesting. thank you.

suzuki-shunsuke commented 2 years ago

I got a Windows Server by Amazon Workspaces.

Expectedly, it failed to build aqua on Windows.

$ go build -o dist/aqua ./cmd/aqua

// ...

pkg\exec\exec.go:36:14: undefined: unix.Exec

https://github.com/aquaproj/aqua/blob/a7b5c0f1f51f9c94a975b033060ffa997be2bfe0/pkg/exec/exec.go#L35-L37

https://pkg.go.dev/golang.org/x/sys/unix#Exec https://pkg.go.dev/go/build#hdr-Build_Constraints

suzuki-shunsuke commented 2 years ago

https://github.com/aquaproj/aqua/issues/850#issuecomment-1153199772 was solved by #852

suzuki-shunsuke commented 2 years ago

aqua init and aqua list work, but aqua g doesn't work on Windows.

image

aqua g cli/cli works well, so I think this is a problem of https://github.com/ktr0731/go-fuzzyfinder

aqua which gh doesn't work.

image

aqua-proxy for Windows is also needed.

https://github.com/aquaproj/aqua-proxy https://github.com/aquaproj/aqua-proxy/pull/36

aqua i -l freezes.

image
suzuki-shunsuke commented 2 years ago

Check List

command status note
aqua help :white_check_mark:
aqua version :white_check_mark:
aqua --help :white_check_mark:
aqua --version :white_check_mark:
aqua init :white_check_mark:
aqua list :white_check_mark:
aqua which gh :white_check_mark: https://github.com/suzuki-shunsuke/go-findconfig/pull/208
aqua g -i cli/cli :white_check_mark:
aqua g cli/cli :white_check_mark:
aqua g (PowerShell) :white_check_mark:
aqua g (Git Bash) freeze https://github.com/aquaproj/aqua/issues/850#issuecomment-1153395719
aqua i -l :white_check_mark: https://github.com/suzuki-shunsuke/go-findconfig/pull/208
aqua i -l -a :white_check_mark:
aqua i :white_check_mark: https://github.com/aquaproj/aqua-registry/pull/3942
aqua i -a :white_check_mark:
aqua exec -- gh version :white_check_mark: https://github.com/aquaproj/aqua-registry/pull/3942
gh version :white_check_mark: https://github.com/aquaproj/aqua-registry/pull/3942
gh verision (Lazy Install) :white_check_mark: https://github.com/aquaproj/aqua-registry/pull/3942
suzuki-shunsuke commented 2 years ago

https://github.com/aquaproj/aqua/pull/853 https://github.com/suzuki-shunsuke/go-findconfig/pull/208

image

It works.

$ go get github.com/suzuki-shunsuke/go-findconfig@09feb0c9f81fc9a379ddcd1432d45958581e011e

https://stackoverflow.com/a/53682399

suzuki-shunsuke commented 2 years ago

aqua g doesn't work with Git Bash on Windows. I found an issue of go-fuzzyfinder. https://github.com/ktr0731/go-fuzzyfinder/issues/2#issuecomment-467051194

There will be blocking problems when executing programs on git bash or goland ide. I changed bash to execute successfully. Thank you very much.

https://github.com/ktr0731/go-fuzzyfinder/issues/2#issuecomment-1153402352

I've confirmed that aqua g works with PowerShell on Windows. But for me the experience of PowerShell is terrible...


Updated. https://github.com/ktr0731/go-fuzzyfinder/issues/2#issuecomment-1154872091

suzuki-shunsuke commented 2 years ago

Fix Standard Registry

Install all packages on Windows

$ aqua -c aqua-all.yaml i
suzuki-shunsuke commented 2 years ago

:bulb: Allow aqua to create symbolic links

aqua creates symbolic links, so you have to allow aqua to create symbolic links. In Windows, you may encounter some issues about symbolic links. Please solve them yourself.

In Git Bash

Run Git Bash as administrator and set the environment variable.

export MSYS=winsymlinks:nativestrict
suzuki-shunsuke commented 2 years ago

Maybe aqua should set the suffix .exe by default if GOOS is windows. https://github.com/aquaproj/aqua/pull/855

suzuki-shunsuke commented 2 years ago

📝

The log message isn't colorized.

image
suzuki-shunsuke commented 2 years ago
emoji meaning
The tool is supported
:x: The tool doesn't support Windows. aqua skips installing the tool
🐛 The tool supports Windows, but it doen't work well. We'll have to solve the problem
⚠️ The tool is supported, but there is a warning
package windows support note
1xyz/pryrite :x:
99designs/aws-vault :x:
Aloxaf/silicon
Arriven/db1000n
Azure/aks-engine
Azure/aztfy
BeryJu/korb
BurntSushi/ripgrep
Cian911/switchboard
CircleCI-Public/circleci-cli
ClementTsang/bottom
Dreamacro/clash
FairwindsOps/nova
FairwindsOps/pluto
FairwindsOps/polaris
FairwindsOps/rbac-lookup
FiloSottile/age
FiloSottile/mkcert
GoodwayGroup/gwvault
GoogleCloudPlatform/terraformer https://github.com/aquaproj/aqua/issues/850#issuecomment-1154076964 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542 https://github.com/aquaproj/aqua/pull/898
GoogleCloudPlatform/terraformer/aws https://github.com/aquaproj/aqua/issues/850#issuecomment-1154076964 https://github.com/aquaproj/aqua/pull/898
GoogleContainerTools/container-diff https://github.com/aquaproj/aqua/issues/850#issuecomment-1154076964
GoogleContainerTools/container-structure-test https://github.com/aquaproj/aqua/issues/850#issuecomment-1154076964
GoogleContainerTools/kpt :x:
GoogleContainerTools/skaffold https://github.com/aquaproj/aqua/issues/850#issuecomment-1154076964
Jeffail/benthos
Kong/deck
Ladicle/kubectl-rolesum
LukeChannings/deno-arm64 :x:
MusicDin/kubitect
Peltoche/lsd
Praqma/helmsman
Schniz/fnm
Shopify/ejson :x:
Songmu/ecschedule :x:
Songmu/ghch
Songmu/ghg
Songmu/gocredits :x:
Songmu/gotesplit
Songmu/goxz
Songmu/horenso
SpectralOps/teller
TheZoraiz/ascii-image-converter
TimothyYe/skm
TomWright/dasel
Traackr/binnacle
Trendyol/kink
Versent/saml2aws
XAMPPRocky/tokei
abiosoft/colima :x:
abs-lang/abs
accurics/terrascan
aelsabbahy/goss
aelsabbahy/goss/dcgoss 🐛 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542
aelsabbahy/goss/dgoss 🐛
aelsabbahy/goss/kgoss 🐛
ahmetb/kubectl-tree
ahmetb/kubectx
ahmetb/kubectx/kubens
ahmetb/kubens
ajeetdsouza/zoxide https://github.com/aquaproj/aqua-registry/pull/4016
alexellis/arkade
alexellis/k3sup
amacneil/dbmate
anchore/grype https://github.com/aquaproj/aqua-registry/pull/4179
anchore/syft https://github.com/aquaproj/aqua-registry/pull/4121
anqiansong/github-compare https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542 https://github.com/aquaproj/aqua/pull/898
antonmedv/fx
antonmedv/llama
apache/camel-k
aquaproj/aqua-installer 🐛 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542
aquasecurity/kube-bench :x:
aquasecurity/kubectl-who-can
aquasecurity/starboard https://github.com/aquaproj/aqua-registry/pull/4017
aquasecurity/tfsec
aquasecurity/trivy :x:
argoproj-labs/argocd-autopilot https://github.com/aquaproj/aqua-registry/pull/4018 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542 https://github.com/aquaproj/aqua/pull/898
argoproj-labs/argocd-image-updater https://github.com/aquaproj/aqua-registry/pull/4019
argoproj/argo-cd
argoproj/argo-rollouts https://github.com/aquaproj/aqua-registry/pull/4020 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542 https://github.com/aquaproj/aqua/pull/898
argoproj/argo-workflows https://github.com/aquaproj/aqua-registry/pull/4021
aristocratos/btop :x:
arl/gitmux :x:
armosec/kubescape https://github.com/aquaproj/aqua-registry/pull/4022 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542 https://github.com/aquaproj/aqua/pull/898
aws-containers/amazon-ecs-exec-checker 🐛 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542
aws/amazon-ec2-instance-selector https://github.com/aquaproj/aqua-registry/pull/4023 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542 https://github.com/aquaproj/aqua/pull/898
aws/copilot-cli https://github.com/aquaproj/aqua-registry/pull/4024
awslabs/git-secrets 🐛 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542
awslabs/ssosync
b4b4r07/afx
b4b4r07/gist
b4b4r07/git-bump
b4b4r07/github-labeler
b4b4r07/gomi
b4b4r07/iap_curl
b4b4r07/stein
batchcorp/plumber
bats-core/bats-core 🐛 https://github.com/aquaproj/aqua/pull/876 https://github.com/aquaproj/aqua/issues/850#issuecomment-1155982542
bcicen/ctop https://github.com/aquaproj/aqua-registry/pull/4025
bcicen/slackcat
becheran/roumon
benbjohnson/litestream
benchkram/bob
bengadbois/pewpew
blacknon/hwatch
bootandy/dust
boz/kail
brigadecore/brigade
bronze1man/yaml2json
budimanjojo/talhelper
bufbuild/buf ⚠️ https://github.com/aquaproj/aqua-registry/pull/4026
buildpacks/pack https://github.com/aquaproj/aqua-registry/pull/4027
c-bata/kube-prompt
caarlos0/fork-cleaner
casey/just
chanzuckerberg/fogg
charmbracelet/glow
che-incubator/chectl
cheat/cheat https://github.com/aquaproj/aqua-registry/pull/4028
chriswalz/bit
civo/cli
cli/cli
cloudflare/cfssl
cloudflare/cfssl/mkbundle
cloudflare/cloudflared https://github.com/aquaproj/aqua-registry/pull/4167
cloudfoundry/bosh-cli
cloudfoundry/credhub-cli
cloudposse/atmos
cnrancher/autok3s
codeclimate/test-reporter
coder/coder https://github.com/aquaproj/aqua-registry/pull/4031
codesenberg/bombardier
compose/transporter https://github.com/aquaproj/aqua-registry/pull/4032
containerd/nerdctl
controlplaneio/kubesec
corneliusweig/ketall https://github.com/aquaproj/aqua-registry/pull/4033
corneliusweig/rakkess https://github.com/aquaproj/aqua-registry/pull/4034
corneliusweig/rakkess/access-matrix https://github.com/aquaproj/aqua-registry/pull/4036
cosmtrek/air
crate-ci/typos
create-go-app/cli
crossplane/crossplane
cswank/kcli
cue-lang/cue
cycloidio/inframap https://github.com/aquaproj/aqua-registry/pull/4037 https://github.com/aquaproj/aqua/pull/898
dagger/dagger
dandavison/delta https://github.com/aquaproj/aqua-registry/pull/4038
dapr/cli https://github.com/aquaproj/aqua-registry/pull/4039
datastax-labs/astra-cli
datreeio/datree
ddosify/ddosify
deepmap/oapi-codegen
denisidoro/navi
denoland/deno https://github.com/aquaproj/aqua-registry/pull/4069
derailed/k9s
derailed/popeye
dhall-lang/dhall-haskell https://github.com/aquaproj/aqua-registry/pull/4054 ⚠️ v1.40.1 can't be run https://github.com/aquaproj/aqua/pull/898
digitalocean/doctl
direnv/direnv
dnnrly/abbreviate
docker-slim/docker-slim https://github.com/aquaproj/aqua-registry/pull/4055
doitintl/kube-no-trouble
dominikh/go-tools/staticcheck
dotenv-linter/dotenv-linter https://github.com/aquaproj/aqua-registry/pull/4056
ducaale/xh https://github.com/aquaproj/aqua-registry/pull/4057
earthly/earthly https://github.com/aquaproj/aqua-registry/pull/4179
editorconfig-checker/editorconfig-checker https://github.com/aquaproj/aqua-registry/pull/4058
ekalinin/github-markdown-toc 🐛
emirozer/kubectl-doctor
env0/terratag
ernoaapa/kubectl-warp https://github.com/aquaproj/aqua-registry/pull/4059
errata-ai/vale
erroneousboat/slack-term https://github.com/aquaproj/aqua-registry/pull/4060
evilmartians/lefthook
extrawurst/gitui
fatedier/frp https://github.com/aquaproj/aqua-registry/pull/4061
ffuf/ffuf
fishi0x01/vsh https://github.com/aquaproj/aqua-registry/pull/4062
fission/fission
flosell/iam-policy-json-to-terraform https://github.com/aquaproj/aqua-registry/pull/4063
fluxcd/flux2 https://github.com/aquaproj/aqua-registry/pull/4064
fsaintjacques/semver-tool 🐛
fujiwara/lambroll https://github.com/aquaproj/aqua-registry/pull/4065
fujiwara/tracer https://github.com/aquaproj/aqua-registry/pull/4065
fullstorydev/grpcurl
gabrie30/ghorg
gcla/termshark
genuinetools/img
genuinetools/reg https://github.com/aquaproj/aqua-registry/pull/4066 https://github.com/aquaproj/aqua/pull/898
geofffranks/spruce
getsentry/sentry-cli https://github.com/aquaproj/aqua-registry/pull/4169
getzola/zola
ginuerzh/gost https://github.com/aquaproj/aqua-registry/pull/4071
git-chglog/git-chglog
git-lfs/git-lfs https://github.com/aquaproj/aqua-registry/pull/4072
github/hub https://github.com/aquaproj/aqua-registry/pull/4073
gleam-lang/gleam https://github.com/aquaproj/aqua-registry/pull/4074
go-jira/jira
go-task/task https://github.com/aquaproj/aqua-registry/pull/4075
gocruncher/jenkins-job-cli https://github.com/aquaproj/aqua-registry/pull/4076
gohugoio/hugo
gojuno/minimock
gokcehan/lf
golang-migrate/migrate https://github.com/aquaproj/aqua-registry/pull/4077
golang.org/x/perf/cmd/benchstat
golang.org/x/tools/cmd/goimports
golang/go
golang/mock
golang/tools/gopls https://github.com/aquaproj/aqua/pull/898
golangci/golangci-lint https://github.com/aquaproj/aqua-registry/pull/4079
goodwithtech/dockle
google/go-containerregistry
google/go-jsonnet
google/jsonnet
google/ko
google/pprof
google/wire https://github.com/aquaproj/aqua/pull/898
gopasspw/gopass
goreleaser/goreleaser https://github.com/aquaproj/aqua-registry/pull/4081
goreleaser/nfpm
gotestyourself/gotestsum
grafana/k6
grafana/loki/logcli
grafana/tanka https://github.com/aquaproj/aqua-registry/pull/4044
grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2
grpc/grpc-go/protoc-gen-go-grpc
gruntwork-io/kubergrunt
gruntwork-io/terragrunt https://github.com/aquaproj/aqua-registry/pull/4177
gsamokovarov/jump https://github.com/aquaproj/aqua-registry/pull/4082
hadolint/hadolint
hairyhenderson/gomplate
harelba/q 🐛 https://github.com/aquaproj/aqua-registry/pull/4083
harness/drone-cli
hashicorp/consul
hashicorp/go-getter
hashicorp/levant
hashicorp/nomad
hashicorp/packer
hashicorp/terraform
hashicorp/terraform-ls
hashicorp/terraform-plugin-docs
hashicorp/vault
hashicorp/waypoint
haskell/cabal/cabal-install https://github.com/aquaproj/aqua-registry/pull/4084
haskell/ghcup-hs
hasura/graphql-engine
helm/chart-releaser
helm/helm
hidetatz/kubecolor ⚠️ https://github.com/aquaproj/aqua-registry/pull/4085
high-moctane/nextword
homeport/dyff :x: https://github.com/aquaproj/aqua-registry/pull/4086
iawia002/lux
im2nguyen/rover
incu6us/goimports-reviser
influxdata/influx-cli
infracost/infracost https://github.com/aquaproj/aqua-registry/pull/4088
inlets/inlets-pro
inlets/inletsctl https://github.com/aquaproj/aqua-registry/pull/4087
instrumenta/kubeval https://github.com/aquaproj/aqua-registry/pull/4089
int128/ghcp
int128/kauthproxy
int128/kubectl-external-forward
int128/kubelogin
int128/yamlpatch
iovisor/kubectl-trace
istio/istio/istioctl https://github.com/aquaproj/aqua-registry/pull/4090
itchyny/gojq
itchyny/mmv
ivanilves/lstags
jamesob/desk
jenkins-zh/jenkins-cli
jesseduffield/horcrux
jesseduffield/lazydocker
jesseduffield/lazygit
jetstack/cert-manager/cmctl
johanhaleby/kubetail
jonaslu/ain https://github.com/aquaproj/aqua-registry/pull/4091
joshdk/retry
jreleaser/jreleaser https://github.com/aquaproj/aqua-registry/pull/4092
jreleaser/jreleaser/standalone
jsonnet-bundler/jsonnet-bundler :x: https://github.com/aquaproj/aqua-registry/pull/4093
juliosueiras/terraform-lsp
junegunn/fzf https://github.com/aquaproj/aqua-registry/pull/4098
k0sproject/k0s
k0sproject/k0sctl
kanisterio/kanister https://github.com/aquaproj/aqua-registry/pull/4099
kastenhq/external-tools/k10multicluster https://github.com/aquaproj/aqua-registry/pull/4100
kastenhq/external-tools/k10tools https://github.com/aquaproj/aqua-registry/pull/4100
kastenhq/kubestr
katbyte/terrafmt https://github.com/aquaproj/aqua/pull/898
kayac/ecspresso
kdabir/has
knative/client
knqyf263/cob https://github.com/aquaproj/aqua-registry/pull/4101
knqyf263/pet
knqyf263/utern
koalaman/shellcheck https://github.com/aquaproj/aqua-registry/pull/4102
kool-dev/kool
kreuzwerker/awsu https://github.com/aquaproj/aqua-registry/pull/4103
kreuzwerker/envplate https://github.com/aquaproj/aqua-registry/pull/4103
kreuzwerker/m1-terraform-provider-helper https://github.com/aquaproj/aqua-registry/pull/4103
ktr0731/evans
kubecost/kubectl-cost https://github.com/aquaproj/aqua-registry/pull/4104 https://github.com/aquaproj/aqua/pull/898
kubemq-io/kubemqctl https://github.com/aquaproj/aqua-registry/pull/4105
kubernetes-sigs/cluster-api
kubernetes-sigs/kind https://github.com/aquaproj/aqua-registry/pull/4106 https://github.com/aquaproj/aqua/pull/898
kubernetes-sigs/krew
kubernetes-sigs/kubebuilder https://github.com/aquaproj/aqua-registry/pull/4107
kubernetes-sigs/kubefed https://github.com/aquaproj/aqua-registry/pull/4108
kubernetes-sigs/kustomize
kubernetes/kompose
kubernetes/kops https://github.com/aquaproj/aqua-registry/pull/4109 https://github.com/aquaproj/aqua/pull/898
kubernetes/kubectl
kubernetes/minikube
kudobuilder/kuttl https://github.com/aquaproj/aqua-registry/pull/4110
kvaps/kubectl-node-shell
kyleconroy/sqlc
kyoh86/richgo https://github.com/aquaproj/aqua-registry/pull/4123
lc/gau
liamg/extrude
liamg/gitjacker
liamg/memit
liamg/pax
liamg/scout
liamg/traitor
lima-vm/lima https://github.com/aquaproj/aqua-registry/pull/4123
livebud/bud https://github.com/aquaproj/aqua-registry/pull/4124
loft-sh/devspace
loft-sh/vcluster
lotabout/skim https://github.com/aquaproj/aqua-registry/pull/4124
magefile/mage
mantil-io/mantil
marcosnils/bin
mattn/gof
mattn/goreman https://github.com/aquaproj/aqua-registry/pull/4125
mattn/memo https://github.com/aquaproj/aqua-registry/pull/4125
megaease/easeprobe
mercari/tfnotify https://github.com/aquaproj/aqua-registry/pull/4125
mergestat/mergestat https://github.com/aquaproj/aqua-registry/pull/4125
mikefarah/yq
miku/zek
minamijoyo/hcledit https://github.com/aquaproj/aqua-registry/pull/4078
minamijoyo/tfmigrate https://github.com/aquaproj/aqua-registry/pull/4123
minamijoyo/tfschema
minamijoyo/tfupdate
minishift/minishift
mitchellh/gox https://github.com/aquaproj/aqua/pull/898
mkchoi212/fac https://github.com/aquaproj/aqua-registry/pull/4126
mongodb/mongocli ⚠️ Repository and assets were renamed https://github.com/mongodb/mongodb-atlas-cli
mozilla/sops https://github.com/aquaproj/aqua-registry/pull/4126
mszostok/codeowners-validator
muesli/duf
mumoshu/variant https://github.com/aquaproj/aqua-registry/pull/4126
mumoshu/variant2 https://github.com/aquaproj/aqua-registry/pull/4126
mvdan/gofumpt https://github.com/aquaproj/aqua-registry/pull/4126
mvdan/sh
nektos/act https://github.com/aquaproj/aqua-registry/pull/4126
neovim/neovim https://github.com/aquaproj/aqua-registry/pull/4127
newrelic/newrelic-cli https://github.com/aquaproj/aqua-registry/pull/4112
nikochiko/autosaved
noborus/trdsql
nojima/httpie-go
norwoodj/helm-docs
npryce/adr-tools
oam-dev/kubevela https://github.com/aquaproj/aqua-registry/pull/4128 https://github.com/aquaproj/aqua/pull/898
oam-dev/kubevela/kubectl-plugin https://github.com/aquaproj/aqua-registry/pull/4128 https://github.com/aquaproj/aqua/pull/898
ogham/dog https://github.com/aquaproj/aqua-registry/pull/4129
ogham/exa https://github.com/aquaproj/aqua-registry/pull/4130
okteto/okteto https://github.com/aquaproj/aqua-registry/pull/4131
open-policy-agent/conftest https://github.com/aquaproj/aqua-registry/pull/4132
open-policy-agent/opa
openfaas/faas-cli
operator-framework/operator-sdk https://github.com/aquaproj/aqua-registry/pull/4133
orf/gping
orisano/dlayer
ossf/scorecard
ozankasikci/dockerfile-generator
particledecay/kconf https://github.com/aquaproj/aqua-registry/pull/4133
peak/s5cmd
peco/peco https://github.com/aquaproj/aqua-registry/pull/4133
pglet/pglet
pivotal-cf/om
pivotal-cf/pivnet-cli https://github.com/aquaproj/aqua-registry/pull/4136
plexsystems/sinker https://github.com/aquaproj/aqua-registry/pull/4136 https://github.com/aquaproj/aqua/pull/898
porter-dev/porter https://github.com/aquaproj/aqua-registry/pull/4122
postfinance/kubectl-sudo 🐛
pressly/goose
profclems/glab
projectdiscovery/httpx
projectdiscovery/naabu
projectdiscovery/nuclei
projectdiscovery/subfinder
protocolbuffers/protobuf-go/protoc-gen-go https://github.com/aquaproj/aqua-registry/pull/4137
pulumi/kubespy https://github.com/aquaproj/aqua-registry/pull/4138
pulumi/pulumi https://github.com/aquaproj/aqua-registry/pull/4138
rancher/cli
rancher/k3d
rancher/kim
rancher/rke
rclone/rclone
rebuy-de/aws-nuke
replicatedhq/kots https://github.com/aquaproj/aqua-registry/pull/4139
replicatedhq/outdated
restic/restic https://github.com/aquaproj/aqua-registry/pull/4139
reviewdog/reviewdog
rhysd/actionlint
rhysd/hgrep
rikatz/kubepug
rlmcpherson/s3gof3r https://github.com/aquaproj/aqua-registry/pull/4140
roboll/helmfile
robscott/kube-capacity
rogerwelin/cassowary
ropnop/kerbrute
rs/curlie
rust-lang/mdBook
ryane/kfilt
s0md3v/Smap
sachaos/viddy
sahilm/yamldiff https://github.com/aquaproj/aqua-registry/pull/4141
sanathp/statusok https://github.com/aquaproj/aqua-registry/pull/4142
sbstp/kubie https://github.com/aquaproj/aqua-registry/pull/4142
scaleway/scaleway-cli https://github.com/aquaproj/aqua-registry/pull/4179
schollz/croc
sclevine/yj https://github.com/aquaproj/aqua-registry/pull/4145
segmentio/chamber
sethvargo/ratchet
sharkdp/bat https://github.com/aquaproj/aqua-registry/pull/4146
sharkdp/diskus
sharkdp/fd https://github.com/aquaproj/aqua-registry/pull/4147
sharkdp/hexyl
sharkdp/hyperfine
sharkdp/pastel
sheepla/fzwiki
sheepla/qiitaz
shellspec/shellspec
siderolabs/conform https://github.com/aquaproj/aqua-registry/pull/4148
siderolabs/talos
siderolabs/theila
sigstore/cosign
sigstore/gitsign
sigstore/rekor https://github.com/aquaproj/aqua-registry/pull/4168
six-ddc/plow
slackhq/nebula
slok/sloth
snyk/driftctl
spinnaker/spin
sqshq/sampler
squat/kilo https://github.com/aquaproj/aqua-registry/pull/4149 https://github.com/aquaproj/aqua/pull/898
stackrox/kube-linter https://github.com/aquaproj/aqua-registry/pull/4150
starship/starship https://github.com/aquaproj/aqua-registry/pull/4151
stedolan/jq
stepchowfun/docuum
stern/stern
sumneko/lua-language-server
suzuki-shunsuke/akoi
suzuki-shunsuke/asciinema-trim https://github.com/aquaproj/aqua-registry/pull/4152
suzuki-shunsuke/checkout-merged-branch-with-ci-info
suzuki-shunsuke/ci-info
suzuki-shunsuke/ci-renovate-config-validator
suzuki-shunsuke/circleci-config-merge
suzuki-shunsuke/cmdx
suzuki-shunsuke/dd-time
suzuki-shunsuke/discussion-slack-notifier
suzuki-shunsuke/durl
suzuki-shunsuke/git-rm-branch
suzuki-shunsuke/github-comment
suzuki-shunsuke/matchfile
suzuki-shunsuke/renovate-issue-action
suzuki-shunsuke/tfcmt https://github.com/aquaproj/aqua-registry/pull/4153
suzuki-shunsuke/yaml2json
swaggo/swag https://github.com/aquaproj/aqua-registry/pull/4094
sysdiglabs/kube-psp-advisor
talos-systems/conform
talos-systems/talos
tcnksm/ghr https://github.com/aquaproj/aqua-registry/pull/4154
tektoncd/cli
telepresenceio/telepresence
temporalio/temporal
terraform-docs/terraform-docs https://github.com/aquaproj/aqua-registry/pull/4155
terraform-linters/tflint
tfmigrator/cli
tfutils/tfenv 🐛
thazelart/terraform-validator
thought-machine/please :x: https://github.com/aquaproj/aqua-registry/pull/4156
tilt-dev/ctlptl
tilt-dev/tilt https://github.com/aquaproj/aqua-registry/pull/4120
timdp/lwc
tinygo-org/tinygo
tkuchiki/alp
tmccombs/hcl2json
tomnomnom/gron
trufflesecurity/driftwood https://github.com/aquaproj/aqua-registry/pull/4157
trufflesecurity/trufflehog
tsenart/vegeta https://github.com/aquaproj/aqua-registry/pull/4158
twpayne/chezmoi https://github.com/aquaproj/aqua-registry/pull/4159
up9inc/mizu https://github.com/aquaproj/aqua-registry/pull/4160
uptrace/uptrace
uw-labs/strongbox
variantdev/vals
vektra/mockery
vi/websocat
vmware-tanzu/carvel-imgpkg
vmware-tanzu/carvel-kapp
vmware-tanzu/carvel-kbld
vmware-tanzu/carvel-kwt https://github.com/aquaproj/aqua-registry/pull/4161
vmware-tanzu/carvel-vendir
vmware-tanzu/carvel-ytt
vmware-tanzu/octant
vmware-tanzu/velero
wader/fq
wagoodman/dive
watchexec/watchexec https://github.com/aquaproj/aqua-registry/pull/4162
weaveworks/eksctl https://github.com/aquaproj/aqua-registry/pull/4163
webdevops/go-crond https://github.com/aquaproj/aqua-registry/pull/4164
windvalley/gossh https://github.com/aquaproj/aqua-registry/pull/4165
wtfutil/wtf https://github.com/aquaproj/aqua-registry/pull/4166
x-motemen/ghq
xiecat/fofax
xitonix/trubka
xo/usql
xtaci/kcptun
xwjdsh/manssh
yannh/kubeconform https://github.com/aquaproj/aqua-registry/pull/4171
ycd/dstp
yohamta/dagu https://github.com/aquaproj/aqua-registry/pull/4143
zaquestion/lab
zegl/kube-score
zellij-org/zellij https://github.com/aquaproj/aqua-registry/pull/4172
ziglang/zig https://github.com/aquaproj/aqua-registry/pull/4173
zix99/rare
zricethezav/gitleaks
suzuki-shunsuke commented 2 years ago

gnu vs msvc

I'm not familiar with Windows and Rust. I'll have to investigate it.

https://rust-lang.github.io/rustup/installation/windows.html

By default rustup on Windows configures Rust to target the MSVC ABI, that is a target triple of either i686-pc-windows-msvc, x86_64-pc-windows-msvc, or aarch64-pc-windows-msvc depending on the CPU architecture of the host Windows OS.

Hmm... msvc looks better than gnu as the default value.


suzuki-shunsuke commented 2 years ago

https://github.com/aquaproj/aqua/pull/858

suzuki-shunsuke commented 2 years ago

We have to support disabling auto completion of the suffix ".exe". https://github.com/GoogleCloudPlatform/terraformer/releases/tag/0.8.21

terraformer-all-windows-amd64

suzuki-shunsuke commented 2 years ago

https://github.com/aquaproj/aqua/releases/tag/v1.11.0-0 https://github.com/aquaproj/aqua/releases/tag/v1.11.0-1

Test on Windows. https://github.com/aquaproj/aqua-registry/pull/3984

suzuki-shunsuke commented 2 years ago

Maybe we have to fix aqua-installer for Windows.

https://minosjp.hatenablog.com/entry/2020/12/30/201515 https://docs.github.com/en/actions/learn-github-actions/environment-variables https://github.community/t/github-path-does-not-add-to-the-path/143992

If the workflow specified a Windows runner, you would use the syntax for PowerShell, $env:NAME. For more information about shells, see "Workflow syntax for GitHub Actions."

https://github.com/aquaproj/aqua-installer/pull/114

suzuki-shunsuke commented 2 years ago

I'll fix this error.

get the unarchiver or decompressor by the file extension:
get the unarchiver or decompressor by the file extension: format unrecognized by
 filename: goss-alpha-windows-amd64.exe

Done. https://github.com/aquaproj/aqua/pull/868/commits/7838663206219ec98658ec2c9608c40888838dfe

suzuki-shunsuke commented 2 years ago

I'll fix this error.

time="2022-06-14T19:10:49+09:00" level=fatal msg="aqua failed" aqua_version= env=windows/amd64 error="get the registry configurat
ion file by Get GitHub Content API: GET https://api.github.com/repos/aelsabbahy/goss/contents/extras/dcgoss/dcgoss.exe?ref=v0.3.1
8: 404 Not Found []" program=aqua
suzuki-shunsuke commented 2 years ago
set_windows_exe_ext: true
suzuki-shunsuke commented 2 years ago

🤔 It failed to run dcgoss.

aelsabbahy/goss/dcgoss

$ aqua exec -- dcgoss --help
time="2022-06-15T04:45:46Z" level=fatal msg="aqua failed" aqua_version= env=windows/amd64 error="it failed to start the process"
program=aqua

But it succeeded to run dcgoss directory.

$ "$(aqua which dcgoss)" --help
no docker-compose file found in .
INFO: Test ran for a total of 0 seconds

https://github.com/aquaproj/aqua/blob/0e349c78b9cd796ee9c699bbbcf919bef4c91a64/pkg/controller/exec/exec.go#L121

https://github.com/aquaproj/aqua/blob/0e349c78b9cd796ee9c699bbbcf919bef4c91a64/pkg/controller/exec/exec.go#L96-L102

https://github.com/aquaproj/aqua/blob/0e349c78b9cd796ee9c699bbbcf919bef4c91a64/pkg/exec/exec.go#L40-L46

https://pkg.go.dev/github.com/suzuki-shunsuke/go-timeout/timeout#Runner.Run


The same issue ocurred with terraformer. 🤔

$ terraformer --help
time="2022-06-15T05:38:45Z" level=fatal msg="aqua failed" aqua_version= env=windows/amd64 error="it failed to start the process"
program=aqua
$ github-compare --help
time="2022-06-15T06:10:18Z" level=fatal msg="aqua failed" aqua_version= env=windows/amd64 error="it failed to start the process"
program=aqua
suzuki-shunsuke commented 2 years ago

Installed tools were removed by Windows Security. I guess you have to fix the configuration of Security Softwares properly.

⚠️ You should configure it carefully

https://support.microsoft.com/en-us/windows/add-an-exclusion-to-windows-security-811816c0-4dfd-af4a-47e4-c301afe13b26

image
suzuki-shunsuke commented 2 years ago
suzuki-shunsuke commented 2 years ago

https://github.com/aquaproj/aqua/issues/850#issuecomment-1153118272

aqua depends on the environment variable HOME and XDG_DATA_HOME.

https://aquaproj.github.io/docs/reference/config/#environment-variables

AQUA_ROOT_DIR: (default: ${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua)

https://github.com/adrg/xdg

suzuki-shunsuke commented 2 years ago
suzuki-shunsuke commented 2 years ago

Created. https://github.com/orgs/aquaproj/projects/4

suzuki-shunsuke commented 2 years ago

Give up supporting tools written in shell scripts on Windows for now

I'll exclude windows by supported_if (supported_envs). If there are feature requests, I'll reconsider to support them.