refactor: Move user config into modules/

This commit is contained in:
Madeleine Sydney
2025-03-13 11:14:32 -06:00
parent 257f011a99
commit fb3299d89c
85 changed files with 597 additions and 542 deletions

View File

@@ -0,0 +1 @@
use flake

View File

@@ -0,0 +1,11 @@
result
.nrepl
.nrepl-port
.cpcache/
.cache/
.lsp/
.clj-kondo
.cpcache
.lsp
.nrepl
.direnv/

View File

@@ -0,0 +1,7 @@
{:tasks
{:requires ([babashka.process :as p])
update-lockfile
{:doc "Update the clj-nix lockfile"
:task (let [r (p/sh {:out :inherit :err :inherit}
"nix run github:jlesquembre/clj-nix#deps-lock")]
(System/exit (:exit r)))}}}

View File

@@ -0,0 +1,9 @@
{:deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:paths ["src"]
:aliases
{:cider
{:extra-deps {cider/cider-nrepl {:mvn/version "0.50.2"}}
:main-opts ["-m" "nrepl.cmdline"
"--middleware" "[cider.nrepl/cider-middleware]"]}
:run
{:main-opts ["-m" "__PROJECT-NAME__.main"]}}}

View File

@@ -0,0 +1,47 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
clj-nix.url = "github:jlesquembre/clj-nix";
};
outputs = { self, ... }@inputs:
inputs.flake-utils.lib.eachDefaultSystem (system:
let pkgs = import inputs.nixpkgs {
inherit system;
overlays = [
inputs.clj-nix.overlays.default
];
};
in {
packages = rec {
__PROJECT-NAME__ = inputs.clj-nix.lib.mkCljApp {
pkgs = inputs.nixpkgs.legacyPackages.${system};
modules = [
{
name = "__PROJECT-OWNER__/__PROJECT-NAME__";
version = "1.0.0";
main-ns = "__PROJECT-NAME__.main";
projectSrc = ./.;
nativeImage = {
# Disable for faster build times.
enable = true;
};
}
];
};
default = __PROJECT-NAME__;
};
devShells.default = pkgs.mkShell {
packages = with pkgs; [
clojure-lsp
cljfmt
clojure
babashka
];
};
});
}

View File

@@ -0,0 +1,5 @@
(ns __PROJECT-NAME__.main
(:gen-class))
(defn -main [& args]
(println "🦭!"))

View File

@@ -0,0 +1 @@
use flake

View File

@@ -0,0 +1,63 @@
cabal-version: 3.0
name: __PROJECT-NAME__
version: 0.1.0.0
synopsis: __DESCRIPTION__
description: __DESCRIPTION__
license: GPL-3.0-only
license-file: LICENSE
author: __USER-NAME__
maintainer: __USER-MAIL-ADDRESS__
-- copyright:
category: Language
build-type: Simple
extra-doc-files:
common common
ghc-options: -Wno-typed-holes -fdefer-typed-holes
default-extensions:
BlockArguments
DataKinds
DeriveDataTypeable
DeriveGeneric
DeriveTraversable
DerivingVia
FlexibleContexts
GADTs
GeneralisedNewtypeDeriving
LambdaCase
MultiWayIf
NoFieldSelectors
OverloadedLabels
OverloadedRecordDot
OverloadedStrings
PartialTypeSignatures
PatternSynonyms
StandaloneDeriving
TypeApplications
TypeFamilies
default-language: GHC2021
library
import: common
-- cabal-fmt: expand sydml/src/ -Main
exposed-modules:
default-language: GHC2021
build-depends:
, base ^>=4.19.1.0
, containers
, hashable
, mtl
, lens
, pretty-simple
, text >=2.0 && <2.2
, transformers
, unordered-containers
hs-source-dirs: src

View File

@@ -0,0 +1,36 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, ... }@inputs:
inputs.flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
hlib = pkgs.haskell.lib.compose;
hpkgs = pkgs.haskell.packages.ghc98.extend (final: prev: {
__PROJECT-NAME__ =
hlib.dontCheck (final.callCabal2nix "__PROJECT-NAME__" ./. {});
});
in {
packages = rec {
__PROJECT-NAME__ = hpkgs.__PROJECT-NAME__;
default = __PROJECT-NAME__;
};
devShells.default = hpkgs.shellFor {
packages = p: [
p.__PROJECT-NAME__
];
nativeBuildInputs = [
hpkgs.cabal-fmt
hpkgs.fourmolu
hpkgs.haskell-language-server
hpkgs.cabal-install
hpkgs.hasktags
];
withHoogle = true;
};
});
}