Skip to content
Snippets Groups Projects
Commit bd895e40 authored by Jens Nolte's avatar Jens Nolte
Browse files

Update flake.nix, update nixpkgs and add quasar dependency

parent 9135e39f
No related branches found
No related tags found
No related merge requests found
{ pkgs ? import <nixpkgs> {}, haskellPackages ? pkgs.haskellPackages, args ? {} }:
let
rawdrv = haskellPackages.callCabal2nix "qbar" ./. args;
drv = pkgs.haskell.lib.generateOptparseApplicativeCompletions [ "qbar" ] rawdrv;
in
if pkgs.lib.inNixShell then rawdrv.env else drv
......@@ -2,21 +2,58 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1648486164,
"narHash": "sha256-v2EOpYJkFS+L4TFoBWC1ZTKYm6FsNNIGyWraY5MtO+4=",
"owner": "nixos",
"lastModified": 1681303793,
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1be57bee8d0565a7bfd8745540fed257c8c7f523",
"rev": "fe2ecaf706a5907b5e54d979fbde4924d84b65fc",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1681303793,
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe2ecaf706a5907b5e54d979fbde4924d84b65fc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"quasar": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1682474992,
"narHash": "sha256-tyN64/4weIGmlYMOOrVwFaBVyqvt8du9APhCO9vkV14=",
"owner": "queezle42",
"repo": "quasar",
"rev": "76faa881ae2e3a5575fba9f9e374931dbb8e6495",
"type": "github"
},
"original": {
"owner": "queezle42",
"repo": "quasar",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs",
"quasar": "quasar"
}
}
},
......
{
outputs = { self, nixpkgs }: with nixpkgs.lib; let
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
quasar.url = github:queezle42/quasar;
};
outputs = { self, nixpkgs, quasar }:
with nixpkgs.lib;
let
systems = platforms.unix;
forAllSystems = f: genAttrs systems (system: f system);
forAllSystems = genAttrs systems;
getHaskellPackages = pkgs: pattern: pipe pkgs.haskell.packages [
attrNames
(filter (x: !isNull (strings.match pattern x)))
(sort (x: y: x>y))
(map (x: pkgs.haskell.packages.${x}))
head
];
in {
packages = forAllSystems (system:
let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; };
in rec {
default = qbar;
qbar = pkgs.haskellPackages.qbar;
let
pkgs = import nixpkgs { inherit system; overlays = [
self.overlays.default
quasar.overlays.default
]; };
haskellPackages = getHaskellPackages pkgs "ghc94.";
results = {
qbar = haskellPackages.qbar;
};
in results // {
default = pkgs.linkFarm "qbar-all" (results // mapAttrs' (k: v: nameValuePair "${k}-doc" (v.doc or pkgs.emptyDirectory)) results);
}
);
defaultPackage = forAllSystems (system: self.packages.${system}.qbar);
overlay = final: prev: {
overlays.default = final: prev: {
haskell = prev.haskell // {
packageOverrides = hfinal: hprev: prev.haskell.packageOverrides hfinal hprev // {
qbar = import ./. {
pkgs = final;
haskellPackages = hfinal;
};
qbar = hfinal.generateOptparseApplicativeCompletions ["qbar"]
(hfinal.callCabal2nix "qbar" ./. {});
};
};
};
devShell = forAllSystems (system:
devShells = forAllSystems (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in pkgs.mkShell {
inputsFrom = [ self.packages.${system}.default.env ];
packages = [
pkgs.cabal-install
pkgs.zsh
pkgs.entr
pkgs.ghcid
pkgs.haskell-language-server
];
pkgs = import nixpkgs { inherit system; overlays = [
self.overlays.default
quasar.overlays.default
]; };
haskellPackages = getHaskellPackages pkgs "ghc94.";
in rec {
default = haskellPackages.shellFor {
packages = hpkgs: [
hpkgs.qbar
];
nativeBuildInputs = [
pkgs.cabal-install
pkgs.zsh
pkgs.entr
pkgs.ghcid
haskellPackages.haskell-language-server
pkgs.hlint
];
};
}
);
};
}
......@@ -102,6 +102,8 @@ library
pipes-network,
pipes-parse,
pipes-safe,
quasar,
quasar-timer,
random,
sorted-list,
stm,
......@@ -151,39 +153,7 @@ executable qbar
hs-source-dirs:
app
build-depends:
aeson,
async,
attoparsec,
base >=4.7 && <5,
binary,
bytestring,
colour,
concurrent-extra,
containers,
dbus,
directory,
filepath,
gitrev,
hostname,
lens,
mtl,
network,
optparse-applicative,
pipes,
pipes-aeson,
pipes-concurrency,
pipes-network,
pipes-parse,
pipes-safe,
qbar,
random,
sorted-list,
stm,
text,
time,
typed-process,
unix,
unordered-containers,
test-suite qbar-test
import: shared-executable-properties
......@@ -195,4 +165,4 @@ test-suite qbar-test
test
build-depends:
base >=4.7 && <5,
qbar,
\ No newline at end of file
qbar,
......@@ -7,7 +7,7 @@ import Control.Concurrent.STM (atomically)
import Control.Concurrent.STM.TChan
import Control.Concurrent.STM.TVar
import Control.Monad (replicateM)
import qualified Data.Text.Lazy as T
import Data.Text.Lazy qualified as T
import Pipes
import System.Random
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment