-
Star
(349)
You must be signed in to star a gist -
Fork
(42)
You must be signed in to fork a gist
-
-
Save DarrenN/8c6a5b969481725a4413 to your computer and use it in GitHub Desktop.
# Version key/value should be on his own line | |
PACKAGE_VERSION=$(cat package.json \ | |
| grep version \ | |
| head -1 \ | |
| awk -F: '{ print $2 }' \ | |
| sed 's/[",]//g') | |
echo $PACKAGE_VERSION |
If someone uses image based on ubi-minimal
- which doesn't have jq
, grep
or even sed
- use this script:
VERSION=$(cat package.json | tr -d '\n' | tr -d ' ' | cut -d'"' -f4)
grep "version" package.json | ...
grep
directly instead of cat
?
Thanks for this thread, lots of creative workarounds and useful techniques to be learned here.
However, I think the best option, at least for the OP task, got largely overlooked here. npm show ./ version
(as pointed out by @mightyiam among others).
BTW, the actual command AFAICT is npm-view
, and there it says that npm has aliased v
, show
, and info
to it.
WARNING: npm show . version
and npm show ./ version
are different. The .
seems to pull from the published repository info (in cache?), where as the ./
actually reads the package.json
in the current directory. The latter is the one we want here (at least the OP). So make sure you use npm show ./ version
.
FWIW, I have added these two to my ~/.bash_profile
:
alias whatver="npm v ./ version"
alias tagver="whatver | xargs git tag && git push --tags"
(I always forget how useful xargs
is, until I run across a case like this where it's helpful)
If you already have node installed: node -p "require('./package.json').version"
Easier:
jq -r .version package.json