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))
예제 #3
0
 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))
예제 #4
0
 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))
예제 #6
0
 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
예제 #7
0
 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))
예제 #8
0
 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))
예제 #9
0
 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))
예제 #10
0
 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))
예제 #11
0
 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))
예제 #13
0
 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))