def make_launcher(self): #if main_config.skip_mame_non_working_software: # if self.metadata.specific_info.get('MAME Emulation Status', EmulationStatus.Unknown) == EmulationStatus.Broken: # raise EmulationNotSupportedException('Not supported') #TODO Have option to skip if not working launch_params = LaunchCommand('mame', self.platform.get_launch_params(self)) make_launcher(launch_params, self.software.description, self.metadata, 'MAME software', self.id)
def _make_exe_launcher(self, flavour: Optional[str], exe_path: Path, windows_info: Optional[Mapping]): metadata = copy.deepcopy(self.metadata) executable_name = exe_path.name metadata.specific_info['Executable Name'] = executable_name extension = exe_path.suffix if extension: metadata.specific_info['Extension'] = extension[1:].lower() metadata.specific_info['Executable Type'] = flavour #This shouldn't really happen, but sometimes the platform field in upload in the receipt is inaccurate #Pretend Mac doesn't exist if not flavour: print('dang this got no flavour', self.path) #I don't think this happens return if flavour in {'script', 'linux'}: metadata.platform = 'Linux' elif flavour.startswith('windows'): metadata.platform = 'Windows' elif flavour == 'jar': metadata.platform = 'Java' #That will do elif flavour == 'html': metadata.platform = 'HTML' elif flavour == 'love': metadata.platform = 'LOVE' if exe_path.is_file(): #Might be a folder if Mac, I guess add_metadata_for_raw_exe(str(exe_path), self.metadata) if 'icon' not in metadata.images: icon = look_for_icon_for_file(exe_path) if icon: metadata.images['Icon'] = icon params = get_launch_params(flavour, exe_path, windows_info) if not params: if main_config.debug and flavour not in ('app-macos', 'macos'): print(self.path, 'Not dealing with', flavour, exe_path, self.platforms, self.metadata.platform, 'yet') return if params[1]: metadata.emulator_name = params[1] make_launcher(params[0], self.name, metadata, 'itch.io', str(self.path))
def make_launcher(self, task: GOGTask): emulator_name, params = self.get_launcher_params(task) if not params: return if not task.path: #It already won't be, just satisfying automated code checkers return task_metadata = copy.deepcopy(self.metadata) if task.category == 'tool': task_metadata.categories = ('Applications', ) task_metadata.emulator_name = emulator_name if task.compatibility_flags: task_metadata.specific_info[ 'Compatibility Flags'] = task.compatibility_flags if task.is_dosbox and emulator_name != 'DOSBox': task_metadata.specific_info['Wrapper'] = 'DOSBox' if task.is_scummvm and emulator_name != 'ScummVM': task_metadata.specific_info['Wrapper'] = 'ScummVM' if task.is_residualvm and emulator_name != 'ScummVM': task_metadata.specific_info['Wrapper'] = 'ResidualVM' executable_name = os.path.basename(task.path) task_metadata.specific_info['Executable Name'] = executable_name if os.path.extsep in executable_name: task_metadata.specific_info['Extension'] = executable_name.rsplit( os.path.extsep, 1)[-1].lower() if not (task.is_dosbox or task.is_scummvm or task.is_residualvm): exe_path = _find_subpath_case_insensitive(self.folder, task.path) exe_icon = pc_common_metadata.get_icon_inside_exe(str(exe_path)) if exe_icon: task_metadata.images['Icon'] = exe_icon pc_common_metadata.add_metadata_for_raw_exe( str(exe_path), task_metadata) name = self.name if task.name: if task.is_probably_subtask: if task.name.startswith(self.original_name): name = task.name.replace(self.original_name, self.name) else: name += ' ({0})'.format(task.name) else: name = name_utils.fix_name(task.name) make_launcher(params, name, task_metadata, 'GOG', str(self.folder))
def make_launcher(self) -> None: params = LaunchCommand('steam', ['steam://rungameid/{0}'.format(self.appid)]) make_launcher(params, self.name, self.metadata, 'Steam', str(self.appid))
def make_launcher(self) -> None: params = LaunchCommand(str(self.start_script), [], working_directory=str(self.folder)) make_launcher(params, self.name, self.metadata, 'GOG', str(self.folder))