def createRepoJSON(self, notJSON=False): desc = "Please write a description for me in config_meta['plugin_desc']" if 'plugin_desc' in self.config_meta: desc = self.config_meta['plugin_desc'] if not sum(self.xdm_version): xdm_version = common.getVersionTuple() else: xdm_version = self.xdm_version #http://stackoverflow.com/a/4402799/729059 data = collections.OrderedDict([ ("major_version", self.major_version), ("minor_version", self.minor_version), ("name", self.screenName), ("type", self._type), ("format", 'zip'), ("desc", desc), ( "xdm_version", (xdm_version[0], xdm_version[1], xdm_version[2]) ), # buildnumber is not taken into account for version comparison on plugins ("download_url", "##enter the url to the zip file here !##") ]) out = {self.identifier: [data]} if notJSON: return out return json.dumps(out, indent=4, sort_keys=False)
def createRepoJSON(self, notJSON=False): desc = "Please write a description for me in config_meta['plugin_desc']" if "plugin_desc" in self.config_meta: desc = self.config_meta["plugin_desc"] if not sum(self.xdm_version): xdm_version = common.getVersionTuple() else: xdm_version = self.xdm_version # http://stackoverflow.com/a/4402799/729059 data = collections.OrderedDict( [ ("major_version", self.major_version), ("minor_version", self.minor_version), ("name", self.screenName), ("type", self._type), ("format", "zip"), ("desc", desc), ( "xdm_version", (xdm_version[0], xdm_version[1], xdm_version[2]), ), # buildnumber is not taken into account for version comparison on plugins ("download_url", "##enter the url to the zip file here !##"), ] ) out = {self.identifier: [data]} if notJSON: return out return json.dumps(out, indent=4, sort_keys=False)
def need_update(self): self.response.localVersion = common.getVersionTuple(True) r = requests.get(self.version_url) externalVersion = [] for name in ('major', 'minor', 'revision'): externalVersion.append(int(re.search("%s = (?P<v>\d+)" % name, r.text).group('v'))) self.response.externalVersion = tuple(externalVersion) if self.response.localVersion < self.response.externalVersion: msg = 'Update available %s' % (self.response.externalVersion,) log.info(msg) self.response.message = msg self.response.needUpdate = True else: self.response.message = 'No update needed' self.response.needUpdate = False return self.response
def need_update(self): self.response.localVersion = common.getVersionTuple(True) r = requests.get(self.version_url) externalVersion = [] for name in ('major', 'minor', 'revision'): externalVersion.append( int(re.search("%s = (?P<v>\d+)" % name, r.text).group('v'))) self.response.externalVersion = tuple(externalVersion) if self.response.localVersion < self.response.externalVersion: msg = 'Update available %s' % (self.response.externalVersion, ) log.info(msg) self.response.message = msg self.response.needUpdate = True else: self.response.message = 'No update needed' self.response.needUpdate = False return self.response
def main(): print print "########################################" print "Starting build ..." print "########################################" buildParams = {} ###################### # check arguments # defaults buildParams['test'] = False buildParams['target'] = 'auto' buildParams['nightly'] = False buildParams['major'] = "" buildParams['minor'] = "" buildParams['revision'] = "" buildParams['branch'] = "" # win buildParams['py2ExeArgs'] = [] # not used yet # osx buildParams['onlyApp'] = False buildParams['py2AppArgs'] = ['py2app'] buildParams['osxDmgImage'] = "" buildParams['buildNumber'] = 0 try: opts, args = getopt.getopt(sys.argv[1:], "", [ 'test', 'onlyApp', 'nightly', 'dmgbg=', 'py2appArgs=', 'target=', 'major=', 'minor=', 'revision=', 'branch=', 'buildNumber=']) #@UnusedVariable except getopt.GetoptError: print "Available options: --test, --dmgbg, --onlyApp, --nightly, --py2appArgs, --target, --major, --minor, --revision, --branch, --buildNumber" exit(1) for o, a in opts: if o in ('--test'): buildParams['test'] = True if o in ('--nightly'): buildParams['nightly'] = True if o in ('--dmgbg'): buildParams['osxDmgImage'] = a if o in ('--onlyApp'): buildParams['onlyApp'] = True if o in ('--py2appArgs'): buildParams['py2AppArgs'] = py2AppArgs + a.split() if o in ('--dmgbg'): buildParams['osxDmgImage'] = a if o in ('--target'): buildParams['target'] = a if o in ('--major'): buildParams['major'] = int(a) if o in ('--minor'): buildParams['minor'] = int(a) if o in ('--revision'): buildParams['revision'] = int(a) if o in ('--branch'): buildParams['branch'] = a if o in ('--buildNumber'): buildParams['buildNumber'] = int(a) ###################### # constants buildParams['mainPy'] = "XDM.py" # this should never change buildParams['name'] = "XDM" # this should never change buildParams['majorVersion'] = "BETA" # one day we will change that to BETA :P buildParams['osName'] = getNiceOSString(buildParams)# look in getNiceOSString() for default os nice names """ # maybe some day the git tag is used this might be handy although it might be easier ti use the github lib # dynamic build number and date stuff tagsRaw = subprocess.Popen(["git", "tag"], stdout=subprocess.PIPE).communicate()[0] lastTagRaw = tagsRaw.split("\n")[-2] # current tag e.g. build-### tag = lastTagRaw.split("-")[1] # current tag pretty... change according to tag scheme """ # date stuff buildParams['thisYearString'] = date.today().strftime("%Y") # for the copyright notice buildParams['gitNewestCommit'], buildParams['gitNewestCommitShort'] = getLatestCommitID(buildParams) if not buildParams['branch']: buildParams['branch'] = getBranch(buildParams) buildParams['currentBranch'] = buildParams['branch'] else: buildParams['currentBranch'] = getBranch(buildParams) from xdm import common current_major, current_minor, current_revision, current_build = common.getVersionTuple() if not buildParams['major']: buildParams['major'] = current_major if not buildParams['minor']: buildParams['minor'] = current_minor if not buildParams['revision']: buildParams['revision'] = current_revision if not buildParams['buildNumber']: buildParams['buildNumber'] = current_build OLD_VERSION_CONTENT = None if buildParams['buildNumber']: print "we got a build number", buildParams['buildNumber'] # save old version.py OLD_VERSION_CONTENT = readXDMVersionFile() # write new version.py if not writeXDMVersionFile(buildParams['major'], buildParams['minor'], buildParams['revision'], buildParams['buildNumber']): print 'error while writing the new version file' exit(1) print readXDMVersionFile() # this is the 'branch yy.mm(.dd)' string buildParams['build'] = "%s %s" % (buildParams['branch'], common.getVersionHuman()) # or for nightlys yy.mm.commit if buildParams['nightly']: buildParams['build'] = "%s.%s" % (buildParams['dateVersion'], buildParams['gitNewestCommitShort']) buildParams['packageName'] = "%s-%s-%s" % (buildParams['name'] , buildParams['osName'] , buildParams['build']) # volume name buildParams['packageName'] = buildParams['packageName'].replace(" ", "-") ##################### # clean the build dirs scriptBuild = None scriptDist = None if not buildParams['test']: print "Removing old build dirs ...", # remove old build stuff if os.path.exists('build'): shutil.rmtree('build') if os.path.exists('dist'): shutil.rmtree('dist') # a windows build creats these folder too ... clear them scriptBuild = os.path.join('autoProcessTV', 'build') scriptDist = os.path.join('autoProcessTV', 'dist') if os.path.exists(scriptBuild): shutil.rmtree(scriptBuild) if os.path.exists(scriptDist): shutil.rmtree(scriptDist) # create build dirs acctualy only the dist has to be made manual because the changelog will be writen there os.makedirs('build') # create tmp build dir os.makedirs('dist') # create tmp build dir # TODO: do some real testing and dont just say ok print "ok" ##################### # write changelog #writeChangelog(buildParams) curFancyLogo = "" # os switch if buildParams['osName'] == 'OSX': result = buildOSX(buildParams) curFancyLogo = fancyLogoMac() elif buildParams['osName'] == 'Win': result = buildWIN(buildParams) curFancyLogo = fancyLogoWin() else: print "unknown os/target valid: OSX, Win" result = False if result: # reset version file if OLD_VERSION_CONTENT is not None: print print "########################################" print "Rewriting the old version file" print "########################################" writeXDMVersionFileRaw(OLD_VERSION_CONTENT) # remove the temp build dirs if os.path.exists('build'): shutil.rmtree('build') if scriptBuild and os.path.exists(scriptBuild): shutil.rmtree(scriptBuild) print curFancyLogo print print "########################################" print "Build SUCCESSFUL !!" print "########################################" exit() else: print print "########################################" print "ERROR during build ... i have failed you" print "########################################" exit(1)
def version(): """Returns the XDM version tuple as a list e.g. [0, 4, 13, 0]""" return common.getVersionTuple()
def xdmMeetsVersionRequirement(self): return common.getVersionTuple() >= self.xdm_version