Logo Search packages:      
Sourcecode: cairo-dock version File versions

gchar* cairo_dock_check_conf_file_exists ( gchar *  cUserDataDirName,
gchar *  cShareDataDir,
gchar *  cConfFileName 
)

Verifie que le fichier de conf d'un plug-in est bien present dans le repertoire utilisateur du plug-in, sinon le copie a partir du fichier de conf fournit lors de l'installation. Cree au besoin le repertoire utilisateur du plug-in.

Parameters:
cUserDataDirName le nom du repertoire utilisateur du plug-in.
cShareDataDir le chemin du repertoire d'installation du plug-in.
cConfFileName : le nom du fichier de conf fournit a l'installation.
Returns:
Le chemin du fichier de conf en espace utilisateur, ou NULL si le fichier n'a pu etre ni trouve, ni cree.

Definition at line 34 of file cairo-dock-applet-facility.c.

{
      if (cConfFileName == NULL)
            return NULL;
      
      gchar *cUserDataDirPath = g_strdup_printf ("%s/plug-ins/%s", g_cCurrentThemePath, cUserDataDirName);
      if (! g_file_test (cUserDataDirPath, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))
      {
            cd_message ("directory %s doesn't exist, it will be added.", cUserDataDirPath);
            
            gchar *command = g_strdup_printf ("mkdir -p %s", cUserDataDirPath);
            system (command);
            g_free (command);
      }
      
      gchar *cConfFilePath = g_strdup_printf ("%s/%s", cUserDataDirPath, cConfFileName);
      if (! g_file_test (cConfFilePath, G_FILE_TEST_EXISTS))
      {
            gchar *command = g_strdup_printf ("cp %s/%s %s", cShareDataDir, cConfFileName, cConfFilePath);
            system (command);
            g_free (command);
      }
      
      if (! g_file_test (cConfFilePath, G_FILE_TEST_EXISTS))  // la copie ne s'est pas bien passee.
      {
            cd_warning ("Attention : couldn't copy %s/%s in %s; check permissions and file's existence", cShareDataDir, cConfFileName, cUserDataDirPath);
            g_free (cUserDataDirPath);
            g_free (cConfFilePath);
            return NULL;
      }
      
      g_free (cUserDataDirPath);
      return cConfFilePath;
}


Generated by  Doxygen 1.6.0   Back to index