Envp - ENVP is cli wrapper that sets environment variables by profile when you execute the command line

ENVP

test release CodeQL codecov

ENVP is cli wrapper that sets environment variables by profile based configuration when you execute the command line.

Use Cases I want to solve

These are my actual daily use cases. 😉

  • I need to run some command via proxy

    export https_proxy=http://some-proxy:3128
    export no_proxy=127.0.0.1,localhost,some-domain
    kubectl get pods
    curl -IL https://some-website-behind-firewall-and-proxy
    
    # and sometimes I need to unset proxy to run some other command
    # or execute it in new terminal
    unset https_proxy
    gcloud auth login
  • My team has multiple k8s cluster on different environments. but, should through dedicate proxy per cluster to do kubectl

    # run kubectl for cluster in infrastructure A
    https_proxy=http://some-internal-proxy-A:3128 kubectl get pods
    
    # run kubectl for cluster in infrastructure B
    https_proxy=http://some-internal-proxy-B:443 kubectl get pods
  • Typing(or Copy and Paste) http_proxy part for each env is so annoying. so, created alias!

    alias 'ak=https_proxy=http://some-internal-proxy-A:3128 kubectl'
    alias 'gka=https_proxy=http://some-internal-proxy-B-A:443 kubectl'
    alias 'gkb=https_proxy=http://some-internal-proxy-B-B:443 kubectl'
    ...
    alias 'gkz=https_proxy=http://some-internal-proxy-B-Z:443 kubectl'

    it may works. but I want to simply do kubectl (or k) 😮‍💨

    also, it doesn't scale for other k8s related commands. e.g. k9s, skaffold, helm, and so on.

  • My team has multiple VPN servers for the infrastructures. switching VPN back and forth in the local is annoying. so I run docker container that connects to the VPN server and proxying request by Squid Proxy. it works great on browser with FoxyProxy. but still need to set environment variable in my terminal.

  • I have multiple servers to run docker remotely

    DOCKER_HOST=ssh://user@workstation-1 docker ps -a
    DOCKER_HOST=ssh://user@workstation-2 docker ps -a

and more cases like VAULT_ADDR, ARGO_SERVER, and so on and so on.

Installation

brew:

brew install sunggun-yu/tap/envp

go install:

go install github.com/sunggun-yu/envp@<version>

Usage

note: command line must start after double dash --.

ENVP is cli wrapper that sets environment variables by profile when you execute the command line

Usage:
  envp profile-name [flags] -- [command line to execute, e.g. kubectl]
  envp [command]

Examples:

  # run command with selected environment variable profile.
  # (example is assuming HTTPS_PROXY is set in the profile)
  envp use profile
  envp -- kubectl cluster-info
  envp -- kubectl get pods
  
  # specify env var profile to use
  envp profile-name -- kubectl get namespaces
  

Available Commands:
  add         Add environment variable profile
  completion  Generate the autocompletion script for the specified shell
  delete      Delete environment variable profile
  edit        Edit environment variable profile
  help        Help about any command
  list        List all environment variable profiles
  show        Print the environment variables of profile
  start       Start new shell session with environment variable profile
  use         Set default environment variable profile
  version     Print the version of envp

Flags:
  -h, --help   help for envp

Use "envp [command] --help" for more information about a command.

Add profile

envp add my-proxy \
  -d "profile description" \
  -e HTTPS_PROXY=http://some-proxy:3128 \
  -e "NO_PROXY=127.0.0.1,localhost" \
  -e "DOCKER_HOST=ssh://myuser@some-server"
  • the value format of environment variable --env/-e is NAME=VALUE. other format will be ignored.
  • you can add multiple environment variables by repeating --env/-e.
  • added profile will be set to default profile if default is not set.

Set default profile

envp use <profile-name>

Run command line

run command with default profile:

# set command after double dash --
envp -- kubectl get pods
envp -- kubectl exec -it vault-test-app -- sh
envp -- k9s
envp -- vault login
envp -- docker ps -a

run command with specific profile:

# specify the profile to use. --profile / -p
envp <profile-name> -- kubectl get pods
envp a-a -- k9s
envp a-b -- curl -IL https://some-host
envp g-a -- curl -IL https://some-host
envp g-b -- kubectx g-b && kubectl get pods
envp my-lab -- docker ps -a
envp my-vault-1 -- vault login

Start new shell session with your default $SHELL

You can create new shell session with injected environment variable from your profile. It might be more useful for most of use case since you can seemlessly execute multiple commands.

# start new shell session with default profile
envp start

# start new shell session with specific profile
envp start <profile-name>

List profiles

envp list
envp ls

result:

  a-profile
* my-lab-1
  test
  vpn-a
  vpn-b
  • default profile will be marked with *

Show all environment variables of profile

print out default profile's env vars:

envp show 

ENV_VAR_1=ENV_VAL_1
ENV_VAR_2=ENV_VAL_2
ENV_VAR_3=ENV_VAL_3

show env vars of specific profile:

envp show some-profile

ENV_VAR_1=ENV_VAL_1
ENV_VAR_2=ENV_VAL_2
ENV_VAR_3=ENV_VAL_3

show with export option --export, -e

envp show --export

# you can export env vars of profile with following command
# eval $(envp show --export)
# eval $(envp show profile-name --export)

export ENV_VAR_1=ENV_VAL_1
export ENV_VAR_2=ENV_VAL_2
export ENV_VAR_3=ENV_VAL_3

so that, user can export env vars with eval $(envp show --export) command

eval $(envp show --export)

💡 TIP

you can create new shell, bash/zsh, session with envp

envp -- zsh
envp profile-name -- zsh

# and exit shell session if you want to reset/unset env vars
exit

Edit profile

envp edit my-proxy \
  -d "updated profile desc" \
  -e "NO_PROXY=127.0.0.1,localhost"
  • value will be updated for existing env name
  • removing env from profile will be added later. please update config file directly for now

Delete profile

envp delete profile
envp del another-profile

Nested profile

nested profile is possible natually thanks to viper. you can simply divide group and profile by . in the profile name.

envp add group.profile
envp use group.profile
envp group.profile -- ls -la
envp delete group.profile
envp delete group
  • if you delete parent profile with delete command, it will also delete all child profiles.

Config file

config file will be created at $HOME/.config/envp/config.yaml initially. and all profiles and environment variables will be stored in this file.

the file format is YAML and followed k8s pod env format to avoid map key uncapitalize issue from go/yaml unmarshal.

default: vpn-a
profiles:
  <profile-name>:
    env:
      - name: env-name
        value: env-value
  my-lab-1:
    desc: my lab cluster 1
    env:
      - name: DOCKER_HOST
        value: ssh://user@workstation-1
      - name: VAULT_ADDR
        value: https://vault.mylab-1
      - name: ARGO_SERVER
        value: https://argocd.mylab-1
  vpn: # profile group
    pa:
      desc: squid proxy with vpn A
      env:
        - name: HTTP_PROXY
          value: http://192.168.3.3:3128
        - name: NO_PROXY
          value: localhost,127.0.0.1,something
    pb:
      desc: squid proxy with vpn b
      env:
        - name: HTTP_PROXY
          value: http://192.168.3.3:3228
        - name: NO_PROXY
          value: localhost,127.0.0.1,something
Comments
  • build(deps): bump github.com/onsi/ginkgo/v2 from 2.2.0 to 2.3.0

    build(deps): bump github.com/onsi/ginkgo/v2 from 2.2.0 to 2.3.0

    Bumps github.com/onsi/ginkgo/v2 from 2.2.0 to 2.3.0.

    Release notes

    Sourced from github.com/onsi/ginkgo/v2's releases.

    v2.3.0

    2.3.0

    Interruptible Nodes and Timeouts

    Ginkgo now supports per-node and per-spec timeouts on interruptible nodes. Check out the documentation for all the details but the gist is you can now write specs like this:

    It("is interruptible", func(ctx SpecContext) { // or context.Context instead of SpecContext, both are valid.
        // do things until `ctx.Done()` is closed, for example:
        req, err := http.NewRequestWithContext(ctx, "POST", "/build-widgets", nil)
        Expect(err).NotTo(HaveOccured())
        _, err := http.DefaultClient.Do(req)
        Expect(err).NotTo(HaveOccured())
    
    Eventually(client.WidgetCount).WithContext(ctx).Should(Equal(17))
    

    }, NodeTimeout(time.Second20), GracePeriod(5time.Second))

    and have Ginkgo ensure that the node completes before the timeout elapses. If it does elapse, or if an external interrupt is received (e.g. ^C) then Ginkgo will cancel the context and wait for the Grace Period for the node to exit before proceeding with any cleanup nodes associated with the spec. The ctx provided by Ginkgo can also be passed down to Gomega's Eventually to have all assertions within the node governed by a single deadline.

    Features

    • Ginkgo now records any additional failures that occur during the cleanup of a failed spec. In prior versions this information was quietly discarded, but the introduction of a more rigorous approach to timeouts and interruptions allows Ginkgo to better track subsequent failures.
    • SpecContext also provides a mechanism for third-party libraries to provide additional information when a Progress Report is generated. Gomega uses this to provide the current state of an Eventually().WithContext() assertion when a Progress Report is requested.
    • DescribeTable now exits with an error if it is not passed any Entries [a4c9865]

    Fixes

    • fixes crashes on newer Ruby 3 installations by upgrading github-pages gem dependency [92c88d5]
    • Make the outline command able to use the DSL import [1be2427]

    Maintenance

    • chore(docs): delete no meaning d [57c373c]
    • chore(docs): Fix hyperlinks [30526d5]
    • chore(docs): fix code blocks without language settings [cf611c4]
    • fix intra-doc link [b541bcb]
    Changelog

    Sourced from github.com/onsi/ginkgo/v2's changelog.

    2.3.0

    Interruptible Nodes and Timeouts

    Ginkgo now supports per-node and per-spec timeouts on interruptible nodes. Check out the documentation for all the details but the gist is you can now write specs like this:

    It("is interruptible", func(ctx SpecContext) { // or context.Context instead of SpecContext, both are valid.
        // do things until `ctx.Done()` is closed, for example:
        req, err := http.NewRequestWithContext(ctx, "POST", "/build-widgets", nil)
        Expect(err).NotTo(HaveOccured())
        _, err := http.DefaultClient.Do(req)
        Expect(err).NotTo(HaveOccured())
    
    Eventually(client.WidgetCount).WithContext(ctx).Should(Equal(17))
    

    }, NodeTimeout(time.Second20), GracePeriod(5time.Second))

    and have Ginkgo ensure that the node completes before the timeout elapses. If it does elapse, or if an external interrupt is received (e.g. ^C) then Ginkgo will cancel the context and wait for the Grace Period for the node to exit before proceeding with any cleanup nodes associated with the spec. The ctx provided by Ginkgo can also be passed down to Gomega's Eventually to have all assertions within the node governed by a single deadline.

    Features

    • Ginkgo now records any additional failures that occur during the cleanup of a failed spec. In prior versions this information was quietly discarded, but the introduction of a more rigorous approach to timeouts and interruptions allows Ginkgo to better track subsequent failures.
    • SpecContext also provides a mechanism for third-party libraries to provide additional information when a Progress Report is generated. Gomega uses this to provide the current state of an Eventually().WithContext() assertion when a Progress Report is requested.
    • DescribeTable now exits with an error if it is not passed any Entries [a4c9865]

    Fixes

    • fixes crashes on newer Ruby 3 installations by upgrading github-pages gem dependency [92c88d5]
    • Make the outline command able to use the DSL import [1be2427]

    Maintenance

    • chore(docs): delete no meaning d [57c373c]
    • chore(docs): Fix hyperlinks [30526d5]
    • chore(docs): fix code blocks without language settings [cf611c4]
    • fix intra-doc link [b541bcb]
    Commits
    • 87fc2ec v2.3.0
    • bda6ffe clarify what we mean by cleanup nodes
    • b182b1f document how SpecContext and Eventually work together
    • 5ddc567 be more consistent about 'Timedout' vs 'Timeout'
    • a87ec82 Gingko now records additional failures that occur during cleanup of a failed ...
    • cd395fc ensure post-timeout failure makes it into the JUnit report
    • b541bcb fix intra-doc link
    • 3512013 Specs that timeout now include information about any failures that occur afte...
    • ebf4bca Additional ProgressReport reporters can be attached to SpecContext
    • 6ee15dc bump gomega and validate integration with Gomega with SpecContext
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/ginkgo/v2 from 2.1.2 to 2.1.3

    build(deps): bump github.com/onsi/ginkgo/v2 from 2.1.2 to 2.1.3

    Bumps github.com/onsi/ginkgo/v2 from 2.1.2 to 2.1.3.

    Release notes

    Sourced from github.com/onsi/ginkgo/v2's releases.

    v2.1.3

    See https://onsi.github.io/ginkgo/MIGRATING_TO_V2 for details on V2.

    Fixes

    • Calling By in a container node now emits a useful error. [ff12cee]
    Changelog

    Sourced from github.com/onsi/ginkgo/v2's changelog.

    2.1.3

    See https://onsi.github.io/ginkgo/MIGRATING_TO_V2 for details on V2.

    Fixes

    • Calling By in a container node now emits a useful error. [ff12cee]
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/gomega from 1.24.1 to 1.24.2

    build(deps): bump github.com/onsi/gomega from 1.24.1 to 1.24.2

    Bumps github.com/onsi/gomega from 1.24.1 to 1.24.2.

    Release notes

    Sourced from github.com/onsi/gomega's releases.

    v1.24.2

    1.24.2

    Fixes

    • Correctly handle assertion failure panics for eventually/consistnetly "g Gomega"s in a goroutine [78f1660]
    • docs:Fix typo "you an" -> "you can" (#607) [3187c1f]
    • fixes issue #600 (#606) [808d192]

    Maintenance

    • Bump golang.org/x/net from 0.2.0 to 0.4.0 (#611) [6ebc0bf]
    • Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#612) [258cfc8]
    • Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (#609) [e6c3eb9]
    Changelog

    Sourced from github.com/onsi/gomega's changelog.

    1.24.2

    Fixes

    • Correctly handle assertion failure panics for eventually/consistnetly "g Gomega"s in a goroutine [78f1660]
    • docs:Fix typo "you an" -> "you can" (#607) [3187c1f]
    • fixes issue #600 (#606) [808d192]

    Maintenance

    • Bump golang.org/x/net from 0.2.0 to 0.4.0 (#611) [6ebc0bf]
    • Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#612) [258cfc8]
    • Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (#609) [e6c3eb9]
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/ginkgo/v2 from 2.6.0 to 2.6.1

    build(deps): bump github.com/onsi/ginkgo/v2 from 2.6.0 to 2.6.1

    Bumps github.com/onsi/ginkgo/v2 from 2.6.0 to 2.6.1.

    Release notes

    Sourced from github.com/onsi/ginkgo/v2's releases.

    v2.6.1

    2.6.1

    Features

    • Override formatter colors from envvars - this is a new feature but an alternative approach involving config files might be taken in the future (#1095) [60240d1]

    Fixes

    • GinkgoRecover now supports ignoring panics that match a specific, hidden, interface [301f3e2]

    Maintenance

    • Bump github.com/onsi/gomega from 1.24.0 to 1.24.1 (#1077) [3643823]
    • Bump golang.org/x/tools from 0.2.0 to 0.4.0 (#1090) [f9f856e]
    • Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#1091) [0d7087e]
    Changelog

    Sourced from github.com/onsi/ginkgo/v2's changelog.

    2.6.1

    Features

    • Override formatter colors from envvars - this is a new feature but an alternative approach involving config files might be taken in the future (#1095) [60240d1]

    Fixes

    • GinkgoRecover now supports ignoring panics that match a specific, hidden, interface [301f3e2]

    Maintenance

    • Bump github.com/onsi/gomega from 1.24.0 to 1.24.1 (#1077) [3643823]
    • Bump golang.org/x/tools from 0.2.0 to 0.4.0 (#1090) [f9f856e]
    • Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#1091) [0d7087e]
    Commits
    • e7e3db7 v2.6.1
    • 301f3e2 GinkgoRecover now supports ignoring panics that match a specific, hidden, int...
    • 60240d1 Override formatter colors from envvars (#1095)
    • 3643823 Bump github.com/onsi/gomega from 1.24.0 to 1.24.1 (#1077)
    • f9f856e Bump golang.org/x/tools from 0.2.0 to 0.4.0 (#1090)
    • 0d7087e Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#1091)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0

    build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0

    Bumps github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0.

    Release notes

    Sourced from github.com/onsi/ginkgo/v2's releases.

    v2.6.0

    2.6.0

    Features

    • ReportBeforeSuite provides access to the suite report before the suite begins.
    • Add junit config option for omitting leafnodetype (#1088) [956e6d2]
    • Add support to customize junit report config to omit spec labels (#1087) [de44005]

    Fixes

    • Fix stack trace pruning so that it has a chance of working on windows [2165648]
    Changelog

    Sourced from github.com/onsi/ginkgo/v2's changelog.

    2.6.0

    Features

    • ReportBeforeSuite provides access to the suite report before the suite begins.
    • Add junit config option for omitting leafnodetype (#1088) [956e6d2]
    • Add support to customize junit report config to omit spec labels (#1087) [de44005]

    Fixes

    • Fix stack trace pruning so that it has a chance of working on windows [2165648]
    Commits
    • 6ad4fae v2.6.0
    • 366815d fix race in internal integration spec
    • 1869212 Refactor and clean up ReportBeforeSuite additions.
    • 52b4b9c ReportBeforeSuite provides the suite report before the suite begins
    • 2165648 Fix stack trace pruning so that it has a chance of working on windows
    • 956e6d2 Add junit config option for omitting leafnodetype (#1088)
    • 8804859 Fix typo in docs (#1089)
    • de44005 Add support to customize junit report config to omit spec labels (#1087)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1

    build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1

    Bumps github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1.

    Release notes

    Sourced from github.com/onsi/ginkgo/v2's releases.

    v2.5.1

    2.5.1

    Fixes

    • skipped tests only show as 'S' when running with -v [3ab38ae]
    • Fix typo in docs/index.md (#1082) [55fc58d]
    • Fix typo in docs/index.md (#1081) [8a14f1f]
    • Fix link notation in docs/index.md (#1080) [2669612]
    • Fix typo in --progress deprecation message (#1076) [b4b7edc]

    Maintenance

    • chore: Included githubactions in the dependabot config (#976) [baea341]
    • Bump golang.org/x/sys from 0.1.0 to 0.2.0 (#1075) [9646297]
    Changelog

    Sourced from github.com/onsi/ginkgo/v2's changelog.

    2.5.1

    Fixes

    • skipped tests only show as 'S' when running with -v [3ab38ae]
    • Fix typo in docs/index.md (#1082) [55fc58d]
    • Fix typo in docs/index.md (#1081) [8a14f1f]
    • Fix link notation in docs/index.md (#1080) [2669612]
    • Fix typo in --progress deprecation message (#1076) [b4b7edc]

    Maintenance

    • chore: Included githubactions in the dependabot config (#976) [baea341]
    • Bump golang.org/x/sys from 0.1.0 to 0.2.0 (#1075) [9646297]
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/gomega from 1.24.0 to 1.24.1

    build(deps): bump github.com/onsi/gomega from 1.24.0 to 1.24.1

    Bumps github.com/onsi/gomega from 1.24.0 to 1.24.1.

    Changelog

    Sourced from github.com/onsi/gomega's changelog.

    1.24.1

    Fixes

    • maintain backward compatibility for Eventually and Consisntetly's signatures [4c7df5e]
    • fix small typo (#601) [ea0ebe6]

    Maintenance

    • Bump golang.org/x/net from 0.1.0 to 0.2.0 (#603) [1ba8372]
    • Bump github.com/onsi/ginkgo/v2 from 2.4.0 to 2.5.0 (#602) [f9426cb]
    • fix label-filter in test.yml [d795db6]
    • stop running flakey tests and rely on external network dependencies in CI [7133290]
    Commits
    • 3eef0d7 v1.24.1
    • 4c7df5e maintain backward compatibility for Eventually and Consisntetly's signatures
    • 1ba8372 Bump golang.org/x/net from 0.1.0 to 0.2.0 (#603)
    • f9426cb Bump github.com/onsi/ginkgo/v2 from 2.4.0 to 2.5.0 (#602)
    • ea0ebe6 fix small typo (#601)
    • d795db6 fix label-filter in test.yml
    • 7133290 stop running flakey tests and rely on external network dependencies in CI
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/ginkgo/v2 from 2.4.0 to 2.5.0

    build(deps): bump github.com/onsi/ginkgo/v2 from 2.4.0 to 2.5.0

    Bumps github.com/onsi/ginkgo/v2 from 2.4.0 to 2.5.0.

    Release notes

    Sourced from github.com/onsi/ginkgo/v2's releases.

    v2.5.0

    2.5.0

    Ginkgo output now includes a timeline-view of the spec

    This commit changes Ginkgo's default output. Spec details are now presented as a timeline that includes events that occur during the spec lifecycle interleaved with any GinkgoWriter content. This makes is much easier to understand the flow of a spec and where a given failure occurs.

    The --progress, --slow-spec-threshold, --always-emit-ginkgo-writer flags and the SuppressProgressReporting decorator have all been deprecated. Instead the existing -v and -vv flags better capture the level of verbosity to display. However, a new --show-node-events flag is added to include node > Enter and < Exit events in the spec timeline.

    In addition, JUnit reports now include the timeline (rendered with -vv) and custom JUnit reports can be configured and generated using GenerateJUnitReportWithConfig(report types.Report, dst string, config JunitReportConfig)

    Code should continue to work unchanged with this version of Ginkgo - however if you have tooling that was relying on the specific output format of Ginkgo you may run into issues. Ginkgo's console output is not guaranteed to be stable for tooling and automation purposes. You should, instead, use Ginkgo's JSON format to build tooling on top of as it has stronger guarantees to be stable from version to version.

    Features

    • Provide details about which timeout expired [0f2fa27]

    Fixes

    • Add Support Policy to docs [c70867a]

    Maintenance

    • Bump github.com/onsi/gomega from 1.22.1 to 1.23.0 (#1070) [bb3b4e2]
    Changelog

    Sourced from github.com/onsi/ginkgo/v2's changelog.

    2.5.0

    Ginkgo output now includes a timeline-view of the spec

    This commit changes Ginkgo's default output. Spec details are now presented as a timeline that includes events that occur during the spec lifecycle interleaved with any GinkgoWriter content. This makes is much easier to understand the flow of a spec and where a given failure occurs.

    The --progress, --slow-spec-threshold, --always-emit-ginkgo-writer flags and the SuppressProgressReporting decorator have all been deprecated. Instead the existing -v and -vv flags better capture the level of verbosity to display. However, a new --show-node-events flag is added to include node > Enter and < Exit events in the spec timeline.

    In addition, JUnit reports now include the timeline (rendered with -vv) and custom JUnit reports can be configured and generated using GenerateJUnitReportWithConfig(report types.Report, dst string, config JunitReportConfig)

    Code should continue to work unchanged with this version of Ginkgo - however if you have tooling that was relying on the specific output format of Ginkgo you may run into issues. Ginkgo's console output is not guaranteed to be stable for tooling and automation purposes. You should, instead, use Ginkgo's JSON format to build tooling on top of as it has stronger guarantees to be stable from version to version.

    Features

    • Provide details about which timeout expired [0f2fa27]

    Fixes

    • Add Support Policy to docs [c70867a]

    Maintenance

    • Bump github.com/onsi/gomega from 1.22.1 to 1.23.0 (#1070) [bb3b4e2]
    Commits
    • fdb6c47 v2.5.0
    • db83f33 Ginkgo output now includes a timeline-view of the spec
    • c70867a Add Support Policy to docs
    • 0f2fa27 Provide details about which timeout expired
    • bb3b4e2 Bump github.com/onsi/gomega from 1.22.1 to 1.23.0 (#1070)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/gomega from 1.22.1 to 1.24.0

    build(deps): bump github.com/onsi/gomega from 1.22.1 to 1.24.0

    Bumps github.com/onsi/gomega from 1.22.1 to 1.24.0.

    Release notes

    Sourced from github.com/onsi/gomega's releases.

    v1.24.0

    1.24.0

    Features

    Introducting gcustom - a convenient mechanism for building custom matchers.

    This is an RC release for gcustom. The external API may be tweaked in response to feedback however it is expected to remain mostly stable.

    Maintenance

    • Update BeComparableTo documentation [756eaa0]

    v1.23.0

    1.23.0

    Features

    • Custom formatting on a per-type basis can be provided using format.RegisterCustomFormatter() -- see the docs here

    • Substantial improvement have been made to StopTrying():

      • Users can now use StopTrying().Wrap(err) to wrap errors and StopTrying().Attach(description, object) to attach arbitrary objects to the StopTrying() error
      • StopTrying() is now always interpreted as a failure. If you are an early adopter of StopTrying() you may need to change your code as the prior version would match against the returned value even if StopTrying() was returned. Going forward the StopTrying() api should remain stable.
      • StopTrying() and StopTrying().Now() can both be used in matchers - not just polled functions.
    • TryAgainAfter(duration) is used like StopTrying() but instructs Eventually and Consistently that the poll should be tried again after the specified duration. This allows you to dynamically adjust the polling duration.

    • ctx can now be passed-in as the first argument to Eventually and Consistently.

    Maintenance

    • Bump github.com/onsi/ginkgo/v2 from 2.3.0 to 2.3.1 (#597) [afed901]
    • Bump nokogiri from 1.13.8 to 1.13.9 in /docs (#599) [7c691b3]
    • Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 (#587) [ff22665]
    Changelog

    Sourced from github.com/onsi/gomega's changelog.

    1.24.0

    Features

    Introducting gcustom - a convenient mechanism for building custom matchers.

    This is an RC release for gcustom. The external API may be tweaked in response to feedback however it is expected to remain mostly stable.

    Maintenance

    • Update BeComparableTo documentation [756eaa0]

    1.23.0

    Features

    • Custom formatting on a per-type basis can be provided using format.RegisterCustomFormatter() -- see the docs here

    • Substantial improvement have been made to StopTrying():

      • Users can now use StopTrying().Wrap(err) to wrap errors and StopTrying().Attach(description, object) to attach arbitrary objects to the StopTrying() error
      • StopTrying() is now always interpreted as a failure. If you are an early adopter of StopTrying() you may need to change your code as the prior version would match against the returned value even if StopTrying() was returned. Going forward the StopTrying() api should remain stable.
      • StopTrying() and StopTrying().Now() can both be used in matchers - not just polled functions.
    • TryAgainAfter(duration) is used like StopTrying() but instructs Eventually and Consistently that the poll should be tried again after the specified duration. This allows you to dynamically adjust the polling duration.

    • ctx can now be passed-in as the first argument to Eventually and Consistently.

    Maintenance

    • Bump github.com/onsi/ginkgo/v2 from 2.3.0 to 2.3.1 (#597) [afed901]
    • Bump nokogiri from 1.13.8 to 1.13.9 in /docs (#599) [7c691b3]
    • Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 (#587) [ff22665]
    Commits
    • ed1156b v1.24.0
    • 756eaa0 Update BeComparableTo documentation
    • 6015576 finish documenting gcustom
    • 0cfc53b godoc for gcustom
    • 6a2e51e First pass at gcustom: a convenience package for making custom matchers. Doc...
    • bf817a4 v1.23.0
    • 7b8b801 fix broken call to Eventually
    • ba35cc6 Allow ctx to be passed in as a leading parameter for Eventually and Consistently
    • 818b78c AsyncAssertions emit the format.Object representation of the error when it i...
    • d63d67e Rename AsyncSignalError to PollingSignalError
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/onsi/gomega from 1.22.1 to 1.23.0

    build(deps): bump github.com/onsi/gomega from 1.22.1 to 1.23.0

    Bumps github.com/onsi/gomega from 1.22.1 to 1.23.0.

    Release notes

    Sourced from github.com/onsi/gomega's releases.

    v1.23.0

    1.23.0

    Features

    • Custom formatting on a per-type basis can be provided using format.RegisterCustomFormatter() -- see the docs here

    • Substantial improvement have been made to StopTrying():

      • Users can now use StopTrying().Wrap(err) to wrap errors and StopTrying().Attach(description, object) to attach arbitrary objects to the StopTrying() error
      • StopTrying() is now always interpreted as a failure. If you are an early adopter of StopTrying() you may need to change your code as the prior version would match against the returned value even if StopTrying() was returned. Going forward the StopTrying() api should remain stable.
      • StopTrying() and StopTrying().Now() can both be used in matchers - not just polled functions.
    • TryAgainAfter(duration) is used like StopTrying() but instructs Eventually and Consistently that the poll should be tried again after the specified duration. This allows you to dynamically adjust the polling duration.

    • ctx can now be passed-in as the first argument to Eventually and Consistently.

    Maintenance

    • Bump github.com/onsi/ginkgo/v2 from 2.3.0 to 2.3.1 (#597) [afed901]
    • Bump nokogiri from 1.13.8 to 1.13.9 in /docs (#599) [7c691b3]
    • Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 (#587) [ff22665]
    Changelog

    Sourced from github.com/onsi/gomega's changelog.

    1.23.0

    Features

    • Custom formatting on a per-type basis can be provided using format.RegisterCustomFormatter() -- see the docs here

    • Substantial improvement have been made to StopTrying():

      • Users can now use StopTrying().Wrap(err) to wrap errors and StopTrying().Attach(description, object) to attach arbitrary objects to the StopTrying() error
      • StopTrying() is now always interpreted as a failure. If you are an early adopter of StopTrying() you may need to change your code as the prior version would match against the returned value even if StopTrying() was returned. Going forward the StopTrying() api should remain stable.
      • StopTrying() and StopTrying().Now() can both be used in matchers - not just polled functions.
    • TryAgainAfter(duration) is used like StopTrying() but instructs Eventually and Consistently that the poll should be tried again after the specified duration. This allows you to dynamically adjust the polling duration.

    • ctx can now be passed-in as the first argument to Eventually and Consistently.

    Maintenance

    • Bump github.com/onsi/ginkgo/v2 from 2.3.0 to 2.3.1 (#597) [afed901]
    • Bump nokogiri from 1.13.8 to 1.13.9 in /docs (#599) [7c691b3]
    • Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 (#587) [ff22665]
    Commits
    • bf817a4 v1.23.0
    • 7b8b801 fix broken call to Eventually
    • ba35cc6 Allow ctx to be passed in as a leading parameter for Eventually and Consistently
    • 818b78c AsyncAssertions emit the format.Object representation of the error when it i...
    • d63d67e Rename AsyncSignalError to PollingSignalError
    • abd25f0 fix go vet
    • 618a133 Introduce TryAgainAfter
    • 67ab22c Simplify StopTrying handling
    • 75c8c70 Fix go vet and drop 1.17 from test matrix
    • 237e97d Matchers can now return StopTrying() errors; StopTrying() can wrap an error t...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/spf13/cobra from 1.6.0 to 1.6.1

    build(deps): bump github.com/spf13/cobra from 1.6.0 to 1.6.1

    Bumps github.com/spf13/cobra from 1.6.0 to 1.6.1.

    Release notes

    Sourced from github.com/spf13/cobra's releases.

    v1.6.1

    Bug fixes 🐛

    • Fixes a panic when AddGroup isn't called before AddCommand(my-sub-command) is executed. This can happen within more complex cobra file structures that have many different inits to be executed. Now, the check for groups has been moved to ExecuteC and provides more flexibility when working with grouped commands - @​marckhouzam (and shout out to @​aawsome, @​andig and @​KINGSABRI for a deep investigation into this! 👏🏼)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • leverage the nested profile structure to inherit the env-vars from parent to children.

    leverage the nested profile structure to inherit the env-vars from parent to children.

    let's say I have config like this, and NO_PROXY is repeating in all profile with same value.

    profiles:
      gke:
        dev:
          desc: GKE proxy for dev cluster
          env:
          - name: HTTPS_PROXY
            value: http://<ip-addr-dev>:443
          - name: NO_PROXY
            value: localhost,127.0.0.1,.googleapis.com
          - name: KUBECONFIG
            value: /Users/meow/.kube/gke-dev
        qa:
          desc: GKE proxy for qa cluster
          env:
          - name: HTTPS_PROXY
            value: http://<ip-addr-qa>:443
          - name: NO_PROXY
            value: localhost,127.0.0.1,.googleapis.com
          - name: KUBECONFIG
            value: /Users/meow/.kube/gke-qa
        test:
          desc: GKE proxy for test cluster
          env:
          - name: HTTPS_PROXY
            value: http://<ip-addr-test>:443
          - name: NO_PROXY
            value: localhost,127.0.0.1,.googleapis.com
          - name: KUBECONFIG
            value: /Users/meow/.kube/gke-test
    

    since parent profile can have desc and env, set common and repeating env in parent and inherits to the children would be nice.

    profiles:
      gke:
        desc: GKE proxy group
        env:
        - name: NO_PROXY
          value: localhost,127.0.0.1,.googleapis.com
        dev:
          desc: GKE proxy for dev cluster
          env:
          - name: HTTPS_PROXY
            value: http://<ip-addr-dev>:443
          - name: KUBECONFIG
            value: /Users/meow/.kube/gke-dev
        qa:
          desc: GKE proxy for qa cluster
          env:
          - name: HTTPS_PROXY
            value: http://<ip-addr-qa>:443
          - name: KUBECONFIG
            value: /Users/meow/.kube/gke-qa
        test:
          desc: GKE proxy for test cluster
          env:
          - name: HTTPS_PROXY
            value: http://<ip-addr-test>:443
          - name: KUBECONFIG
            value: /Users/meow/.kube/gke-test
    
A command line tool that builds and (re)starts your web application everytime you save a Go or template fileA command line tool that builds and (re)starts your web application everytime you save a Go or template file

# Fresh Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file. If the web framework yo

Nov 22, 2021
A CLI tool that masks and obscurates your environment variables for demos

envo - Mask your environment variables envo (environment variable obscuration) is a CLI tool that masks/obscurates your environment variables. Use cas

Dec 3, 2022
Automatically sets up command line flags based on struct fields and tags.
Automatically sets up command line flags based on struct fields and tags.

Commandeer Commandeer sets up command line flags based on struct fields and tags. Do you... like to develop Go apps as libraries with tiny main packag

Dec 1, 2022
Package varflag implements command-line flag parsing into vars.Variables for easy type handling with additional flag types.

varflag Package flag implements command-line flag parsing into vars.Variables for easy type handling with additional flag types. varflag Flags String

Aug 2, 2022
CLI tool to update ~/.aws/config with all accounts and permission sets defined in AWS SSO

aws-sso-profiles Generate or update ~/.aws/config with a profile for each SSO account you have access to, by using an existing AWS SSO session. Bootst

Nov 3, 2022
Godbolt console wrapper for easily execute local file without any security risk and compiler.

Godbolt CLI Godbolt console wrapper for easily execute local file without any security risk and compiler. Install Compile the source code and add to y

May 22, 2022
An open-source GitLab command line tool bringing GitLab's cool features to your command line
An open-source GitLab command line tool bringing GitLab's cool features to your command line

GLab is an open source GitLab CLI tool bringing GitLab to your terminal next to where you are already working with git and your code without switching

Dec 30, 2022
A command line tool to prompt for a value to be included in another command line.

readval is a command line tool which is designed for one specific purpose—to prompt for a value to be included in another command line. readval prints

Dec 22, 2021
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Dec 31, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command

git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command. You give git-xargs:

Feb 5, 2022
GC2 is a Command and Control application that allows an attacker to execute commands on the target machine using Google Sheet and exfiltrate data using Google Drive.
GC2 is a Command and Control application that allows an attacker to execute commands on the target machine using Google Sheet and exfiltrate data using Google Drive.

GC2 GC2 (Google Command and Control) is a Command and Control application that allows an attacker to execute commands on the target machine using Goog

Dec 13, 2022
Slack remote terminal - execute commands on remote host using slack slash command

slackRT Slack remote terminal - execute commands on remote host using slack slash command Installation Go to api.slack.com/apps and sign in and create

Jul 12, 2022
A go1.18 wrapper to provide simple generics based API for defining command line flags.

gflag A go1.18 wrapper to provide simple generics based API for defining command line flags. Example package main import ( "flag" "fmt" "time" "

Dec 20, 2021
A CLI to execute AT Commands via serial port connections.
A CLI to execute AT Commands via serial port connections.

AT Command CLI A CLI to execute AT Commands via serial port connections. Development Install Go Run go run main.go

Dec 13, 2022
painless task queue manager for shell commands with an intuitive cli interface (execute shell commands in distributed cloud-native queue manager).

EXEQ DOCS STILL IN PROGRESS. Execute shell commands in queues via cli or http interface. Features Simple intuitive tiny cli app. Modular queue backend

Dec 14, 2022
self-aware Golang profile dumper[beta]

holmes WARNING : holmes is under heavy development now, so API will make breaking change during dev. If you want to use it in production, please wait

Jan 6, 2023
Elegant CLI wrapper for kubeseal CLI

Overview This is a wrapper CLI ofkubeseal CLI, specifically the raw mode. If you just need to encrypt your secret on RAW mode, this CLI will be the ea

Jan 8, 2022
A wrapper of aliyun-cli subcommand alidns, run aliyun-cli in Declarative mode.

aliyun-dns A wrapper of aliyun-cli subcommand alidns, run aliyun-cli in Declarative mode. Installation Install aliyun-cli. Usage $ aliyun-dns -h A wra

Dec 21, 2021
A simple command line tool using which you can skip phone number based SMS verification by using a temporary phone number that acts like a proxy.
A simple command line tool using which you can skip phone number based SMS verification by using a temporary phone number that acts like a proxy.

Fake-SMS A simple command line tool using which you can skip phone number based SMS verification by using a temporary phone number that acts like a pr

Dec 31, 2022