Skip to content

Instantly share code, notes, and snippets.

@0atman
Created March 20, 2015 15:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 0atman/2382f022ae7a7f06bb0c to your computer and use it in GitHub Desktop.
Save 0atman/2382f022ae7a7f06bb0c to your computer and use it in GitHub Desktop.
A script for increasing the version in an npm project's package.json.
#! /usr/bin/env python
"""
A script for increasing the version in an npm project's
package.json.
"""
import argparse
import json
import sys
parser = argparse.ArgumentParser()
parser.add_argument(
"release_level",
help=(
"Which componant of the version should be incremented."
"Options are: major, minor, point."
)
)
args = parser.parse_args()
release_level = args.release_level
component = {
'major': 0,
'minor': 1,
'point': 2
}
if release_level not in component.keys():
sys.exit(
"release_level must be one of {0}".format(component.keys())
)
filename = 'package.json'
with open(filename, 'r') as f:
package = json.loads(f.read())
print "Old version: {0}".format(package['version'])
with open(filename, 'w') as f:
version_list = package['version'].split('.')
current_level = version_list[component[args.release_level]]
version_list[component[args.release_level]] = \
str(int(current_level) + 1)
new_version = '.'.join(version_list)
package['version'] = new_version
f.write(json.dumps(package, indent=4, sort_keys=True))
print "New version: {0}".format(new_version)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment