Example #1
0
def copy_template_file(fips_dir, proj_dir, filename, values, silent=False) :
    """copy a template file from fips/templates to the project 
    directory and replace template values (e.g. the project name),
    ask for user permission if files exist

    :param fips_dir:    absolute fips directory
    :param proj_dir:    absolute project directory
    :param filename:    filename to copy from fips/templates
    :param values:      template key/value dictionary
    :param silent:      if True, overwrite existing file and don't print status
    :returns:           True file overwritten, False on not overwritten
    """
    
    src_path = fips_dir + '/templates/' + filename
    dst_path = proj_dir + '/' + filename

    if not os.path.isfile(src_path) :
        log.error("template src file '{}' doesn't exist".format(src_path))
    
    if not silent :
        if os.path.isfile(dst_path) :
            if not util.confirm("overwrite '{}'?".format(dst_path)) :
                log.info("skipping '{}'".format(dst_path))
                return False

    content = None
    with open(src_path, 'r') as f :
        content = f.read()
    content = Template(content).substitute(values)
    with open(dst_path, 'w') as f :
        f.write(content)

    if not silent :
        log.info("wrote '{}'".format(dst_path))
    return True
Example #2
0
def remove_old_sdks(fips_dir):
    # this checks for any "old" SDKs and removes them
    old_sdk_path = get_sdkroot_dir(fips_dir) + '/' + util.get_host_platform()
    if os.path.isdir(old_sdk_path):
        if util.confirm(log.RED + "Delete obsolete emscripten SDK in '{}'?".format(old_sdk_path) + log.DEF):
            log.info("Deleting '{}'...".format(old_sdk_path))
            shutil.rmtree(old_sdk_path, onerror=remove_readonly)
        else:
            log.info("'No' selected, nothing deleted")
Example #3
0
def uninstall(fips_dir):
    log.colored(log.YELLOW, "=== uninstalling WASI SDK")
    if sdk_dir_exists(fips_dir):
        sdk_dir = get_sdk_dir(fips_dir)
        if util.confirm(log.RED + "Delete directory '{}?".format(sdk_dir) +
                        log.DEF):
            log.info("Deleting '{}'...".format(sdk_dir))
            shutil.rmtree(sdk_dir)
        else:
            log.info("'No' selected, nothing deleted")
    else:
        log.warn("WASI SDK is not installed, nothing to do")
Example #4
0
def uninstall(fips_dir):
    emsdk_dir = get_emsdk_dir(fips_dir)
    log.colored(log.YELLOW, "=== uninstalling emscripten SDK".format(emsdk_dir))
    # check for any "old" SDK installation
    remove_old_sdks(fips_dir)
    if emsdk_dir_exists(fips_dir):
        if util.confirm(log.RED + "Delete emsdk directory at '{}'?".format(emsdk_dir) + log.DEF):
            log.info("Deleting '{}'...".format(emsdk_dir))
            shutil.rmtree(emsdk_dir, onerror=remove_readonly)
        else:
            log.info("'No' selected, nothing deleted")
    else:
        log.warn('emscripten SDK is not installed, nothing to do')
Example #5
0
def uninstall(fips_dir):
    log.colored(log.YELLOW,
                "=== uninstalling Dawn SDK".format(get_sdk_dir(fips_dir)))
    sdk_dir = get_sdk_dir(fips_dir)
    if os.path.isdir(sdk_dir):
        if util.confirm(log.RED +
                        "Delete Dawn SDK directory at '{}'?".format(sdk_dir) +
                        log.DEF):
            log.info("Deleting '{}'...".format(sdk_dir))
            shutil.rmtree(sdk_dir)
        else:
            log.info("'No' selected, nothing deleted")
    else:
        log.warn('Dawn SDK is not installed, nothing to do')
Example #6
0
File: clion.py Project: yazici/fips
def cleanup(fips_dir, proj_dir):
    '''deletes the .idea directory'''
    clion_dir = proj_dir + '/.idea'
    if os.path.isdir(clion_dir):
        log.info(log.RED + 'Please confirm to delete the following directory:' + log.DEF)
        log.info('  {}'.format(clion_dir))
        if util.confirm(log.RED + 'Delete this directory?' + log.DEF):
            if os.path.isdir(clion_dir):
                log.info('  deleting {}'.format(clion_dir))
                shutil.rmtree(clion_dir)
            log.info('Done.')
        else:
            log.info('Nothing deleted, done.')
    else:
        log.info('Nothing to delete.')
Example #7
0
def cleanup(fips_dir, proj_dir):
    '''goes through all dependencies and deletes the .vscode directory'''
    # fetch all project dependencies
    success, impex = dep.get_all_imports_exports(fips_dir, proj_dir)
    if not success :
        log.warn("missing import project directories, please run 'fips fetch'")
    log.info(log.RED + 'Please confirm to delete the following directories:' + log.DEF)
    for dep_proj_name in reversed(impex):
        dep_proj_dir = util.get_project_dir(fips_dir, dep_proj_name)
        vscode_dir = dep_proj_dir + '/.vscode/'
        if os.path.isdir(vscode_dir):
            log.info('  {}'.format(vscode_dir))
    if util.confirm(log.RED + 'Delete those directories?' + log.DEF):
        for dep_proj_name in reversed(impex):
            dep_proj_dir = util.get_project_dir(fips_dir, dep_proj_name)
            vscode_dir = dep_proj_dir + '/.vscode/'
            if os.path.isdir(vscode_dir):
                log.info('  deleting {}'.format(vscode_dir))
                shutil.rmtree(vscode_dir)
        log.info('Done.')
    else:
        log.info('Nothing deleted, done.')
Example #8
0
def cleanup(fips_dir, proj_dir):
    '''goes through all dependencies and deletes the .vscode directory'''
    # fetch all project dependencies
    success, impex = dep.get_all_imports_exports(fips_dir, proj_dir)
    if not success :
        log.warn("missing import project directories, please run 'fips fetch'")
    log.info(log.RED + 'Please confirm to delete the following directories:' + log.DEF)
    for dep_proj_name in reversed(impex):
        dep_proj_dir = util.get_project_dir(fips_dir, dep_proj_name)
        vscode_dir = dep_proj_dir + '/.vscode/'
        if os.path.isdir(vscode_dir):
            log.info('  {}'.format(vscode_dir))
    if util.confirm(log.RED + 'Delete those directories?' + log.DEF):
        for dep_proj_name in reversed(impex):
            dep_proj_dir = util.get_project_dir(fips_dir, dep_proj_name)
            vscode_dir = dep_proj_dir + '/.vscode/'
            if os.path.isdir(vscode_dir):
                log.info('  deleting {}'.format(vscode_dir))
                shutil.rmtree(vscode_dir)
        log.info('Done.')
    else:
        log.info('Nothing deleted, done.')