From 1e1f19e02b33a7e87a7ef421a4b0aee839d71092 Mon Sep 17 00:00:00 2001 From: Ethan Reece Date: Sun, 31 Aug 2025 23:10:35 -0500 Subject: [PATCH] Add boilerplate --- .gitignore | 1 + app/Main.hs | 8 +++ nix-flake-haskell-template.cabal | 84 ++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 app/Main.hs create mode 100644 nix-flake-haskell-template.cabal diff --git a/.gitignore b/.gitignore index 212281c..117c260 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ .direnv .helix .pre-commit-config.yaml +dist-newstyle result diff --git a/app/Main.hs b/app/Main.hs new file mode 100644 index 0000000..1b8ce9a --- /dev/null +++ b/app/Main.hs @@ -0,0 +1,8 @@ +-- SPDX-FileCopyrightText: 2025 Ethan Reece +-- +-- SPDX-License-Identifier: MIT + +module Main where + +main :: IO () +main = putStrLn "Hello, Haskell!" diff --git a/nix-flake-haskell-template.cabal b/nix-flake-haskell-template.cabal new file mode 100644 index 0000000..e577b85 --- /dev/null +++ b/nix-flake-haskell-template.cabal @@ -0,0 +1,84 @@ +cabal-version: 3.8 + +-- SPDX-FileCopyrightText: 2025 Ethan Reece +-- +-- SPDX-License-Identifier: MIT + +-- The cabal-version field refers to the version of the .cabal specification, +-- and can be different from the cabal-install (the tool) version and the +-- Cabal (the library) version you are using. As such, the Cabal (the library) +-- version used must be equal or greater than the version stated in this field. +-- Starting from the specification version 2.2, the cabal-version field must be +-- the first thing in the cabal file. + +-- Initial package description 'nix-flake-haskell-template' generated by +-- 'cabal init'. For further documentation, see: +-- http://haskell.org/cabal/users-guide/ +-- +-- The name of the package. +name: nix-flake-haskell-template + +-- The package version. +-- See the Haskell package versioning policy (PVP) for standards +-- guiding when and how versions should be incremented. +-- https://pvp.haskell.org +-- PVP summary: +-+------- breaking API changes +-- | | +----- non-breaking API additions +-- | | | +--- code changes with no API change +version: 0.1.0.0 + +-- A short (one-line) description of the package. +-- synopsis: + +-- A longer description of the package. +-- description: + +-- URL for the project homepage or repository. +homepage: https://git.sudoer777.dev/me/nix-flake-haskell-template/ + +-- The license under which the package is released. +license: MIT + +-- The file containing the license text. +license-file: LICENSE + +-- The package author(s). +author: Ethan Reece + +-- An email address to which users can send suggestions, bug reports, and patches. +maintainer: contact@ethanreece.com + +-- A copyright notice. +-- copyright: +build-type: Simple + +-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. +extra-doc-files: CHANGELOG.md + +-- Extra source files to be distributed with the package, such as examples, or a tutorial module. +-- extra-source-files: + +common warnings + ghc-options: -Wall + +executable nix-flake-haskell-template + -- Import common warning flags. + import: warnings + + -- .hs or .lhs file containing the Main module. + main-is: Main.hs + + -- Modules included in this executable, other than Main. + -- other-modules: + + -- LANGUAGE extensions used by modules in this package. + -- other-extensions: + + -- Other library packages from which modules are imported. + build-depends: base ^>=4.19.2.0 + + -- Directories containing source files. + hs-source-dirs: app + + -- Base language which the package is written in. + default-language: GHC2021