Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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
Example #4
0
    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
Example #5
0
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)
Example #6
0
def version():
    """Returns the XDM version tuple as a list e.g. [0, 4, 13, 0]"""
    return common.getVersionTuple()
Example #7
0
 def xdmMeetsVersionRequirement(self):
     return common.getVersionTuple() >= self.xdm_version
Example #8
0
 def xdmMeetsVersionRequirement(self):
     return common.getVersionTuple() >= self.xdm_version
Example #9
0
def version():
    """Returns the XDM version tuple as a list e.g. [0, 4, 13, 0]"""
    return common.getVersionTuple()