def set_favorite_apps(self, logger): try: launcher_schema = ''' { "launcherList": { "type": "generic", "default": %s }, "allow-dragging": { "type": "checkbox", "default": true, "description": "Allow dragging of launchers" } } ''' % str(self.favorite_apps).replace("'", '"') tmp_fnm = '/tmp/cinnamon-schema.json' dest_fnm = ('/usr/share/cinnamon/applets/' '[email protected]/' 'settings-schema.json') with open(tmp_fnm, 'w') as f: f.write(launcher_schema) subprocess.check_call(['sudo', 'cp', '-f', tmp_fnm, dest_fnm]) except Exception as e: print(e) error_text = 'Failed to set favorite apps' logger.log_error(ApplyError(error_text))
def do_user_setup(self, module_pool, logger, livecd=False): for line in self.root_code: try: subprocess.check_call(line, shell=True) except Exception as e: print(e) error_text = 'Failed to run line `%s` of user code' % line logger.log_error(ApplyError(error_text))
def install_package(self, package, logger, live=False): command = ['yaourt', '-S', package, '--noconfirm', '--needed'] try: subprocess.check_call(command) except Exception as e: if live: print(e) error_text = 'Installing package `%s` failed' % package logger.log_error(ApplyError(error_text)) else: try: subprocess.check_call( ['yaourt', '-S', package, '--needed']) except Exception as e: print(e) error_text = 'Installing package `%s` failed' % package logger.log_error(ApplyError(error_text))
def install_user_vimrc(self, logger): vimrc = '\n'.join(self.vimrc) try: with open(os.path.expanduser('~/.vimrc'), 'w') as f: f.write(vimrc) except Exception as e: print(e) error_text = 'Failed to install user vimrc' logger.log_error(ApplyError(error_text))
def enable_service(self, service, logger): enable = ['/usr/bin/sudo', 'systemctl', 'enable', service] start = ['/usr/bin/sudo', 'systemctl', 'start', service] try: subprocess.check_call(enable) subprocess.check_call(start) except Exception as e: print(e) error_text = 'Enabling service `%s` failed' % service logger.log_error(ApplyError(error_text))
def get_installed_packages(self, logger): try: packages_str = subprocess.check_output(['sudo', 'pacman', '-Qq']) except Exception as e: print(e) error_text = 'Failed to check installed packages' logger.log_error(ApplyError(error_text)) packages = packages_str.splitlines() for i, package in enumerate(packages): packages[i] = package.decode('utf-8') return packages
def set_wallpaper(self, logger): try: fnm = self.resolve_and_download(self.wallpaper_uri, '/usr/share/backgrounds/gnome/%s') self.run_cmd([ 'gsettings', 'set', 'org.mate.background', 'picture-uri', '"%s"' % fnm]) except Exception as e: print(e) error_text = 'Failed to set wallpaper %s' % self.wallpaper_uri logger.log_error(ApplyError(error_text))
def install_plugin_manager(self, mode, logger): if self.plugin_manager == 'pathogen': assert mode in ['root', 'user'] try: if mode == 'root': self.install_root_pathogen(logger) elif mode == 'user': self.install_user_pathogen(logger) except Exception as e: print(e) error_text = 'Failed to install vim plugin manager pathogen' logger.log_error(ApplyError(error_text))
def install_root_vimrc_at(self, base_dir, vimrc, logger): tmp_fnm = '/tmp/.vimrc_temp' with open(tmp_fnm, 'w') as f: f.write(vimrc) try: subprocess.check_call([ 'sudo', 'cp', '-f', tmp_fnm, os.path.join(base_dir, '.vimrc') ]) except Exception as e: print(e) error_text = 'Failed to install vimrc at %s' % base_dir logger.log_error(ApplyError(error_text))
def install_plugin(self, plugin_repo, mode, logger): if self.plugin_manager == 'pathogen': assert mode in ['root', 'user'] try: if mode == 'root': self.install_root_pathogen_plugin(plugin_repo, logger) elif mode == 'user': self.install_user_pathogen_plugin(plugin_repo, logger) except Exception as e: print(e) error_text = ('Failed to install vim plugin from repo' '`%s` for %s' % (plugin_repo, mode)) logger.log_error(ApplyError(error_text))
def set_icon_theme(self, logger): try: fnm = self.resolve_and_download(self.icon_theme, '/usr/share/icons/%s', processor=self.sudo_unzip) icon_theme = os.path.basename(fnm) self.run_cmd([ 'gsettings', 'set', 'org.mate.interface', 'icon-theme', '"%s"' % icon_theme]) except Exception as e: print(e) error_text = 'Failed to enable icon theme %s' % self.icon_theme logger.log_error(ApplyError(error_text))
def set_shell_theme(self, logger): try: fnm = self.resolve_and_download(self.shell_theme, '/usr/share/themes/%s', processor=self.sudo_unzip) shell_theme = os.path.basename(fnm) self.run_cmd([ 'gsettings', 'set', 'org.cinnamon.theme', 'name', '"%s"' % shell_theme ]) except Exception as e: print(e) error_text = 'Failed to enable shell theme %s' % self.shell_theme logger.log_error(ApplyError(error_text))
def set_misc_cinnamon(self, logger): try: if self.button_layout: self.run_cmd([ 'gsettings', 'set', 'org.cinnamon.desktop.wm.preferences', 'button-layout', '"%s"' % self.button_layout]) self.run_cmd([ 'gsettings', 'set', 'org.cinnamon.settings-daemon.plugins.xsettings', 'overrides', '{\'Gtk/DecorationLayout\': <\'%s\'>}' % self.button_layout]) except Exception as e: print(e) error_text = 'Failed to set misc cinnamon settings' logger.log_error(ApplyError(error_text))
def set_gtk_theme(self, logger): try: fnm = self.resolve_and_download(self.gtk_theme, '/usr/share/themes/%s', processor=self.sudo_unzip) gtk_theme = os.path.basename(fnm) self.run_cmd([ 'gsettings', 'set', 'org.cinnamon.desktop.interface', 'gtk-theme', '"%s"' % gtk_theme ]) self.run_cmd([ 'gsettings', 'set', 'org.cinnamon.desktop.wm.preferences', 'theme', '"%s"' % gtk_theme ]) except Exception as e: print(e) error_text = 'Failed to enable gtk theme %s' % self.gtk_theme logger.log_error(ApplyError(error_text))