git.fiddlerwoaroof.com
Raw Blame History
{
  inputs = {
    nixpkgs = {
      type = "github";
      owner = "nixos";
      repo = "nixpkgs";
      ref = "nixos-22.05";
    };
    flake-compat = {
      url = "github:edolstra/flake-compat";
      flake = false;
    };
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = {
    self,
    nixpkgs,
    flake-compat,
    flake-utils,
  }:
    flake-utils.lib.eachDefaultSystem (system: let
      pkgs = nixpkgs.legacyPackages.${system};
      fwoar-lisputils = pkgs.lispPackages.buildLispPackage {
        baseName = "fwoar-lisputils";
        version = "whatever";
        buildSystems = ["fwoar-lisputils"];
        description = "lisputils";
        deps = with pkgs.quicklispPackages; [
          alexandria
          cl-containers
          closer-mop
          iterate
          parachute
          plump
          serapeum
          swank
          uiop
          yason
        ];
        src = pkgs.fetchFromGitHub {
          owner = "fiddlerwoaroof";
          repo = "fwoar-lisputils";
          rev = "5e0d458a4d70e35fea74ecc1edc3352d26b2b74e";
          sha256 = "sha256-XTCBgREpTcvug2rLDQbvnwo8k59NaraswFve0TH9DmI=";
        };
        asdFilesToKeep = ["fwoar-lisputils.asd"];
      };
      cl-isaac = pkgs.lispPackages.buildLispPackage {
        baseName = "cl-isaac";
        version = "whatever";
        buildSystems = ["cl-isaac"];
        description = "lisputils";
        deps = with pkgs.quicklispPackages; [
        ];
        src = pkgs.fetchFromGitHub {
          owner = "thephoeron";
          repo = "cl-isaac";
          rev = "master";
          sha256 = "sha256-iV+7YkGPAA+e0SXODlSDAJIUUiL+pcj2ya7FHJGr4UU=";
        };
        asdFilesToKeep = ["cl-isaac.asd"];
      };
      map-set = pkgs.lispPackages.buildLispPackage {
        baseName = "map-set";
        version = "whatever";
        buildSystems = ["map-set"];
        description = "lisputils";
        deps = with pkgs.quicklispPackages; [
        ];
        src = builtins.fetchTarball {
          url = "http://beta.quicklisp.org/archive/map-set/2019-03-07/map-set-20190307-hg.tgz";
          sha256 = "0fikz2s0pw5dfbs91j8y7iy3908gknhxy9047mp23jxv1f54jzdh";
        };
        asdFilesToKeep = ["map-set.asd"];
      };
      lack = pkgs.lispPackages.buildLispPackage {
        baseName = "lack";
        version = "whatever";
        buildSystems = [
          # "lack-app-directory"
          # "lack-app-file"
          "lack-component"
          "lack-middleware-accesslog"
          "lack-middleware-auth-basic"
          "lack-middleware-backtrace"
          "lack-middleware-csrf"
          "lack-middleware-mount"
          "lack-middleware-session"
          # "lack-middleware-static"
          "lack-request"
          "lack-response"
          # "lack-session-store-dbi"
          # "lack-session-store-redis"
          # "lack-test"
          "lack-util-writer-stream"
          "lack-util"
          "lack"
        ];
        description = "lisputils";
        deps = with pkgs.quicklispPackages; [
          bordeaux-threads
          circular-streams
          cl-base64
          cl-isaac
          http-body
          local-time
          quri
          split-sequence
        ];
        src = pkgs.fetchFromGitHub {
          owner = "fukamachi";
          repo = "lack";
          rev = "master";
          sha256 = "sha256-XCbaAqZhyBd9h6clFbQPV2QdlfdQBmfGE43dkDv5pXs=";
        };
        asdFilesToKeep = [
          # "lack-app-directory.asd"
          # "lack-app-file.asd"
          "lack-component.asd"
          "lack-middleware-accesslog.asd"
          "lack-middleware-auth-basic.asd"
          "lack-middleware-backtrace.asd"
          "lack-middleware-csrf.asd"
          "lack-middleware-mount.asd"
          "lack-middleware-session.asd"
          # "lack-middleware-static.asd"
          "lack-request.asd"
          "lack-response.asd"
          # "lack-session-store-dbi.asd"
          # "lack-session-store-redis.asd"
          # "lack-test.asd"
          "lack-util-writer-stream.asd"
          "lack-util.asd"
          "lack.asd"
        ];
      };
      myway = pkgs.lispPackages.buildLispPackage {
        baseName = "myway";
        version = "whatever";
        buildSystems = ["myway"];
        description = "lisputils";
        deps = with pkgs.quicklispPackages; [
          cl-ppcre
          map-set
          quri
        ];
        src = pkgs.fetchFromGitHub {
          owner = "fukamachi";
          repo = "myway";
          rev = "master";
          sha256 = "sha256-TzXyS6MVYxjM06hHMYOz6hVYDXHzfyncKQRvtm5HTHU=";
        };
        asdFilesToKeep = ["myway.asd"];
      };
      ningle = pkgs.lispPackages.buildLispPackage {
        baseName = "ningle";
        version = "whatever";
        buildSystems = ["ningle"];
        description = "lisputils";
        deps = with pkgs.quicklispPackages; [
          cl-syntax-annot
          lack
          myway
        ];
        src = pkgs.fetchFromGitHub {
          owner = "fukamachi";
          repo = "ningle";
          rev = "master";
          sha256 = "sha256-F7ngGme6akS+vC/XH3iHFk/r9WKybeZzGojIQCuyNmk=";
        };
        asdFilesToKeep = ["ningle.asd"];
      };
      araneus = pkgs.lispPackages.buildLispPackage {
        baseName = "araneus";
        version = "whatever";
        buildSystems = ["araneus"];
        description = "lisputils";
        deps =
          [ningle]
          ++ (with pkgs.quicklispPackages; [
            alexandria
            fwoar-lisputils
            spinneret
            cl-mustache
          ]);
        src = pkgs.fetchFromGitHub {
          owner = "fiddlerwoaroof";
          repo = "araneus";
          rev = "4cc1c130b6e0c01b81b5a4a83d744025d37a48d1";
          sha256 = "sha256-Jxbx7gLIW8T6FNLdxepCbEEYRFtGAmvZ1L4lvlAeqPY=";
        };
        asdFilesToKeep = ["araneus.asd"];
      };
    in {
      packages = {
        inherit fwoar-lisputils araneus;
        default = pkgs.stdenv.mkDerivation {
          inherit system;
          name = "wfv";
          src = ./.;
          builder = ./build.sh;
          dontStrip = true;
          LD_LIBRARY_PATH = "${pkgs.openssl.out}/lib";
          nativeBuildInputs = [
          ];
          buildInputs = [
            pkgs.bash
            pkgs.makeWrapper
            pkgs.openssl.dev
            araneus
            fwoar-lisputils
            pkgs.quicklispPackages.alexandria
            (pkgs.quicklispPackages.clack.override (o: {
              buildSystems = [
                # "clack-handler-fcgi"
                "clack-handler-hunchentoot"
                # "clack-handler-toot"
                # "clack-handler-wookie
                "clack-socket"
                # "clack-test"
                "clack"
              ];
              asdFilesToKeep = [
                # "clack-handler-fcgi.asd"
                "clack-handler-hunchentoot.asd"
                # "clack-handler-toot.asd"
                # "clack-handler-wookie.asd"
                "clack-socket.asd"
                # "clack-test.asd"
                "clack.asd"
              ];
              deps = with pkgs.quicklispPackages; o.deps ++ [
                hunchentoot
              ];
            }))
            pkgs.quicklispPackages.drakma
            pkgs.quicklispPackages.fset
            pkgs.quicklispPackages.hunchentoot
            pkgs.quicklispPackages.quri
            pkgs.quicklispPackages.serapeum
            pkgs.quicklispPackages.spinneret
            pkgs.quicklispPackages.uiop
            pkgs.quicklispPackages.yason
            pkgs.sbcl
            pkgs.which
          ];
        };
        docker = pkgs.dockerTools.buildLayeredImage {
          name = "wfv-docker";
          config = {
            Cmd = ["${self.packages.${system}.default}/bin/wfv"];
          };
        };
      };
    });
}