vcs-ignore

Library for handling files ignored by VCS systems.

https://github.com/vaclavsvejcar/vcs-ignore

Version on this page:0.0.1.0
LTS Haskell 19.18:0.0.2.0
Stackage Nightly 2022-08-14:0.0.2.0
Latest on Hackage:0.0.2.0

See all snapshots vcs-ignore appears in

BSD-3-Clause licensed by Vaclav Svejcar
This version can be pinned in stack with:vcs-ignore-0.0.1.0@sha256:1448d23b2934eff40fcb30bcb6f801680cec86522425a295ee612b20cf2a50c2,3756

vcs-ignore

vcs-ignore is small Haskell library used to find, check and process files ignored by selected VCS.

1. Table of Contents

2. Example of Use

Because this library is really simple to use, following example should be enough to understand how to use it for your project.

2.1. Listing all files/directories ignored by VCS

{-# LANGUAGE TypeApplications #-}

module Data.VCS.Test where

import Data.VCS.Ignore ( Git, Repo(..), listRepo )

example :: IO [FilePath]
example = do
  repo <- scanRepo @Git "path/to/repo"
  listRepo repo

2.2. Walking files/directories ignored by VCS

{-# LANGUAGE TypeApplications #-}

module Data.VCS.Test where

import Data.Maybe       ( catMaybes )
import System.Directory ( doesFileExist )
import Data.VCS.Ignore  ( Git, Repo(..), walkRepo )

onlyFiles :: IO [FilePath]
onlyFiles = do
  repo <- scanRepo @Git "path/to/repo"
  catMaybes <$> walkRepo repo walkFn
 where
  walkFn path = do
    file <- doesFileExist path
    pure (if file then Just path else Nothing)

2.3. Checking if path is ignored by VCS

{-# LANGUAGE TypeApplications #-}

module Data.VCS.Test where

import Data.VCS.Ignore ( Git, Repo(..) )

checkIgnored :: IO Bool
checkIgnored = do
  repo <- scanRepo @Git "path/to/repo"
  isIgnored repo "/some/path/.DS_Store"

Changes

Changelog for vcs-ignore

v0.0.1.0 (2021-05-10)

  • initial release