Skip to content

Instantly share code, notes, and snippets.

@sshine
Last active November 5, 2020 11:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sshine/4e8673ad48b3f6098e4dbe097a9dfe5f to your computer and use it in GitHub Desktop.
Save sshine/4e8673ad48b3f6098e4dbe097a9dfe5f to your computer and use it in GitHub Desktop.
import System.IO (readFile)
import System.Directory (getDirectoryContents)
import System.FilePath.Posix (takeExtension)
import Control.Monad (filterM)
import Data.List (isInfixOf)
isUnpublished :: String -> Bool
isUnpublished = ("isUnpublished=true" `isInfixOf`)
isUnpublishedFile :: FilePath -> IO Bool
isUnpublishedFile filePath = do
contents <- readFile filePath
pure (isUnpublished contents)
go = do
allFiles <- getDirectoryContents "."
let markdownFiles = filter ((".md" ==) . takeExtension) allFiles
unpublishedFiles <- filterM isUnpublishedFile markdownFiles
pure unpublishedFiles
{-# LANGUAGE OverloadedStrings #-}
import Control.Monad (filterM)
import qualified Data.ByteString as BS
import Data.ByteString (ByteString)
import System.Directory (getDirectoryContents)
import System.FilePath.Posix (takeExtension)
isUnpublished :: ByteString -> Bool
isUnpublished = ("isUnpublished=true" `BS.isInfixOf`)
isUnpublishedFile :: FilePath -> IO Bool
isUnpublishedFile filePath = do
contents <- BS.readFile filePath
pure (isUnpublished contents)
go = do
allFiles <- getDirectoryContents "."
let markdownFiles = filter ((".md" ==) . takeExtension) allFiles
unpublishedFiles <- filterM isUnpublishedFile markdownFiles
pure unpublishedFiles
{-# LANGUAGE OverloadedStrings #-}
import Control.Monad (filterM)
import qualified Data.ByteString as BS
import Data.ByteString (ByteString)
import System.Directory (getDirectoryContents)
import System.FilePath.Posix (takeExtension)
isUnpublished :: ByteString -> Bool
isUnpublished = ("isUnpublished=true" `BS.isInfixOf`)
isUnpublishedFile :: FilePath -> IO Bool
isUnpublishedFile = fmap isUnpublished . BS.readFile
isMarkdownFile :: FilePath -> Bool
isMarkdownFile = (".md" ==) . takeExtension
isUnpublishedMarkdownFile :: FilePath -> IO Bool
isUnpublishedMarkdownFile filePath =
if isMarkdownFile filePath
then isUnpublishedFile filePath
else pure False
go = getDirectoryContents "." >>= filterM isUnpublishedMarkdownFile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment