Sha256: 3b6c51289f08337f880e359d59d783fa00e18af6dfd0e0c2ca6a5b9ee150919e
Contents?: true
Size: 1.61 KB
Versions: 5
Compression:
Stored size: 1.61 KB
Contents
from __future__ import (absolute_import, division, print_function) __metaclass__ = type import subprocess import os import json from ansible.errors import AnsibleError QB_ROOT = os.path.realpath( os.path.join( os.path.dirname(os.path.realpath(__file__)), # /plugins/filter_plugins '..', # /plugins '..', # / ) ) def semver_inc(version, level = None, preid = None): '''increment the version at level, with optional preid for pre- levels. runs semver --increment <level> [--preid <preid>] <version> >>> semver_inc('1.0.0', 'minor', preid = 'dev') '1.0.1-dev.0' ''' cmd = [ os.path.join(QB_ROOT, 'node_modules', '.bin', 'semver'), '--increment', ] if not (level is None): cmd.append(level) if not (preid is None): cmd.append('--preid') cmd.append(preid) cmd.append(version) out = subprocess.check_output(cmd) return out.rstrip() def semver_parse(version): '''parse semver. ''' stmt = ( '''console.log(JSON.stringify(require('semver')(%s), null, 2))''' % json.dumps(version) ) cmd = ['node', '--eval', stmt] out = subprocess.check_output(cmd) return out.rstrip() class FilterModule(object): ''' version manipulation filters ''' def filters(self): return { 'semver_inc': semver_inc, 'semver_parse': semver_parse, } # testing - call camel_case on first cli arg and print result if __name__ == '__main__': import doctest doctest.testmod()
Version data entries
5 entries across 5 versions & 1 rubygems