Struct git2::Config

source ·
pub struct Config { /* private fields */ }
Expand description

A structure representing a git configuration key/value store

Implementations§

source§

impl Config

source

pub fn new() -> Result<Config, Error>

Allocate a new configuration object

This object is empty, so you have to add a file to it before you can do anything with it.

source

pub fn open(path: &Path) -> Result<Config, Error>

Create a new config instance containing a single on-disk file

source

pub fn open_default() -> Result<Config, Error>

Open the global, XDG and system configuration files

Utility wrapper that finds the global, XDG and system configuration files and opens them into a single prioritized config object that can be used when accessing default config data outside a repository.

source

pub fn find_global() -> Result<PathBuf, Error>

Locate the path to the global configuration file

The user or global configuration file is usually located in $HOME/.gitconfig.

This method will try to guess the full path to that file, if the file exists. The returned path may be used on any method call to load the global configuration file.

This method will not guess the path to the XDG compatible config file (.config/git/config).

source

pub fn find_system() -> Result<PathBuf, Error>

Locate the path to the system configuration file

If /etc/gitconfig doesn’t exist, it will look for %PROGRAMFILES%

source

pub fn find_xdg() -> Result<PathBuf, Error>

Locate the path to the global XDG compatible configuration file

The XDG compatible configuration file is usually located in $HOME/.config/git/config.

source

pub fn add_file( &mut self, path: &Path, level: ConfigLevel, force: bool ) -> Result<(), Error>

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

The on-disk file pointed at by path 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).

source

pub fn remove(&mut self, name: &str) -> Result<(), Error>

Delete a config variable from the config file with the highest level (usually the local one).

source

pub fn remove_multivar(&mut self, name: &str, regexp: &str) -> Result<(), Error>

Remove multivar config variables in the config file with the highest level (usually the local one).

The regular expression is applied case-sensitively on the value.

source

pub fn get_bool(&self, name: &str) -> Result<bool, Error>

Get the value of a boolean config variable.

All config files will be looked into, in the order of their defined level. A higher level means a higher priority. The first occurrence of the variable will be returned here.

source

pub fn get_i32(&self, name: &str) -> Result<i32, Error>

Get the value of an integer config variable.

All config files will be looked into, in the order of their defined level. A higher level means a higher priority. The first occurrence of the variable will be returned here.

source

pub fn get_i64(&self, name: &str) -> Result<i64, Error>

Get the value of an integer config variable.

All config files will be looked into, in the order of their defined level. A higher level means a higher priority. The first occurrence of the variable will be returned here.

source

pub fn get_str(&self, name: &str) -> Result<&str, Error>

Get the value of a string config variable.

This is the same as get_bytes except that it may return Err if the bytes are not valid utf-8.

This method will return an error if this Config is not a snapshot.

source

pub fn get_bytes(&self, name: &str) -> Result<&[u8], Error>

Get the value of a string config variable as a byte slice.

This method will return an error if this Config is not a snapshot.

source

pub fn get_string(&self, name: &str) -> Result<String, Error>

Get the value of a string config variable as an owned string.

All config files will be looked into, in the order of their defined level. A higher level means a higher priority. The first occurrence of the variable will be returned here.

An error will be returned if the config value is not valid utf-8.

source

pub fn get_path(&self, name: &str) -> Result<PathBuf, Error>

Get the value of a path config variable as an owned PathBuf.

A leading ‘~’ will be expanded to the global search path (which defaults to the user’s home directory but can be overridden via raw::git_libgit2_opts.

All config files will be looked into, in the order of their defined level. A higher level means a higher priority. The first occurrence of the variable will be returned here.

source

pub fn get_entry(&self, name: &str) -> Result<ConfigEntry<'_>, Error>

Get the ConfigEntry for a config variable.

source

pub fn entries(&self, glob: Option<&str>) -> Result<ConfigEntries<'_>, Error>

Iterate over all the config variables

If glob is Some, then the iterator will only iterate over all variables whose name matches the pattern.

The regular expression is applied case-sensitively on the normalized form of the variable name: the section and variable parts are lower-cased. The subsection is left unchanged.

Due to lifetime restrictions, the returned value does not implement the standard Iterator trait. See ConfigEntries for more.

§Example
use git2::Config;

let cfg = Config::new().unwrap();

let mut entries = cfg.entries(None).unwrap();
while let Some(entry) = entries.next() {
    let entry = entry.unwrap();
    println!("{} => {}", entry.name().unwrap(), entry.value().unwrap());
}
source

pub fn multivar( &self, name: &str, regexp: Option<&str> ) -> Result<ConfigEntries<'_>, Error>

Iterate over the values of a multivar

If regexp is Some, then the iterator will only iterate over all values which match the pattern.

The regular expression is applied case-sensitively on the normalized form of the variable name: the section and variable parts are lower-cased. The subsection is left unchanged.

Due to lifetime restrictions, the returned value does not implement the standard Iterator trait. See ConfigEntries for more.

source

pub fn open_global(&mut self) -> Result<Config, Error>

Open the global/XDG configuration file according to git’s rules

Git allows you to store your global configuration at $HOME/.config or $XDG_CONFIG_HOME/git/config. For backwards compatibility, the XDG file shouldn’t be used unless the use has created it explicitly. With this function you’ll open the correct one to write to.

source

pub fn open_level(&self, level: ConfigLevel) -> Result<Config, Error>

Build a single-level focused config object from a multi-level one.

The returned config object can be used to perform get/set/delete operations on a single specific level.

source

pub fn set_bool(&mut self, name: &str, value: bool) -> Result<(), Error>

Set the value of a boolean config variable in the config file with the highest level (usually the local one).

source

pub fn set_i32(&mut self, name: &str, value: i32) -> Result<(), Error>

Set the value of an integer config variable in the config file with the highest level (usually the local one).

source

pub fn set_i64(&mut self, name: &str, value: i64) -> Result<(), Error>

Set the value of an integer config variable in the config file with the highest level (usually the local one).

source

pub fn set_multivar( &mut self, name: &str, regexp: &str, value: &str ) -> Result<(), Error>

Set the value of an multivar config variable in the config file with the highest level (usually the local one).

The regular expression is applied case-sensitively on the value.

source

pub fn set_str(&mut self, name: &str, value: &str) -> Result<(), Error>

Set the value of a string config variable in the config file with the highest level (usually the local one).

source

pub fn snapshot(&mut self) -> Result<Config, Error>

Create a snapshot of the configuration

Create a snapshot of the current state of a configuration, which allows you to look into a consistent view of the configuration for looking up complex values (e.g. a remote, submodule).

source

pub fn parse_bool<S: IntoCString>(s: S) -> Result<bool, Error>

Parse a string as a bool.

Interprets “true”, “yes”, “on”, 1, or any non-zero number as true. Interprets “false”, “no”, “off”, 0, or an empty string as false.

source

pub fn parse_i32<S: IntoCString>(s: S) -> Result<i32, Error>

Parse a string as an i32; handles suffixes like k, M, or G, and multiplies by the appropriate power of 1024.

source

pub fn parse_i64<S: IntoCString>(s: S) -> Result<i64, Error>

Parse a string as an i64; handles suffixes like k, M, or G, and multiplies by the appropriate power of 1024.

Trait Implementations§

source§

impl Drop for Config

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Config

§

impl !Send for Config

§

impl !Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.