🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

github.com/davidrjonas/semver-cli

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/davidrjonas/semver-cli

v0.0.0-20230217090529-01c0227aa85e
Version published
Created

semver-cli

Build Status Go Report Card

semver-cli is a simple command line tool to compare and manipulate version strings.

It is basically a cli wrapper around the excellent Masterminds semver library, with lots of help from the also excellent Kingpin

usage: semver [<flags>] <command> [<args> ...]

Command-line semver tools. On error, print to stderr and exit -1.

Flags:
      --help     Show context-sensitive help (also try --help-long and --help-man).
  -v, --verbose  Verbose mode.

Commands:
  help [<command>...]
    Show help.

  satisfies <VERSION> <CONSTRAINTS>
    Test if a version satisfies a constraint. Exit 0 if satisfies, 1 if not. If verbose, print an explanation to stdout.

  greater <A> <B>
    Compare two versions. Exit 0 if the first is greater, 1 if not. If verbose, print greater to stdout.

  lesser <A> <B>
    Compare two versions. Exit 0 if the first is lesser, 1 if not. If verbose, print lesser to stdout.

  equal <A> <B>
    Compare two versions. Exit 0 if they are equal, 1 if not.

  inc <COMPONENT> <VERSION>
    Increment major, minor, or patch component.

  get <COMPONENT> <VERSION>
    Get major, minor, patch, prerelease or metadata component.

  set <COMPONENT> <VERSION> <VALUE>
    Set prerelease or metadata component.

Example

Deploy only when the CI tag is within constraints and is greater than what is currently released. For example, with constraints 1.* and a released version of 1.4, a version of 1.5 would be released but a version of 2.0 or 1.2 would not.

#!/bin/bash

CONSTRAINTS=$(jq .labels.constraints manifest.json)
RELEASED=$(jq .image manifest.json | cut -d: -f 2)

semver satisfies "$CI_TAG" "$CONSTRAINTS" || exit 1
semver greater   "$CI_TAG" "$RELEASED"    || exit 1

deploy

FAQs

Package last updated on 17 Feb 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts