Exemple #1
0
def match_platform(arch):
    "Match given architecture with OS"
    if platform() == 'darwin' or platform() == 'osx':
        if arch.find('osx') != -1:
            return True
    elif platform() == 'linux':
        if arch.find('slc') != -1:
            return True
    return False
Exemple #2
0
def match_platform(arch):
    "Match given architecture with OS"
    if  platform() == 'darwin' or platform() == 'osx':
        if arch.find('osx') != -1:
            return True
    elif platform() == 'linux':
        if  arch.find('slc') != -1:
            return True
    return False
Exemple #3
0
def cms_install(rel):
    """
    cmssh command to install given CMSSW release.
    Examples:
        cmssh> install CMSSW_5_2_4
    """
    rel = rel.strip()
    pat = pat_release
    if  not pat.match(rel):
        msg  = 'Fail to validate release name "%s"' % rel
        print_error(msg)
        msg  = 'Please check the you provide correct release name,'
        msg += ' e.g. CMSSW_X_Y_Z<_patchN>'
        print msg
        return

    # check if we have stand-alone installation
    if  os.environ.get('CMSSH_CMSSW', None):
        msg  = '\nYou are not allowed to install new release, '
        msg += 'since cmssh was installed with system CMSSW install area'
        print msg
        return

    # check if given release/architecture is in place
    status = check_release_arch(rel)
    if  status != 'ok':
        msg = '\nCheck release architecture status: %s' % status
        print msg
        return

    print "Searching for %s" % rel
    script = get_apt_init(os.environ['SCRAM_ARCH'])
    cmd = 'source %s; apt-cache search %s | grep -v -i fwlite' % (script, rel)
    run(cmd)
    if  rel.lower().find('patch') != -1:
        print "Installing cms+cmssw-patch+%s ..." % rel
        cmd = 'source %s; apt-get install cms+cmssw-patch+%s' % (script, rel)
    else:
        print "Installing cms+cmssw+%s ..." % rel
        cmd = 'source %s; apt-get install cms+cmssw+%s' % (script, rel)
    subprocess.call(cmd, shell=True) # use subprocess due to apt-get interactive feature
    if  platform() == 'osx':
        idir = '%s/%s/cms/cmssw/%s' \
                % (os.environ['VO_CMS_SW_DIR'], os.environ['SCRAM_ARCH'], rel)
        fix_so(idir)
    print "Create user area for %s release ..." % rel
    cmsrel(rel)
Exemple #4
0
def cms_releases(arg=None):
    """
    List available CMS releases. Optional parameters either <list> or <all>
    Examples:
        cmssh> releases      # show installed CMSSW releases
        cmssh> releases list # list available CMSSW releases on given platform
        cmssh> releases all  # show all known CMS releases, including online, tests, etc.
    """
    if arg:
        print "CMSSW releases for %s platform" % platform()
        res = release_info(release=None, rfilter=arg)
        RESMGR.assign(res)
        releases = [str(r) for r in res]
        releases = list(set(releases))
        releases.sort()
        for rel in releases:
            print rel
    installed_releases()
Exemple #5
0
def cms_releases(arg=None):
    """
    List available CMS releases. Optional parameters either <list> or <all>
    Examples:
        cmssh> releases      # show installed CMSSW releases
        cmssh> releases list # list available CMSSW releases on given platform
        cmssh> releases all  # show all known CMS releases, including online, tests, etc.
    """
    if  arg:
        print "CMSSW releases for %s platform" % platform()
        res = release_info(release=None, rfilter=arg)
        RESMGR.assign(res)
        releases = [str(r) for r in res]
        releases = list(set(releases))
        releases.sort()
        for rel in releases:
            print rel
    installed_releases()