first commit
This commit is contained in:
97
flake.nix
Normal file
97
flake.nix
Normal file
@@ -0,0 +1,97 @@
|
||||
{
|
||||
description = "Bifrost's Nix Flake";
|
||||
|
||||
# Flake inputs
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/staging-next";
|
||||
};
|
||||
|
||||
# Flake outputs
|
||||
outputs =
|
||||
{ self, ... }@inputs:
|
||||
let
|
||||
# The systems supported for this flake's outputs
|
||||
supportedSystems = [
|
||||
"x86_64-linux" # 64-bit Intel/AMD Linux
|
||||
"aarch64-linux" # 64-bit ARM Linux
|
||||
"aarch64-darwin" # 64-bit ARM macOS
|
||||
];
|
||||
|
||||
# Helper for providing system-specific attributes
|
||||
forEachSupportedSystem =
|
||||
f:
|
||||
inputs.nixpkgs.lib.genAttrs supportedSystems (
|
||||
system:
|
||||
f {
|
||||
inherit system;
|
||||
# Provides a system-specific, configured Nixpkgs
|
||||
pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
# Enable using unfree packages
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
nixosModules = {
|
||||
bifrost =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [ ./nix/modules/bifrost.nix ];
|
||||
services.bifrost.package = lib.mkDefault self.packages.${pkgs.system}.bifrost-http;
|
||||
};
|
||||
};
|
||||
|
||||
packages = forEachSupportedSystem (
|
||||
{
|
||||
pkgs,
|
||||
system,
|
||||
}:
|
||||
let
|
||||
version = "1.4.9";
|
||||
|
||||
bifrost-ui = pkgs.callPackage ./nix/packages/bifrost-ui.nix {
|
||||
src = self;
|
||||
inherit version;
|
||||
};
|
||||
in
|
||||
{
|
||||
bifrost-ui = bifrost-ui;
|
||||
|
||||
bifrost-http = pkgs.callPackage ./nix/packages/bifrost-http.nix {
|
||||
inherit inputs;
|
||||
src = self;
|
||||
inherit version;
|
||||
inherit bifrost-ui;
|
||||
};
|
||||
|
||||
default = self.packages.${system}.bifrost-http;
|
||||
}
|
||||
);
|
||||
|
||||
apps = forEachSupportedSystem (
|
||||
{ system, ... }:
|
||||
{
|
||||
bifrost-http = {
|
||||
type = "app";
|
||||
program = "${self.packages.${system}.bifrost-http}/bin/bifrost-http";
|
||||
};
|
||||
|
||||
default = self.apps.${system}.bifrost-http;
|
||||
}
|
||||
);
|
||||
|
||||
# To activate the default environment:
|
||||
# nix develop
|
||||
# Or if you use direnv:
|
||||
# direnv allow
|
||||
devShells = forEachSupportedSystem (
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# Run `nix develop` to activate this environment or `direnv allow` if you have direnv installed
|
||||
default = import ./nix/devshells/default.nix { inherit pkgs; };
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user