70 lines
2 KiB
Nix
70 lines
2 KiB
Nix
# SPDX-FileCopyrightText: 2023 Hoang Nguyen <folliekazetani@protonmail.com>
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
treefmt-nix = {
|
|
url = "github:numtide/treefmt-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
flake-compat = {
|
|
url = "github:edolstra/flake-compat";
|
|
flake = false;
|
|
};
|
|
};
|
|
outputs = { self, nixpkgs, flake-utils, treefmt-nix, ... }:
|
|
flake-utils.lib.eachDefaultSystem
|
|
(system:
|
|
let
|
|
inherit (nixpkgs) lib;
|
|
pkgs = import nixpkgs { inherit system; };
|
|
|
|
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
|
|
|
|
apps = {
|
|
# Wrap bazel with `nix run .#bazel`, for convenience
|
|
inherit (pkgs) bazel;
|
|
|
|
# Run `go mod tidy` then update BUILD.bazel files
|
|
gazelle = let bazel = "${pkgs.bazel}/bin/bazel"; in
|
|
pkgs.writeShellScriptBin "gazelle-update" ''
|
|
${bazel} run @rules_go//go -- mod tidy -v
|
|
${bazel} run //:gazelle
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
apps = lib.mapAttrs
|
|
(_: value:
|
|
flake-utils.lib.mkApp { drv = value; })
|
|
apps;
|
|
|
|
formatter = treefmtEval.config.build.wrapper;
|
|
|
|
checks = {
|
|
treefmt = treefmtEval.config.build.check self;
|
|
license = pkgs.writeShellScriptBin "reuse-lint" ''
|
|
${pkgs.reuse}/bin/reuse lint
|
|
'';
|
|
golangci-lint = with pkgs; writeShellApplication {
|
|
name = "golangci-lint";
|
|
runtimeInputs = [ go ];
|
|
text = ''
|
|
${golangci-lint}/bin/golangci-lint run
|
|
'';
|
|
};
|
|
};
|
|
|
|
devShells.default = with pkgs; mkShellNoCC {
|
|
name = "cuelumi-dev-shell";
|
|
inputsFrom = [ treefmtEval.config.build.devShell ];
|
|
packages = [ bazel ];
|
|
};
|
|
}
|
|
);
|
|
}
|