git-config: A simple parser for Git configuration files

[ bsd3, git, library ] [ Propose Tags ]

git-config is a simple megaparsec parser for Git configuration files.

It aims to provide the simplest API possible for parsing Git configuration files so that you can get to whatever it was you were doing.

A sample of this library in use:

import qualified Data.Text.IO as TIO
import Text.GitConfig.Parser (parseConfig)

main :: IO ()
main = do
  file <- TIO.readFile ".git/config"
  case parseConfig file of
    Right conf ->
      print conf

[Skip to Readme]
Versions 0.1.0, 0.1.1
Dependencies base (>=4.7 && <5), megaparsec, text, unordered-containers [details]
License BSD-3-Clause
Copyright 2018 Fernando Freire
Author Fernando Freire
Maintainer Fernando Freire <dogonthehorizon@gmail.com>
Category Library, Git
Home page https://github.com/dogonthehorizon/git-config#readme
Bug tracker https://github.com/dogonthehorizon/git-config/issues
Source repo head: git clone https://github.com/dogonthehorizon/git-config
Uploaded by ffreire at Mon Feb 19 04:56:13 UTC 2018
Distributions NixOS:0.1.1
Downloads 170 total (18 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-02-19 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for git-config-0.1.1

[back to package description]

Build Status

git-config

A simple parser for Git configuration files.

Getting Started

This project is built using Stack, make sure you have it installed before proceeding.

You can fire up an interactive session like so:

stack ghci

The library can be built or tested like so:

# Building
stack build
# Running tests
stack test

Usage

A Git configuration is a colletion of sections that contain mappings of keys to values.

For the sake of simplicity this is represented as [Section] where a Section is a collection of section names and a mapping of keys to values.

We can use the parser like so:

import qualified Data.Text.IO as TIO
import Text.GitConfig.Parser (parseConfig)

main :: IO ()
main = do
  file <- TIO.readFile ".git/config"
  case parseConfig file of
    Right conf ->
      print conf
    Left error ->
      print error

If you'd like to do your own parsing you can import the individual combinators from the Text.GitConfig.Parser module.