Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Windows #850

Closed
suzuki-shunsuke opened this issue Jun 12, 2022 · 32 comments
Closed

Support Windows #850

suzuki-shunsuke opened this issue Jun 12, 2022 · 32 comments
Labels
enhancement New feature or request windows

Comments

@suzuki-shunsuke
Copy link
Member

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.

  • func (ctrl *controller) lookPath(envPath, exeName string) string {
    for _, p := range strings.Split(envPath, ":") {
    bin := filepath.Join(p, exeName)
    finfo, err := ctrl.readLink(bin)
    if err != nil {
    continue
    }
    if finfo.IsDir() {
    continue
    }
    if filepath.Base(finfo.Name()) == proxyName {
    continue
    }
    return bin
    }
    return ""
    }
  • "golang.org/x/sys/unix"

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 suzuki-shunsuke added the enhancement New feature or request label Jun 12, 2022
@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 12, 2022

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

#851
#854

@suzuki-shunsuke suzuki-shunsuke added this to To do in main via automation Jun 12, 2022
@suzuki-shunsuke suzuki-shunsuke moved this from To do to In progress in main Jun 12, 2022
@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 12, 2022

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Member Author

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
Copy link
Member Author

suzuki-shunsuke commented Jun 12, 2022

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
Copy link
Member Author

suzuki-shunsuke commented Jun 12, 2022

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

aqua/pkg/exec/exec.go

Lines 35 to 37 in a7b5c0f

func (exe *executor) ExecXSys(exePath string, args []string) error {
return unix.Exec(exePath, append([]string{filepath.Base(exePath)}, args...), os.Environ()) //nolint:wrapcheck
}

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

@suzuki-shunsuke
Copy link
Member Author

#850 (comment) was solved by #852

@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 12, 2022

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
aquaproj/aqua-proxy#36

aqua i -l freezes.

image

@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 12, 2022

Check List

command status note
aqua help
aqua version
aqua --help
aqua --version
aqua init
aqua list
aqua which gh suzuki-shunsuke/go-findconfig#208
aqua g -i cli/cli
aqua g cli/cli
aqua g (PowerShell)
aqua g (Git Bash) freeze #850 (comment)
aqua i -l suzuki-shunsuke/go-findconfig#208
aqua i -l -a
aqua i aquaproj/aqua-registry#3942
aqua i -a
aqua exec -- gh version aquaproj/aqua-registry#3942
gh version aquaproj/aqua-registry#3942
gh verision (Lazy Install) aquaproj/aqua-registry#3942

This was referenced Jun 13, 2022
@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 13, 2022

#853
suzuki-shunsuke/go-findconfig#208

image

It works.

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

https://stackoverflow.com/a/53682399

@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 13, 2022

aqua g doesn't work with Git Bash on Windows.
I found an issue of go-fuzzyfinder.
ktr0731/go-fuzzyfinder#2 (comment)

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

ktr0731/go-fuzzyfinder#2 (comment)

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


Updated. ktr0731/go-fuzzyfinder#2 (comment)

@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 13, 2022

Fix Standard Registry

Install all packages on Windows

$ aqua -c aqua-all.yaml i

@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 13, 2022

💡 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
Copy link
Member Author

suzuki-shunsuke commented Jun 13, 2022

Maybe aqua should set the suffix .exe by default if GOOS is windows.
#855

@suzuki-shunsuke
Copy link
Member Author

📝

The log message isn't colorized.

  • Git Bash

image

@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 13, 2022

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

@suzuki-shunsuke
Copy link
Member Author

suzuki-shunsuke commented Jun 13, 2022

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
Copy link
Member Author

#850 (comment)

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

  • XDG_DATA_HOME: %LOCALAPPDATA%
  • HOME: %USERPROFILE%

@suzuki-shunsuke suzuki-shunsuke added this to In progress in Windows Support Jun 18, 2022
@suzuki-shunsuke
Copy link
Member Author

@suzuki-shunsuke
Copy link
Member Author

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.

  • aelsabbahy/goss/dcgoss
  • aelsabbahy/goss/dgoss
  • aelsabbahy/goss/kgoss
  • aquaproj/aqua-installer
  • aws-containers/amazon-ecs-exec-checker
  • awslabs/git-secrets
  • bats-core/bats-core
  • ekalinin/github-markdown-toc
  • fsaintjacques/semver-tool
  • postfinance/kubectl-sudo
  • tfutils/tfenv
  • etc

main automation moved this from In progress to Done Jun 23, 2022
Windows Support automation moved this from In progress to Done Jun 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request windows
Projects
No open projects
Development

No branches or pull requests

2 participants