请选择 进入手机版 | 继续访问电脑版

技术控

    今日:0| 主题:61300
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] literate-readme - a readme that is also a literate haskell program!

[复制链接]
数学不好万岁。 发表于 2016-11-28 08:23:06
145 3
!/usr/bin/env stack

  -- stack --install-ghc runghc --package turtle --package markdown-unlit -- "-pgmL markdown-unlit"
  1. {-# LANGUAGE OverloadedStrings #-}
  2. import Turtle
复制代码
Literate README

  The readme that builds itself!
  You can setup and build this project by running this very readme. This is what the travis job does!
  Example:    ./README.lhs --setup --test  
  1. parser :: Parser (Bool, Bool, Bool)
  2. parser = (,,) <$> switch "setup" 's' "Set up the stack environment."
  3.               <*> switch "test"  't' "Build the project and run the tests."
  4.               <*> switch "build" 'b' "Just build, don't run tests."
复制代码
  1. main = void $ do
  2.     (setup, test, build) <- options "Literate README" parser
  3.     let ops = doSetup setup .&&. doBuild build .&&. doTest test
  4.     ops .||. die "Step failed."
  5. nop = shell "true" empty
  6. stackOrNop op True = shell ("stack " <> op) empty
  7. stackOrNop _  _    = nop
复制代码
Setup

  1. -- | Call this with: ./README.lhs --setup
  2. doSetup = stackOrNop "setup"
复制代码
Build

  1. -- | Call this with: ./README.lhs --build
  2. doBuild = stackOrNop "build"
复制代码
Test

  1. -- | Call this with: ./README.lhs --test
  2. doTest = stackOrNop "test"
复制代码
一指囚天 发表于 2016-11-28 09:14:48
看过相关报道,楼下后来二了
回复 支持 反对

使用道具 举报

派代 发表于 2016-11-28 16:30:06
如果你真的爱他,那么你必须容忍他部份的缺点。
回复 支持 反对

使用道具 举报

琛婷威 发表于 2016-11-28 21:00:11
爱情就像两个拉着橡皮筋的人,受伤的总是不愿意放手的那一个!
回复 支持 反对

使用道具 举报

我要投稿

推荐阅读


回页顶回复上一篇下一篇回列表
手机版/c.CoLaBug.com ( 粤ICP备05003221号 | 文网文[2010]257号 | 粤公网安备 44010402000842号 )

© 2001-2017 Comsenz Inc.

返回顶部 返回列表