games_nebula.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:games_nebula 作者: yancharkin 项目源码 文件源码
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)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号