Skip to content

Instantly share code, notes, and snippets.

@mikeyhu
Last active November 11, 2015 16:00
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 mikeyhu/96c30a771337c1b4b218 to your computer and use it in GitHub Desktop.
Save mikeyhu/96c30a771337c1b4b218 to your computer and use it in GitHub Desktop.
A basic SEMVER release version manager in python
#!/usr/bin/python
import sys
import os.path
def display_usage():
print """USAGE:
release.py [major|minor|patch|init]"""
sys.exit()
def parse_version(version):
version_info = version.replace("v", "").split('.')
return {
"major" : int(version_info[0]),
"minor" : int(version_info[1]),
"patch" : int(version_info[2])
}
def to_version_string(version):
return "v{}.{}.{}".format(version['major'], version['minor'], version['patch'])
FILE_NAME = ".release_version"
if(len(sys.argv)) != 2:
display_usage()
increment = sys.argv[1]
if(increment == 'init'):
with open(FILE_NAME, "w") as version_file:
version_file.write("v0.1.0")
elif(os.path.isfile(FILE_NAME)):
with open(FILE_NAME, "r+w") as version_file:
current_version = parse_version(version_file.read().replace('\n', ''))
if(increment in current_version):
current_version[increment] = current_version[increment]+1
updated_version = to_version_string(current_version)
version_file.seek(0)
version_file.write(updated_version)
print updated_version
else:
display_usage()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment