Initial commit
This commit is contained in:
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					.envrc
 | 
				
			||||||
 | 
					dist/
 | 
				
			||||||
 | 
					dist-newstyle/
 | 
				
			||||||
							
								
								
									
										249
									
								
								.stylish-haskell.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										249
									
								
								.stylish-haskell.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,249 @@
 | 
				
			|||||||
 | 
					# stylish-haskell configuration file
 | 
				
			||||||
 | 
					# ==================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The stylish-haskell tool is mainly configured by specifying steps. These steps
 | 
				
			||||||
 | 
					# are a list, so they have an order, and one specific step may appear more than
 | 
				
			||||||
 | 
					# once (if needed). Each file is processed by these steps in the given order.
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  # Convert some ASCII sequences to their Unicode equivalents. This is disabled
 | 
				
			||||||
 | 
					  # by default.
 | 
				
			||||||
 | 
					  # - unicode_syntax:
 | 
				
			||||||
 | 
					  #     # In order to make this work, we also need to insert the UnicodeSyntax
 | 
				
			||||||
 | 
					  #     # language pragma. If this flag is set to true, we insert it when it's
 | 
				
			||||||
 | 
					  #     # not already present. You may want to disable it if you configure
 | 
				
			||||||
 | 
					  #     # language extensions using some other method than pragmas. Default:
 | 
				
			||||||
 | 
					  #     # true.
 | 
				
			||||||
 | 
					  #     add_language_pragma: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Align the right hand side of some elements.  This is quite conservative
 | 
				
			||||||
 | 
					  # and only applies to statements where each element occupies a single
 | 
				
			||||||
 | 
					  # line.
 | 
				
			||||||
 | 
					  - simple_align:
 | 
				
			||||||
 | 
					      cases: false
 | 
				
			||||||
 | 
					      top_level_patterns: false
 | 
				
			||||||
 | 
					      records: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Import cleanup
 | 
				
			||||||
 | 
					  - imports:
 | 
				
			||||||
 | 
					      # There are different ways we can align names and lists.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - global: Align the import names and import list throughout the entire
 | 
				
			||||||
 | 
					      #   file.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - file: Like global, but don't add padding when there are no qualified
 | 
				
			||||||
 | 
					      #   imports in the file.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - group: Only align the imports per group (a group is formed by adjacent
 | 
				
			||||||
 | 
					      #   import lines).
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - none: Do not perform any alignment.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: global.
 | 
				
			||||||
 | 
					      align: none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # The following options affect only import list alignment.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # List align has following options:
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - after_alias: Import list is aligned with end of import including
 | 
				
			||||||
 | 
					      #   'as' and 'hiding' keywords.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import qualified Data.List      as List (concat, foldl, foldr, head,
 | 
				
			||||||
 | 
					      #   >                                          init, last, length)
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - with_alias: Import list is aligned with start of alias or hiding.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import qualified Data.List      as List (concat, foldl, foldr, head,
 | 
				
			||||||
 | 
					      #   >                                 init, last, length)
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - new_line: Import list starts always on new line.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import qualified Data.List      as List
 | 
				
			||||||
 | 
					      #   >     (concat, foldl, foldr, head, init, last, length)
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: after_alias
 | 
				
			||||||
 | 
					      list_align: new_line
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Right-pad the module names to align imports in a group:
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - true: a little more readable
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import qualified Data.List       as List (concat, foldl, foldr,
 | 
				
			||||||
 | 
					      #   >                                           init, last, length)
 | 
				
			||||||
 | 
					      #   > import qualified Data.List.Extra as List (concat, foldl, foldr,
 | 
				
			||||||
 | 
					      #   >                                           init, last, length)
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - false: diff-safe
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import qualified Data.List as List (concat, foldl, foldr, init,
 | 
				
			||||||
 | 
					      #   >                                     last, length)
 | 
				
			||||||
 | 
					      #   > import qualified Data.List.Extra as List (concat, foldl, foldr,
 | 
				
			||||||
 | 
					      #   >                                           init, last, length)
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: true
 | 
				
			||||||
 | 
					      pad_module_names: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Long list align style takes effect when import is too long. This is
 | 
				
			||||||
 | 
					      # determined by 'columns' setting.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - inline: This option will put as much specs on same line as possible.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - new_line: Import list will start on new line.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - new_line_multiline: Import list will start on new line when it's
 | 
				
			||||||
 | 
					      #   short enough to fit to single line. Otherwise it'll be multiline.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - multiline: One line per import list entry.
 | 
				
			||||||
 | 
					      #   Type with constructor list acts like single import.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import qualified Data.Map as M
 | 
				
			||||||
 | 
					      #   >     ( empty
 | 
				
			||||||
 | 
					      #   >     , singleton
 | 
				
			||||||
 | 
					      #   >     , ...
 | 
				
			||||||
 | 
					      #   >     , delete
 | 
				
			||||||
 | 
					      #   >     )
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: inline
 | 
				
			||||||
 | 
					      long_list_align: new_line_multiline
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Align empty list (importing instances)
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Empty list align has following options
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - inherit: inherit list_align setting
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - right_after: () is right after the module name:
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import Vector.Instances ()
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: inherit
 | 
				
			||||||
 | 
					      empty_list_align: inherit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # List padding determines indentation of import list on lines after import.
 | 
				
			||||||
 | 
					      # This option affects 'long_list_align'.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - <integer>: constant value
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - module_name: align under start of module name.
 | 
				
			||||||
 | 
					      #   Useful for 'file' and 'group' align settings.
 | 
				
			||||||
 | 
					      list_padding: 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Separate lists option affects formatting of import list for type
 | 
				
			||||||
 | 
					      # or class. The only difference is single space between type and list
 | 
				
			||||||
 | 
					      # of constructors, selectors and class functions.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - true: There is single space between Foldable type and list of it's
 | 
				
			||||||
 | 
					      #   functions.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import Data.Foldable (Foldable (fold, foldl, foldMap))
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - false: There is no space between Foldable type and list of it's
 | 
				
			||||||
 | 
					      #   functions.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import Data.Foldable (Foldable(fold, foldl, foldMap))
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: true
 | 
				
			||||||
 | 
					      separate_lists: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Space surround option affects formatting of import lists on a single
 | 
				
			||||||
 | 
					      # line. The only difference is single space after the initial
 | 
				
			||||||
 | 
					      # parenthesis and a single space before the terminal parenthesis.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - true: There is single space associated with the enclosing
 | 
				
			||||||
 | 
					      #   parenthesis.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import Data.Foo ( foo )
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - false: There is no space associated with the enclosing parenthesis
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      #   > import Data.Foo (foo)
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: false
 | 
				
			||||||
 | 
					      space_surround: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Language pragmas
 | 
				
			||||||
 | 
					  - language_pragmas:
 | 
				
			||||||
 | 
					      # We can generate different styles of language pragma lists.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - vertical: Vertical-spaced language pragmas, one per line.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - compact: A more compact style.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - compact_line: Similar to compact, but wrap each line with
 | 
				
			||||||
 | 
					      #   `{-#LANGUAGE #-}'.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: vertical.
 | 
				
			||||||
 | 
					      style: vertical
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Align affects alignment of closing pragma brackets.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - true: Brackets are aligned in same column.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # - false: Brackets are not aligned together. There is only one space
 | 
				
			||||||
 | 
					      #   between actual import and closing bracket.
 | 
				
			||||||
 | 
					      #
 | 
				
			||||||
 | 
					      # Default: true
 | 
				
			||||||
 | 
					      align: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # stylish-haskell can detect redundancy of some language pragmas. If this
 | 
				
			||||||
 | 
					      # is set to true, it will remove those redundant pragmas. Default: true.
 | 
				
			||||||
 | 
					      remove_redundant: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Replace tabs by spaces. This is disabled by default.
 | 
				
			||||||
 | 
					  # - tabs:
 | 
				
			||||||
 | 
					  #     # Number of spaces to use for each tab. Default: 8, as specified by the
 | 
				
			||||||
 | 
					  #     # Haskell report.
 | 
				
			||||||
 | 
					  #     spaces: 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Remove trailing whitespace
 | 
				
			||||||
 | 
					  - trailing_whitespace: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Squash multiple spaces between the left and right hand sides of some
 | 
				
			||||||
 | 
					  # elements into single spaces. Basically, this undoes the effect of
 | 
				
			||||||
 | 
					  # simple_align but is a bit less conservative.
 | 
				
			||||||
 | 
					  # - squash: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A common setting is the number of columns (parts of) code will be wrapped
 | 
				
			||||||
 | 
					# to. Different steps take this into account. Default: 80.
 | 
				
			||||||
 | 
					columns: 80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# By default, line endings are converted according to the OS. You can override
 | 
				
			||||||
 | 
					# preferred format here.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - native: Native newline format. CRLF on Windows, LF on other OSes.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - lf: Convert to LF ("\n").
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - crlf: Convert to CRLF ("\r\n").
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Default: native.
 | 
				
			||||||
 | 
					newline: native
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Sometimes, language extensions are specified in a cabal file or from the
 | 
				
			||||||
 | 
					# command line instead of using language pragmas in the file. stylish-haskell
 | 
				
			||||||
 | 
					# needs to be aware of these, so it can parse the file correctly.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# No language extensions are enabled by default.
 | 
				
			||||||
 | 
					language_extensions:
 | 
				
			||||||
 | 
					  - RecordWildCards
 | 
				
			||||||
 | 
					  - TemplateHaskell
 | 
				
			||||||
 | 
					  - QuasiQuotes
 | 
				
			||||||
 | 
					  - LambdaCase
 | 
				
			||||||
 | 
					  - TupleSections
 | 
				
			||||||
 | 
					  - MultiParamTypeClasses
 | 
				
			||||||
 | 
					  - TypeApplications
 | 
				
			||||||
 | 
					  - DataKinds
 | 
				
			||||||
 | 
					  - TypeFamilies
 | 
				
			||||||
 | 
					  - FlexibleContexts
 | 
				
			||||||
 | 
					  - NamedFieldPuns
 | 
				
			||||||
 | 
					  - MultiWayIf
 | 
				
			||||||
 | 
					  - PolyKinds
 | 
				
			||||||
 | 
					  - ExplicitForAll
 | 
				
			||||||
 | 
					  - FunctionalDependencies
 | 
				
			||||||
 | 
					  - ExplicitNamespaces
 | 
				
			||||||
 | 
					  - ScopedTypeVariables
 | 
				
			||||||
 | 
					  - ExistentialQuantification
 | 
				
			||||||
 | 
					  - InstanceSigs
 | 
				
			||||||
 | 
					  - GeneralizedNewtypeDeriving
 | 
				
			||||||
 | 
					  - BangPatterns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# Revision history for buuka
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 0.1.0.0 -- YYYY-mm-dd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* First version. Released on an unsuspecting world.
 | 
				
			||||||
							
								
								
									
										30
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					Copyright (c) 2020, Mats Rauhala
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					All rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					modification, are permitted provided that the following conditions are met:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    * Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					      notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    * Redistributions in binary form must reproduce the above
 | 
				
			||||||
 | 
					      copyright notice, this list of conditions and the following
 | 
				
			||||||
 | 
					      disclaimer in the documentation and/or other materials provided
 | 
				
			||||||
 | 
					      with the distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    * Neither the name of Mats Rauhala nor the names of other
 | 
				
			||||||
 | 
					      contributors may be used to endorse or promote products derived
 | 
				
			||||||
 | 
					      from this software without specific prior written permission.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
				
			||||||
 | 
					"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
				
			||||||
 | 
					LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
				
			||||||
 | 
					A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
				
			||||||
 | 
					OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
				
			||||||
 | 
					SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
				
			||||||
 | 
					LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
				
			||||||
 | 
					DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
				
			||||||
 | 
					THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
				
			||||||
 | 
					(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
				
			||||||
 | 
					OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
				
			||||||
							
								
								
									
										8
									
								
								app/Main.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								app/Main.hs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					module Main where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import qualified MyLib (someFunc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main :: IO ()
 | 
				
			||||||
 | 
					main = do
 | 
				
			||||||
 | 
					  putStrLn "Hello, Haskell!"
 | 
				
			||||||
 | 
					  MyLib.someFunc
 | 
				
			||||||
							
								
								
									
										51
									
								
								buuka.cabal
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								buuka.cabal
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					cabal-version:       2.4
 | 
				
			||||||
 | 
					-- Initial package description 'buuka.cabal' generated by 'cabal init'.
 | 
				
			||||||
 | 
					-- For further documentation, see http://haskell.org/cabal/users-guide/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name:                buuka
 | 
				
			||||||
 | 
					version:             0.1.0.0
 | 
				
			||||||
 | 
					-- synopsis:
 | 
				
			||||||
 | 
					-- description:
 | 
				
			||||||
 | 
					-- bug-reports:
 | 
				
			||||||
 | 
					license:             BSD-3-Clause
 | 
				
			||||||
 | 
					license-file:        LICENSE
 | 
				
			||||||
 | 
					author:              Mats Rauhala
 | 
				
			||||||
 | 
					maintainer:          mats.rauhala@iki.fi
 | 
				
			||||||
 | 
					-- copyright:
 | 
				
			||||||
 | 
					category:            Web
 | 
				
			||||||
 | 
					extra-source-files:  CHANGELOG.md
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					library
 | 
				
			||||||
 | 
					  exposed-modules:     MyLib
 | 
				
			||||||
 | 
					  -- other-modules:
 | 
				
			||||||
 | 
					  -- other-extensions:
 | 
				
			||||||
 | 
					  build-depends:       base ^>=4.13.0.0
 | 
				
			||||||
 | 
					                     , aeson
 | 
				
			||||||
 | 
					                     , yaml
 | 
				
			||||||
 | 
					                     , mtl
 | 
				
			||||||
 | 
					                     , transformers
 | 
				
			||||||
 | 
					                     , unliftio-core
 | 
				
			||||||
 | 
					                     , conduit
 | 
				
			||||||
 | 
					                     , conduit-extra
 | 
				
			||||||
 | 
					  hs-source-dirs:      src
 | 
				
			||||||
 | 
					  default-language:    Haskell2010
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					executable buuka
 | 
				
			||||||
 | 
					  main-is:             Main.hs
 | 
				
			||||||
 | 
					  -- other-modules:
 | 
				
			||||||
 | 
					  -- other-extensions:
 | 
				
			||||||
 | 
					  build-depends:       base ^>=4.13.0.0, buuka
 | 
				
			||||||
 | 
					                     , optparse-applicative
 | 
				
			||||||
 | 
					  hs-source-dirs:      app
 | 
				
			||||||
 | 
					  default-language:    Haskell2010
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test-suite buuka-test
 | 
				
			||||||
 | 
					  default-language:    Haskell2010
 | 
				
			||||||
 | 
					  type:                exitcode-stdio-1.0
 | 
				
			||||||
 | 
					  hs-source-dirs:      test
 | 
				
			||||||
 | 
					  main-is:             MyLibTest.hs
 | 
				
			||||||
 | 
					  build-depends:       base ^>=4.13.0.0
 | 
				
			||||||
 | 
					                     , buuka
 | 
				
			||||||
 | 
					                     , hedgehog
 | 
				
			||||||
 | 
					                     , tasty-hedgehog
 | 
				
			||||||
 | 
					                     , tasty
 | 
				
			||||||
							
								
								
									
										18
									
								
								default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					{ mkDerivation, aeson, base, conduit, conduit-extra, hedgehog, mtl
 | 
				
			||||||
 | 
					, optparse-applicative, stdenv, tasty, tasty-hedgehog, transformers
 | 
				
			||||||
 | 
					, unliftio-core, yaml
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					mkDerivation {
 | 
				
			||||||
 | 
					  pname = "buuka";
 | 
				
			||||||
 | 
					  version = "0.1.0.0";
 | 
				
			||||||
 | 
					  src = ./.;
 | 
				
			||||||
 | 
					  isLibrary = true;
 | 
				
			||||||
 | 
					  isExecutable = true;
 | 
				
			||||||
 | 
					  libraryHaskellDepends = [
 | 
				
			||||||
 | 
					    aeson base conduit conduit-extra mtl transformers unliftio-core
 | 
				
			||||||
 | 
					    yaml
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  executableHaskellDepends = [ base optparse-applicative ];
 | 
				
			||||||
 | 
					  testHaskellDepends = [ base hedgehog tasty tasty-hedgehog ];
 | 
				
			||||||
 | 
					  license = stdenv.lib.licenses.bsd3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								shell.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								shell.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					with (import <nixpkgs> {});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  buuka = haskellPackages.callPackage ./. {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkShell {
 | 
				
			||||||
 | 
					  name = "shell-buuka";
 | 
				
			||||||
 | 
					  buildInputs = [
 | 
				
			||||||
 | 
					    ghcid
 | 
				
			||||||
 | 
					    stylish-haskell
 | 
				
			||||||
 | 
					    cabal2nix
 | 
				
			||||||
 | 
					    haskellPackages.cabal-install
 | 
				
			||||||
 | 
					    (haskellPackages.ghcWithPackages (_: buuka.buildInputs ++ buuka.propagatedBuildInputs))
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										4
									
								
								src/MyLib.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/MyLib.hs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					module MyLib (someFunc) where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					someFunc :: IO ()
 | 
				
			||||||
 | 
					someFunc = putStrLn "someFunc"
 | 
				
			||||||
							
								
								
									
										4
									
								
								test/MyLibTest.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								test/MyLibTest.hs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					module Main (main) where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main :: IO ()
 | 
				
			||||||
 | 
					main = putStrLn "Test suite not yet implemented."
 | 
				
			||||||
		Reference in New Issue
	
	Block a user