def mylib_install_game(self, game_name):
if not self.queue_tab_exists():
self.append_queue_tab()
if not os.path.exists(self.mylib_install_dir):
os.makedirs(self.mylib_install_dir)
game_dir = self.mylib_install_dir + '/' + game_name
if not os.path.exists(game_dir):
os.makedirs(game_dir)
self.mylib_tab_progressbar.set_text(_("Installing..."))
self.set_environ(game_name, self.mylib_download_dir, self.mylib_install_dir)
os.environ['KEEP_INSTALLERS'] = str(self.mylib_keep_installers)
autosetup.autosetup('mylib', self.mylib_install_dir, game_name)
settings_py_path = os.getenv('HOME') + '/.games_nebula/scripts/mylib/' + game_name + '/settings.py'
if os.path.exists(settings_py_path):
os.system('cp ' + settings_py_path + ' ' + game_dir)
os.system('echo "Writing settings.sh"')
settings_lines = ['#!/bin/bash\n',
'python2 "$INSTALL_DIR/' + game_name + '/settings.py"']
settings_file = open(game_dir + '/settings.sh', 'w')
for line in settings_lines:
settings_file.write(line)
settings_file.close()
os.system('chmod +x ' + game_dir + '/settings.sh')
if self.own_prefix:
config_file = open(game_dir + '/config.ini', 'w')
config_file.write('[Settings]\n')
config_file.write('own_prefix = True')
config_file.close()
command = [data_dir + '/scripts/mylib/' + game_name + '/setup']
mylib_name_to_pid_install_dict[game_name], stdin, stdout, stderr = GLib.spawn_async(command,
flags=GLib.SpawnFlags.SEARCH_PATH|GLib.SpawnFlags.DO_NOT_REAP_CHILD,
standard_output=True,
standard_error=True)
io = GLib.IOChannel(stdout)
self.source_id_out = io.add_watch(GLib.IO_IN|GLib.IO_HUP,
self.watch_process,
'mylib_install_game',
priority=GLib.PRIORITY_HIGH)
评论列表
文章目录