parse-git-config

Parse
.git/config
into a JavaScript object. sync or async.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install
Install with npm:
$ npm install --save parse-git-config
Usage
const parse = require('parse-git-config');
// sync
console.log(parse.sync());
// using async/await
(async () => console.log(await parse()))();
Options
cwd
The starting directory to search from.
Type: string
Default: process.cwd()
(current working directory)
path
Either the absolute path to .git config
, or the path relative to the current working directory.
Type: string
Default: .git/config
Examples config object
Parsed config object will look something like:
{ core:
{ repositoryformatversion: '0',
filemode: true,
bare: false,
logallrefupdates: true,
ignorecase: true,
precomposeunicode: true },
'remote "origin"':
{ url: 'https://github.com/jonschlinkert/parse-git-config.git',
fetch: '+refs/heads/*:refs/remotes/origin/*' },
'branch "master"': { remote: 'origin', merge: 'refs/heads/master', ... } }
API
parse
Asynchronously parse a .git/config
file. If only the callback is passed, the .git/config
file relative to process.cwd()
is used.
Params
options
{Object|String|Function}: Options withcwd
orpath
, the cwd to use, or the callback function.callback
{Function}: callback function if the first argument is options or cwd.returns
{Object}
Example
parse((err, config) => {
if (err) throw err;
// do stuff with config
});
// or, using async/await
(async () => {
console.log(await parse());
console.log(await parse({ cwd: 'foo' }));
console.log(await parse({ cwd: 'foo', path: 'some/.git/config' }));
})();
.sync
Synchronously parse a .git/config
file. If no arguments are passed, the .git/config
file relative to process.cwd()
is used.
Params
options
{Object|String}: Options withcwd
orpath
, or the cwd to use.returns
{Object}
Example
console.log(parse.sync());
console.log(parse.sync({ cwd: 'foo' }));
console.log(parse.sync({ cwd: 'foo', path: 'some/.git/config' }));
.expandKeys
Returns an object with only the properties that had ini-style keys converted to objects.
Params
config
{Object}: The parsed git config object.returns
{Object}
Example
const config = parse.sync({ path: '/path/to/.gitconfig' });
const obj = parse.expandKeys(config);
.expandKeys examples
Converts ini-style keys into objects:
Example 1
const parse = require('parse-git-config');
const config = {
'foo "bar"': { doStuff: true },
'foo "baz"': { doStuff: true }
};
console.log(parse.expandKeys(config));
Results in:
{
foo: {
bar: { doStuff: true },
baz: { doStuff: true }
}
}
Example 2
const parse = require('parse-git-config');
const config = {
'remote "origin"': {
url: 'https://github.com/jonschlinkert/normalize-pkg.git',
fetch: '+refs/heads/*:refs/remotes/origin/*'
},
'branch "master"': {
remote: 'origin',
merge: 'refs/heads/master'
},
'branch "dev"': {
remote: 'origin',
merge: 'refs/heads/dev',
rebase: true
}
};
console.log(parse.expandKeys(config));
Results in:
{
remote: {
origin: {
url: 'https://github.com/jonschlinkert/normalize-pkg.git',
fetch: '+refs/heads/*:refs/remotes/origin/*'
}
},
branch: {
master: {
remote: 'origin',
merge: 'refs/heads/master'
},
dev: {
remote: 'origin',
merge: 'refs/heads/dev',
rebase: true
}
}
}
About
sh
$ npm install && npm test
sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Related projects
You might also be interested in these projects:
- git-user-name: Get a user's name from git config at the project or global scope, depending on… more | homepage
- git-username: Get the username (or 'owner' name) from a git/GitHub remote origin URL. | homepage
- parse-author: Parse an author, contributor, maintainer or other 'person' string into an object with name, email… more | homepage
- parse-authors: Parse a string into an array of objects with
name
,email
andurl
properties following… more | homepage - parse-github-url: Parse a github URL into an object. | homepage
- parse-gitignore: Parse a .gitignore or .npmignore file into an array of patterns. | homepage
Contributors
Commits | Contributor |
---|---|
66 | jonschlinkert |
4 | doowb |
1 | daviwil |
1 | LexSwed |
1 | sam3d |
1 | suarasaur |
Author
Jon Schlinkert
License
Copyright © 2018, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.8.0, on November 20, 2018.