GithubHelp home page GithubHelp logo

version's Introduction

version

What version do I have of ___?

You've been there...

java -v // unrecognized option
java -V // unrecognized option
java --version // unrecognized option
java --Version // unrecognized option
java -Version // unrecognized option
java -version // 1.8.0_262

There's no standard.

gcc --version
node -v
node --version
python -V
perl -v
perl --version
go version
lua -v
rustc --version

version is a simple, easily updateable script that tells you what version you are on.

version node   // v14.70
version gcc    // 10.1.0
version java   // 1.8.0_262
version pascal // 'pascal' does not seem to be installed.

But wait, there's more!

version also uses the package manager on your system to find the versions of programs and libraries that it doesn't know about itself. This puts the number of items that version can report the version of into the thousands. This includes libraries which are not directly executable, so don't have a version flag. Examples:

version libxml2   // 2.9.10-2
version usbutils  // 012-2
version systemd   // 246.4-1

This feature currently supports the package managers:

  • apt (Linux - Debian, Ubuntu, and derivatives)
  • pacman (Linux - Arch, Manjaro, and deriviatives)
  • dnf (Linux - Fedora and derivatives)
  • snap (Linux)
  • npm (Mac and Linux)
  • pip (Mac and Linux)
  • flatpak (Linux)
  • brew (Mac and Linux)

If version doesn't know about the command, it will start searching through any of the package managers that are installed and report what it finds:

version.png

Read more here: Package Manager Integration

Info

  • Current release: v1.3.0 (183 recognized tools)

Installing / Uninstalling

Install:

cd version
sudo ./install.sh

Uninstall:

cd version
sudo ./uninstall.sh

Or see Installation for more options.

More info in the Wiki

version's People

Contributors

bit101 avatar cdfuller avatar christost avatar daphipz avatar dertuxmalwieder avatar kitschpatrol avatar lucasrangit avatar nanjizal avatar shirshir avatar thematrixpill avatar

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

Watchers

 avatar  avatar  avatar  avatar

version's Issues

Get snaps up and running

As a follow-up on #15, maybe we could discuss the actual implementation of snap support here. I will keep the following To-Do list up to date with the latest changes. If you notice that something is missing, please mention it in a comment.


To-Do list

Before merging into master

  • Solve the issue described in #21
  • Make the version number change automatically in snapcraft.yaml
  • Set up GitHub Actions to trigger a snap build whenever someone creates a PR to or pushes to snap
  • Write tests that execute the snap inside the testing environment to make sure it runs flawlessly
  • Merge into master

After merging into master

  • Change trigger in all related Github Actions (CI,CD)
  • @bit101 (if you want to be the maintainer of the snap) sets up a snapcraft.io account and registers the snap there
  • Set up an automatic build pipeline that triggers whenever a tag is pushed to master and sends a successfully built snap to the store

Wrap around package managers to support way more packages.

Instead of relying on existing command line utilities for program and only index a small amount in a list, just detect the Linux/Mac version and wrap around the package managers (pacman/apt/dnf/brew) to support libs and things without a version option in the binary, too.

Interested in releasing a snap package?

Are you interested in releasing version as a snap? I would love to implement the necessary code as sort of a coding exercise ;)
If you don't want to deal with maintaining the snap and upload every new version to the snap store, I could also do all that on my fork and pull all changes in from here - if that's ok of course.

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.