GgitConfig

GgitConfig

Types and Values

Object Hierarchy

    GObject
    ╰── GgitObjectFactoryBase
        ╰── GgitNative
            ╰── GgitConfig

Description

Functions

GgitConfigCallback ()

gint
(*GgitConfigCallback) (GgitConfigEntry *entry,
                       gpointer user_data);

The type of the callback functions for retrieving values from a GgitConfig. See ggit_config_foreach().

Parameters

entry

a GgitConfigEntry.

 

user_data

user-supplied data.

[closure]

Returns

0 to go for the next config value or a GgitError in case there was an error.


GgitConfigMatchCallback ()

gint
(*GgitConfigMatchCallback) (GMatchInfo *match_info,
                            const gchar *value,
                            gpointer user_data);

The type of the callback functions for retrieving values from a GgitConfig using a regular expression. See ggit_config_match_foreach().

Parameters

match_info

the match

 

value

the value

 

user_data

user-supplied data.

[closure]

Returns

0 to go for the next config value or a GgitError in case there was an error.


ggit_config_new ()

GgitConfig *
ggit_config_new (void);

Create a new config. See also ggit_config_get_default() to get a GgitConfig representing the global, XDG and system configuration files. To get a GgitConfig for a repository use ggit_repository_get_config instead.

Returns

a GgitConfig.

[transfer full]


ggit_config_new_default ()

GgitConfig *
ggit_config_new_default (GError **error);

Get the global, XDG and system configuration files merged into one GgitConfig with their appropriate priority levels. If an error occured trying to load the various configuration files, this function will return NULL and error will be set accordingly.

Parameters

error

a GError for error reporting, or NULL.

 

Returns

A GgitConfig.

[transfer none]


ggit_config_new_from_file ()

GgitConfig *
ggit_config_new_from_file (GFile *file,
                           GError **error);

Create a new config from a single on disk file. This is a convenience API and is exactly the same as creating an empty GgitConfig using ggit_config_new and adding the file with ggit_config_add_file. The level will be set to GGIT_CONFIG_LEVEL_LOCAL. If the config could not be loaded this function returns NULL and error will be set accordingly.

Parameters

file

the file to load.

 

error

a GError for error reporting, or NULL.

 

Returns

a GgitConfig.

[transfer full]


ggit_config_find_global ()

GFile *
ggit_config_find_global (void);

Find the file representing the users global git configuration. This file is usually located at $HOME/.gitconfig. This function will try to guess the full path to that file, if the file exists. The returned file may then be used with ggit_config_new_from_file or ggit_config_add_file. This function returns NULL if the global config could not be found.

Returns

a GFile or NULL if the global config could not be found.

[transfer full]


ggit_config_find_system ()

GFile *
ggit_config_find_system (void);

Find the file representing the systems global git configuration. This file is usually located at /etc/gitconfig on UNIX type systems or PROGRAMFILES%\Git\etc\gitconfig on windows. This function will try to guess the full path to that file, if the file exists. The returned file may then be used with ggit_config_new_from_file or ggit_config_add_file. This function returns NULL if the system config could not be found.

Returns

a GFile or NULL if the system config could not be found.

[transfer full]


ggit_config_add_file ()

void
ggit_config_add_file (GgitConfig *config,
                      GFile *file,
                      GgitConfigLevel level,
                      gboolean force,
                      GError **error);

Add an on-disk config file instance to an existing config

The on-disk file pointed at by file will be opened and parsed; it's expected to be a native Git config file following the default Git config syntax (see man git-config).

Further queries on this config object will access each of the config file instances in order (instances with a higher priority level will be accessed first).

Parameters

config

a GgitConfig.

 

file

a GFile.

 

level

a GgitConfigLevel.

 

force

if a config file already exists for the given priority level, replace it.

 

error

a GError for error reporting, or NULL.

 

ggit_config_get_int32 ()

gint32
ggit_config_get_int32 (GgitConfig *config,
                       const gchar *name,
                       GError **error);

Get a int32 configuration value.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

error

a GError for error reporting, or NULL.

 

Returns

the value.


ggit_config_set_int32 ()

gboolean
ggit_config_set_int32 (GgitConfig *config,
                       const gchar *name,
                       gint32 value,
                       GError **error);

Set a int32 value.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

value

the new value.

 

error

a GError for error reporting, or NULL.

 

Returns

TRUE if the value was successfully set, FALSE otherwise.


ggit_config_get_int64 ()

gint64
ggit_config_get_int64 (GgitConfig *config,
                       const gchar *name,
                       GError **error);

Get a int64 configuration value.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

error

a GError for error reporting, or NULL.

 

Returns

the value.


ggit_config_set_int64 ()

gboolean
ggit_config_set_int64 (GgitConfig *config,
                       const gchar *name,
                       gint64 value,
                       GError **error);

Set a int64 value.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

value

the new value.

 

error

a GError for error reporting, or NULL.

 

Returns

TRUE if the value was successfully set, FALSE otherwise.


ggit_config_get_bool ()

gboolean
ggit_config_get_bool (GgitConfig *config,
                      const gchar *name,
                      GError **error);

Get a boolean configuration value.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

error

a GError for error reporting, or NULL.

 

Returns

the value.


ggit_config_set_bool ()

gboolean
ggit_config_set_bool (GgitConfig *config,
                      const gchar *name,
                      gboolean value,
                      GError **error);

Set a boolean value.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

value

the new value.

 

error

a GError for error reporting, or NULL.

 

Returns

TRUE if the value was successfully set, FALSE otherwise.


ggit_config_get_string ()

const gchar *
ggit_config_get_string (GgitConfig *config,
                        const gchar *name,
                        GError **error);

Get the configuration value of name as string.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

error

a GError for error reporting, or NULL.

 

Returns

the string value of name , or NULL if such a value does not exist.

[allow-none]


ggit_config_set_string ()

gboolean
ggit_config_set_string (GgitConfig *config,
                        const gchar *name,
                        const gchar *value,
                        GError **error);

Set a new string value of a configuration.

Parameters

config

a GgitConfig.

 

name

the name of the configuration value.

 

value

the new value.

 

error

a GError for error reporting, or NULL.

 

Returns

TRUE if the value was successfully set, FALSE otherwise.


ggit_config_delete_entry ()

gboolean
ggit_config_delete_entry (GgitConfig *config,
                          const gchar *name,
                          GError **error);

Delete a config variable from the config file.

Parameters

config

a GgitConfig.

 

name

the configuration value.

 

error

a GError for error reporting, or NULL.

 

Returns

TRUE if the configuration value was deleted, FALSE otherwise.


ggit_config_foreach ()

gboolean
ggit_config_foreach (GgitConfig *config,
                     GgitConfigCallback callback,
                     gpointer user_data,
                     GError **error);

Call callback for each configuration value.

Parameters

config

a GgitConfig.

 

callback

a GgitConfigCallback.

[scope call]

user_data

the user data for callback .

[allow-none]

error

a GError for error reporting, or NULL.

 

Returns

TRUE if successfull, FALSE otherwise


ggit_config_match ()

gchar *
ggit_config_match (GgitConfig *config,
                   GRegex *regex,
                   GMatchInfo **match_info,
                   GError **error);

Matches a configuration against a regular expression. match_info will contain the match information if the return value is not NULL, otherwise error will be set.

Parameters

config

a GgitConfig.

 

regex

a GRegex.

 

match_info

a GMatchInfo.

[out][allow-none]

error

a GError for error reporting, or NULL.

 

Returns

the value of that matched configuration.

[allow-none][transfer full]


ggit_config_match_foreach ()

gboolean
ggit_config_match_foreach (GgitConfig *config,
                           GRegex *regex,
                           GgitConfigMatchCallback callback,
                           gpointer user_data,
                           GError **error);

Call callback for all configurations matching regex .

Parameters

config

a GgitConfig.

 

regex

a GRegex.

 

callback

a GgitConfigMatchCallback.

[scope call][closure user_data]

user_data

the user data for callback .

[closure]

error

a GError for error reporting, or NULL.

 

Returns

TRUE if matches were successfull, FALSE otherwise

Types and Values

GgitConfig

typedef struct _GgitConfig GgitConfig;

Represents a git configuration.


enum GgitConfigLevel

Priority level of a config file. These priority levels correspond to the natural escalation logic (from higher to lower) when searching for config entries in git.git.

Members

GGIT_CONFIG_LEVEL_PROGRAMDATA

System-wide on Windows, for compatibility with portable git.

 

GGIT_CONFIG_LEVEL_SYSTEM

System-wide configuration file.

 

GGIT_CONFIG_LEVEL_XDG

XDG compatible configuration file (.config/git/config).

 

GGIT_CONFIG_LEVEL_GLOBAL

User-specific configuration file, also called Global configuration file.

 

GGIT_CONFIG_LEVEL_LOCAL

Repository specific configuration file.

 

GGIT_CONFIG_LEVEL_APP

Application specific configuration file; freely defined by applications.

 

GGIT_CONFIG_LEVEL_HIGHEST

Represents the highest level of a config file.