Code Monkey home page Code Monkey logo

binenv's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

binenv's Issues

Version masking

We should be able to mask some versions.

If a distribution changes it's naming scheme, we might want to have 2 distributions defined with the proper templates.

In this case we want to add filters to those distributions so they just handle the proper versions.

Questions for adding new tools

Hi,
i continue to add tools which are used in various projects in our organization. i have a few issues again =)

  1. i often get on update this error for packer:
    020-11-29T09:56:56Z WRN ignoring invalid version for "packer" error="Malformed version: nightly"
    Do you plan to fix this? is this fixable? would you recommend for me to look into the code?
  2. i wanted to add k3sup when i also add k3d, but what do i do, when the linux version does not conform to the naming convention like in https://github.com/alexellis/k3sup/releases/tag/0.9.11 ? is there any way to work with this? or should i open an issue with the project?
  3. When there is windows, there may be an .exe, is the exeextension for linux just zero characters then?
  4. i am a little bit unsure how to progress with rust projects which seem to adhere to this release structure: https://github.com/sharkdp/fd/releases/tag/v8.1.1 Should i use the unknown-linux-architecture? in the tar.gz files there are more things than just the binary, will this work with type tgz and binaries: - fd?
  5. when i just type tgz, but it's zip on windows, does your extraction strategy automatically fit this to the platform (like perhaps with exeextension?)
  6. how do i progress when there are multiple binaries in the tar gz? shall i name then in binaries:? and what if they are in a subdirectory like in the project with https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.1/kubebuilder_2.3.1_linux_amd64.tar.gz

problems within a fresh machine

Hi,
due to some problems i followed your steps again in a vagrant box and after downloading and chmoding the binary i got that error request:
vagrant@debian10:~$ ./binenv update updating distributions 76% |..... | (57/75, 4 it/s) [16s:5s]2020-11-23T15:21:15Z ERR unable to fetch versions for "stern" error="github rate limit is close: remaining 4 of 60; please retry after 2020-11-23 16:20:59 +0000 UTC"

it looks like i get an error with the distributions. i am not sure, why this happens. i have not much requests to github atm.
could it be that fetching your LATEST binenv creates some problem? should you at least use a binenv from a release where all the distributions are verified? or is it another problem?

fetch distributions file from raw-url with certain branch

Many people will use this for generating environments or docker containers (as do i), fetching a github token for that would be out of the question.
would it be possible to fetch distributions.yml from some branch or tag? like

binenv update --raw --project devops-works/binenv --branch develop

would fetch https://raw.githubusercontent.com/devops-works/binenv/develop/distributions/distributions.yaml and use that.
because updating single applications is normally not a problem and installing them. but updating all the distributions file will always run into a ratelimit. or the tool tries alternatively adhere to the ratelimits...

Drop (non functional) windows support

Windows support is quite some work (.exe everywhere, no real symlinks, no executable replacing, different compression format for many distributions...) for a non-existent user base.

We are not willing to spend time for this platform. If anyone is willing to do it; please go ahead.

Otherwise, we'll remove windows-related stuff (.exe templating, windows speficics in distributions.yaml, cross-compilation) early 2021.

Update error

binenv update
updating distributions  40% |██████████████████████████████████████████████████████████████████                                                                                                   | (30/75, 3 it/s) [10s:14s]2020-11-23T09:13:44+02:00 WRN ignoring invalid version for "packer" error="Malformed version: nightly"
updating distributions  74% |██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                            | (56/75, 3 it/s) [18s:6s]2020-11-23T09:13:52+02:00 ERR unable to fetch versions for "onefetch" error="github rate limit is close: remaining 4 of 60; please retry after 2020-11-23 10:13:34 +0200 EET"

run again

binenv update
2020-11-23T09:15:02+02:00 ERR unable to fetch versions for "naabu-win" error="github rate limit is close: remaining 3 of 60; please retry after 2020-11-23 10:13:34 +0200 EET"

OS: Mac (Catalina)
Version binenv: v0.8.2

Suggestions for more binaries :)

Hi, i have a couple of suggestions of binaries i use in several projects:

i am not sure if you can do this stuff too, but perhaps they will do releases one day:

and another idea, did you think about installing other package managers? like

the second and third blocks are just suggestions. i am glad either way, i will DEFINITELY use your tool. Thanks for this!

arkade easily addable?

Hi,
it's me again :)
i asked the arkade project (which concentrates on kubernetes binaries) if they coulde change their deployment:
alexellis/arkade#298
and they mentioned that they and others have a similar (usual) naming process. Now my question is, is adding arkade easy and if yes, is there already a binary managed with binenv in distributions.yaml which has the same publication strategy as arkade? if not, how hard would it be to write a strategy for that?

"Cannot open self" error with docker-compose

After installing docker-compose, I can't run it even though accessing the binary directly works fine.

$ binenv install docker-compose
2020-12-03T13:51:28+01:00 WRN version for "docker-compose" not specified; using "1.27.4"
fetching docker-compose version 1.27.4 100% |███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| (12/12 MB, 5.462 MB/s)        
2020-12-03T13:51:31+01:00 INF "docker-compose" (1.27.4) installed
$ docker-compose up
[56249] Cannot open self /home/rick/.binenv/docker-compose or archive /home/rick/.binenv/docker-compose.pkg

Add search command

This would allow to search if a binary is available in binenv without having to use versions and then search through the output to find it.

Add convenience update & install flags

May be add convenience flags:

  • add -i (--install) flag in update command; this would install the latest distribution version after the update is performed
  • add -u (--update) flag in install command; this would update the distribution list before installing the version( latest of specified one)

We could do things like binenv install terraform -u instead of binenv update terraform && binenv install terraform.

This could be nice, but could also make the tool a bit confusing just to save some keystrokes.

Installation of tool 'naabu' is not working in the lastest version

The installation of naabu fails in the latest version 2.0.3:

binenv install naabu 2021-04-27T06:44:38Z WRN version for "naabu" not specified; using "2.0.3" 2021-04-27T06:44:38Z ERR unable to install "naabu" (2.0.3) error="unable to download binary at https://github.com/projectdiscovery/naabu/releases/download/v2.0.3/naabu_2.0.3_linux_amd64.tar.gz: 404 Not Found"

Reason: Project switched the filename deliminator from underscore to dash

Normally I would just fix it and open a PR but this only affects the latest version so changing it would break all older versions.

Any ideas of how to fix it?

Upgrade all binaries

Add option to upgrade all installed binaries

Workaround :

for d in $(binenv versions -f | grep -v ^# | cut -d'=' -f1); do binenv install $d; done

documentation/possibility how to handle sudo calls?

Hello,
i start after a while stumbling often enough with sudo and tools i installed with binenv. Can you add a documentation which best practice you would recommend, so tools are usable with sudo? because otherweise minikube for example is not really usable

darwin_arm64 build

Hi,

I find myself on an M1 Mac and would love a native binary for the M1 chip.

Thanks!

`binenv -l` fails to find one of the dependencies

$ cat .binenv.lock 
#helm: default
helm=3.4.2
#helmfile: default
helmfile=0.135.0
#kubectl: default
kubectl=1.19.3
#sops: default
sops=3.6.1
$ binenv -v install -l
2021-04-01T13:50:48+02:00 DBG will use "helm" (3.4.2) to satisfy constraint "helm=3.4.2"
2021-04-01T13:50:48+02:00 DBG will use "helmfile" (0.135.0) to satisfy constraint "helmfile=0.135.0"
2021-04-01T13:50:48+02:00 WRN no available versions found for "kubectl". Please run "binenv update kubectl".
2021-04-01T13:50:48+02:00 DBG will use "sops" (3.6.1) to satisfy constraint "sops=3.6.1"
$ binenv install kubectl
2021-04-01T13:49:18+02:00 WRN version for "kubectl" not specified; using "1.20.4"
2021-04-01T13:49:18+02:00 WRN version "1.20.4" already installed for "kubectl"

Use cache by default on updates

To avoid having users being rate limited by accident, we might change the default behavior to use remote cache and have an explicit --nocache flag to fetch release list for every distributions.

Install suggestion should use proper version guessing

$ echo "vault<1.5.0" > .binenv.lock
$ vault version
2020-08-29T12:28:03+02:00 FTL binenv: unable to find proper version for vault (unable to satisfy constraint "<1.5.0" for "vault". Try 'binenv install vault 1.5.0'.)

`expand` command

bienv does not currently work in sudo situations. For instance:

sudo termshark -i eth0

fails, as weel as

sudo $(which termshark)

One way to make it work would be to completely dereference the binary, e.g.

sudo ~/.binenv/binaries/termshark/2.2.0 -i eth0

A new expand command would allow retrieving the proper path for commands:

sudo $(binenv expand termshark) -i eth0

(unless we find a better solution)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.