def install_locally_required_files(): source_share_folder = resources.get_data_file_path() if not source_share_folder: logger.warning( "Cannot find repository required for installation of icons and gtksourceview styles" ) for folder in ["gtksourceview-3.0", "icons"]: try: logger.info("Copying '{}' files...".format(folder)) copy_tree(join(source_share_folder, folder), join(resources.xdg_user_data_folder, folder), update=1) except IOError as e: logger.error("Could not copy '{}' files: {}".format( folder, str(e))) if is_custom_design_enabled(): try: logger.info( "Copying custom design files '{}' files...".format(folder)) copy_tree( global_design_config.get_config_value("SOURCE_VIEW_FOLDER"), join(resources.xdg_user_data_folder, "gtksourceview-3.0"), update=1) copy_tree(global_design_config.get_config_value("ICONS_FOLDER"), join(resources.xdg_user_data_folder, "icons"), update=1) except IOError as e: logger.error("Could not copy '{}' files: {}".format( folder, str(e)))
def install_fonts(restart=False): # do not import from rafcon.gui.constants, as this script can be used standalone font_names_to_be_installed = [ "SourceSansPro", "FontAwesome5Free", "RAFCON" ] user_otf_fonts_folder = join(resources.xdg_user_data_folder, "fonts") font_installed = False try: for font_name in font_names_to_be_installed: # A font is a folder one or more font faces rel_font_folder = join("type1", font_name) fonts_folder = resources.get_data_file_path( "fonts", rel_font_folder) num_faces_to_be_installed = len([ name for name in os.listdir(fonts_folder) if name.endswith(".otf") ]) num_faces_installed = installed_font_faces_for_font(font_name) if num_faces_to_be_installed <= num_faces_installed: logger.debug("Font '{0}' already installed".format(font_name)) continue specific_user_otf_fonts_folder = join(user_otf_fonts_folder, rel_font_folder) logger.info("Installing font '{0}' to {1}".format( font_name, specific_user_otf_fonts_folder)) copy_tree(fonts_folder, specific_user_otf_fonts_folder, update=1) font_installed = True except IOError as e: logger.error("Could not install fonts, IOError: {}".format(e)) return if font_installed: logger.info("Running font detection ...") if not update_font_cache(user_otf_fonts_folder): logger.warning( "Could not run font detection using 'fc-cache'. RAFCON might not find the correct fonts." ) if restart: python = sys.executable environ = dict(**os.environ) # Passing this to the new RAFCON environment will prevent further checks and thus restarts environ["RAFCON_CHECK_INSTALLATION"] = "False" args_and_env = list(sys.argv) args_and_env.append(environ) logger.info("Restarting RAFCON ...") os.execle(python, python, *args_and_env)
def install_locally_required_files(): source_share_folder = resources.get_data_file_path() if not source_share_folder: logger.warning( "Cannot find repository required for installation of icons and gtksourceview styles" ) for folder in ["gtksourceview-3.0", "icons"]: try: logger.info("Copying '{}' files...".format(folder)) copy_tree(join(source_share_folder, folder), join(resources.xdg_user_data_folder, folder), update=1) except IOError as e: logger.error("Could not copy '{}' files: {}".format( folder, str(e)))
def setup_environment(): """Ensures that the environmental variable RAFCON_LIB_PATH is existent """ # The RAFCON_LIB_PATH points to a path with common RAFCON libraries # If the env variable is not set, we have to determine it. if not os.environ.get('RAFCON_LIB_PATH', None): rafcon_library_path = resources.get_data_file_path("rafcon", "libraries") if rafcon_library_path: os.environ['RAFCON_LIB_PATH'] = rafcon_library_path else: logger.warning( "Could not find root directory of RAFCON libraries. Please specify manually using the " "env var RAFCON_LIB_PATH") # Install dummy _ builtin function in case i18.setup_l10n() is not called import builtins as builtins23 if "_" not in builtins23.__dict__: builtins23.__dict__["_"] = lambda s: s
def get_theme_path(self): return get_data_file_path("themes", "RAFCON")