chore: sample1
This commit is contained in:
16
.github/template.yml
vendored
Normal file
16
.github/template.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: Haskell Project Template
|
||||
description: "Haskell project template"
|
||||
inputs:
|
||||
project_name:
|
||||
description: "Name of your new project"
|
||||
required: true
|
||||
default: "haskell-template"
|
||||
author_name:
|
||||
description: "Author of the project"
|
||||
required: true
|
||||
default: "mincomk"
|
||||
author_email:
|
||||
description: "Author email of the project"
|
||||
required: true
|
||||
default: "mail@drchi.co.kr"
|
||||
|
||||
30
.gitignore
vendored
Normal file
30
.gitignore
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/haskell
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=haskell
|
||||
|
||||
### Haskell ###
|
||||
dist
|
||||
dist-*
|
||||
cabal-dev
|
||||
*.o
|
||||
*.hi
|
||||
*.hie
|
||||
*.chi
|
||||
*.chs.h
|
||||
*.dyn_o
|
||||
*.dyn_hi
|
||||
.hpc
|
||||
.hsenv
|
||||
.cabal-sandbox/
|
||||
cabal.sandbox.config
|
||||
*.prof
|
||||
*.aux
|
||||
*.hp
|
||||
*.eventlog
|
||||
.stack-work/
|
||||
cabal.project.local
|
||||
cabal.project.local~
|
||||
.HTF/
|
||||
.ghc.environment.*
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/haskell
|
||||
|
||||
20
LICENSE
Normal file
20
LICENSE
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2025 minco
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
8
app/Main.hs
Normal file
8
app/Main.hs
Normal file
@@ -0,0 +1,8 @@
|
||||
module Main where
|
||||
|
||||
import Lib qualified (someFunc)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
putStrLn "Hello, Haskell!"
|
||||
Lib.someFunc
|
||||
47
package.yaml
Normal file
47
package.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
name: {{ project_name }}
|
||||
version: 0.1.0.0
|
||||
license: MIT
|
||||
author: "{{ author_name }}"
|
||||
maintainer: "{{ author_email }}"
|
||||
extra-source-files:
|
||||
- README.md
|
||||
|
||||
dependencies:
|
||||
- base
|
||||
|
||||
- containers
|
||||
- text
|
||||
- bytestring
|
||||
- mtl
|
||||
- transformers
|
||||
- unordered-containers
|
||||
- optics
|
||||
|
||||
library:
|
||||
source-dirs: src
|
||||
dependencies:
|
||||
- base
|
||||
|
||||
executables:
|
||||
{{ project_name }}:
|
||||
main: Main.hs
|
||||
source-dirs: app
|
||||
ghc-options: -threaded -rtsopts -with-rtsopts=-N
|
||||
dependencies:
|
||||
- base
|
||||
|
||||
- {{ project_name }}
|
||||
|
||||
tests:
|
||||
{{ project_name }}-test:
|
||||
main: Main.hs
|
||||
source-dirs: test
|
||||
dependencies:
|
||||
- base
|
||||
|
||||
- {{ project_name }}
|
||||
|
||||
- tasty
|
||||
- tasty-hunit
|
||||
- tasty-quickcheck
|
||||
- QuickCheck
|
||||
4
src/Lib.hs
Normal file
4
src/Lib.hs
Normal file
@@ -0,0 +1,4 @@
|
||||
module Lib (someFunc) where
|
||||
|
||||
someFunc :: IO ()
|
||||
someFunc = putStrLn "someFunc"
|
||||
31
test/Main.hs
Normal file
31
test/Main.hs
Normal file
@@ -0,0 +1,31 @@
|
||||
{-# LANGUAGE FlexibleInstances #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
|
||||
module Main (main) where
|
||||
|
||||
import Data.Aeson.Key qualified as K
|
||||
import Data.Aeson.KeyMap qualified as KM
|
||||
import Data.List (isInfixOf)
|
||||
import Data.List qualified as L
|
||||
import Data.Text qualified as T
|
||||
import Data.Yaml hiding (Parser)
|
||||
import Test.Tasty
|
||||
import Test.Tasty.HUnit
|
||||
import Test.Tasty.QuickCheck as QC
|
||||
|
||||
main :: IO ()
|
||||
main = spec >>= defaultMain
|
||||
|
||||
spec :: IO TestTree
|
||||
spec = return $ testGroup "{{ project_name }} tests" [baseTests]
|
||||
|
||||
baseTests :: TestTree
|
||||
baseTests =
|
||||
testGroup
|
||||
"Base"
|
||||
[ QC.testProperty "example function works" $
|
||||
\(num :: Integer) ->
|
||||
num * 0 == 0
|
||||
]
|
||||
Reference in New Issue
Block a user