Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .config/flake/outputs.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
{
flake-utils,
flaky,
nixpkgs,
self,
systems,
}: let
sys = flake-utils.lib.system;

supportedSystems = import systems;

localPackages = pkgs: import ../../packages {inherit pkgs;};
in
{
## These are also consumed by downstream projects, so it may include more
## than is referenced in this flake.
schemas = flaky.schemas;

overlays = {
default = nixpkgs.lib.composeManyExtensions [
flaky.overlays.default
self.overlays.dependencies
self.overlays.local
];

dependencies = import ../../nix/dependencies.nix;

local = final: prev: let
localPkgs = localPackages final;
in {
flaky-management-scripts = localPkgs.management-scripts;
};
};

templates = import ../../templates;

homeConfigurations =
builtins.listToAttrs
(builtins.map
(flaky.lib.homeConfigurations.example self
[
({pkgs, ...}: {
home.packages = [pkgs.flaky-management-scripts];
nixpkgs.overlays = [self.overlays.default];
})
])
supportedSystems);
}
// flake-utils.lib.eachSystem supportedSystems
(system: let
pkgs = nixpkgs.legacyPackages.${system}.appendOverlays [
flaky.overlays.default
self.overlays.dependencies
];
in {
devShells =
{default = flaky.lib.devShells.default system self [] "";}
// self.projectConfigurations.${system}.devShells
// import ../../devShells {
inherit pkgs sys;
inherit (nixpkgs) lib;
};

apps.sync-template = flake-utils.lib.mkApp {
drv = self.packages.${system}.management-scripts;
name = "sync-template";
};

packages =
{default = self.packages.${system}.management-scripts;}
// localPackages pkgs;

projectConfigurations = flaky.lib.projectConfigurations.nix {
inherit pkgs self;
modules = [flaky.projectModules.bash];
};

checks = self.projectConfigurations.${system}.checks;
formatter = self.projectConfigurations.${system}.formatter;
})
83 changes: 3 additions & 80 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -20,86 +20,9 @@
use-registries = false;
};

outputs = {
flake-utils,
flaky,
nixpkgs,
self,
systems,
}: let
sys = flake-utils.lib.system;

supportedSystems = import systems;

localPackages = pkgs: import ./packages {inherit pkgs;};
in
{
## These are also consumed by downstream projects, so it may include more
## than is referenced in this flake.
schemas = flaky.schemas;

overlays = {
default = nixpkgs.lib.composeManyExtensions [
flaky.overlays.default
self.overlays.dependencies
self.overlays.local
];

dependencies = import ./nix/dependencies.nix;

local = final: prev: let
localPkgs = localPackages final;
in {
flaky-management-scripts = localPkgs.management-scripts;
};
};

templates = import ./templates;

homeConfigurations =
builtins.listToAttrs
(builtins.map
(flaky.lib.homeConfigurations.example self
[
({pkgs, ...}: {
home.packages = [pkgs.flaky-management-scripts];
nixpkgs.overlays = [self.overlays.default];
})
])
supportedSystems);
}
// flake-utils.lib.eachSystem supportedSystems
(system: let
pkgs = nixpkgs.legacyPackages.${system}.appendOverlays [
flaky.overlays.default
self.overlays.dependencies
];
in {
devShells =
{default = flaky.lib.devShells.default system self [] "";}
// self.projectConfigurations.${system}.devShells
// import ./devShells {
inherit pkgs sys;
inherit (nixpkgs) lib;
};

apps.sync-template = flake-utils.lib.mkApp {
drv = self.packages.${system}.management-scripts;
name = "sync-template";
};

packages =
{default = self.packages.${system}.management-scripts;}
// localPackages pkgs;

projectConfigurations = flaky.lib.projectConfigurations.nix {
inherit pkgs self;
modules = [flaky.projectModules.bash];
};

checks = self.projectConfigurations.${system}.checks;
formatter = self.projectConfigurations.${system}.formatter;
});
## The flake isn’t a Nix expression, so it’s clearer to keep `outputs` (which
## is) in a separate file.
outputs = inputs: import .config/flake/outputs.nix inputs;

inputs = {
## Flaky should generally be the source of truth for its inputs.
Expand Down
89 changes: 89 additions & 0 deletions templates/bash/.config/flake/outputs.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
flake-utils,
flaky,
nixpkgs,
self,
systems,
}: let
pname = "{{project.name}}";

supportedSystems = import systems;
in
{
schemas = {
inherit
(flaky.schemas)
overlays
homeConfigurations
apps
packages
devShells
projectConfigurations
checks
formatter
;
};

overlays.default = final: prev: {};

lib = {};

homeConfigurations =
builtins.listToAttrs
(builtins.map
(flaky.lib.homeConfigurations.example self [
({pkgs, ...}: {home.packages = [pkgs.${pname}];})
])
supportedSystems);
}
// flake-utils.lib.eachSystem supportedSystems (system: let
pkgs = nixpkgs.legacyPackages.${system}.appendOverlays [
flaky.overlays.default
];

src = pkgs.lib.cleanSource ../..;
in {
apps = {};

packages = {
default = self.packages.${system}.${pname};

"${pname}" = pkgs.checkedDrv (pkgs.stdenv.mkDerivation {
inherit pname src;

version = "0.1.0";

meta = {
description = "{{project.summary}}";
longDescription = ''
{{project.description}}
'';
};

nativeBuildInputs = [pkgs.bats];

patchPhase = ''
runHook prePatch
patchShebangs .
runHook postPatch
'';

doCheck = true;

checkPhase = ''
bats --print-output-on-failure ./test/all-tests.bats
'';

doInstallCheck = true;
});
};

projectConfigurations =
flaky.lib.projectConfigurations.bash {inherit pkgs self;};

devShells =
self.projectConfigurations.${system}.devShells
// {default = flaky.lib.devShells.default system self [] "";};
checks = self.projectConfigurations.${system}.checks;
formatter = self.projectConfigurations.${system}.formatter;
})
92 changes: 3 additions & 89 deletions templates/bash/flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -20,95 +20,9 @@
use-registries = false;
};

outputs = {
flake-utils,
flaky,
nixpkgs,
self,
systems,
}: let
pname = "{{project.name}}";

supportedSystems = import systems;
in
{
schemas = {
inherit
(flaky.schemas)
overlays
homeConfigurations
apps
packages
devShells
projectConfigurations
checks
formatter
;
};

overlays.default = final: prev: {};

lib = {};

homeConfigurations =
builtins.listToAttrs
(builtins.map
(flaky.lib.homeConfigurations.example self [
({pkgs, ...}: {home.packages = [pkgs.${pname}];})
])
supportedSystems);
}
// flake-utils.lib.eachSystem supportedSystems (system: let
pkgs = nixpkgs.legacyPackages.${system}.appendOverlays [
flaky.overlays.default
];

src = pkgs.lib.cleanSource ./.;
in {
apps = {};

packages = {
default = self.packages.${system}.${pname};

"${pname}" = pkgs.checkedDrv (pkgs.stdenv.mkDerivation {
inherit pname src;

version = "0.1.0";

meta = {
description = "{{project.summary}}";
longDescription = ''
{{project.description}}
'';
};

nativeBuildInputs = [pkgs.bats];

patchPhase = ''
runHook prePatch
patchShebangs .
runHook postPatch
'';

doCheck = true;

checkPhase = ''
bats --print-output-on-failure ./test/all-tests.bats
'';

doInstallCheck = true;
});
};

projectConfigurations =
flaky.lib.projectConfigurations.bash {inherit pkgs self;};

devShells =
self.projectConfigurations.${system}.devShells
// {default = flaky.lib.devShells.default system self [] "";};
checks = self.projectConfigurations.${system}.checks;
formatter = self.projectConfigurations.${system}.formatter;
});
## The flake isn’t a Nix expression, so it’s clearer to keep `outputs` (which
## is) in a separate file.
outputs = inputs: import .config/flake/outputs.nix inputs;

inputs = {
## Flaky should generally be the source of truth for its inputs.
Expand Down
Loading