templates: add a basic and rust template
This commit is contained in:
parent
e6ae1d93d7
commit
985e784e62
6 changed files with 131 additions and 3 deletions
17
flake.nix
17
flake.nix
|
@ -10,7 +10,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ self, nixpkgs, home-manager }:
|
outputs =
|
||||||
|
inputs@{ self, nixpkgs, ... }:
|
||||||
let
|
let
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
|
|
||||||
|
@ -22,13 +23,23 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
xps9510 = lib.nixosSystem {
|
xps9510 = lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [ ./hosts/xps9510/configuration.nix ];
|
modules = [ ./hosts/xps9510/configuration.nix ];
|
||||||
specialArgs = { inherit inputs outputs system pkgs; };
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
inputs
|
||||||
|
outputs
|
||||||
|
system
|
||||||
|
pkgs
|
||||||
|
;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
templates = import ./templates { self = self.templates; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
1
templates/basic/.envrc
Normal file
1
templates/basic/.envrc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
use flake;
|
1
templates/basic/.gitignore
vendored
Normal file
1
templates/basic/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.direnv/
|
29
templates/basic/flake.nix
Normal file
29
templates/basic/flake.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
description = "A very basic flake";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
|
utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
utils,
|
||||||
|
}:
|
||||||
|
utils.lib.eachDefaultSystem (
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
devShell = pkgs.mkShell { buildInputs = with pkgs; [ ]; };
|
||||||
|
|
||||||
|
packages.${system} = {
|
||||||
|
hello = pkgs.hello;
|
||||||
|
default = self.packages.hello;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
29
templates/default.nix
Normal file
29
templates/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ self }:
|
||||||
|
{
|
||||||
|
basic = {
|
||||||
|
path = ./basic;
|
||||||
|
description = "A basic template";
|
||||||
|
welcomeText = ''
|
||||||
|
# A basic flake
|
||||||
|
|
||||||
|
## More Info
|
||||||
|
- [Nix Reference Manual](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
rust = {
|
||||||
|
path = ./rust;
|
||||||
|
description = "A basic rust cargo template";
|
||||||
|
welcomeText = ''
|
||||||
|
# A basic rust cargo template
|
||||||
|
|
||||||
|
Maybe consider setting a license in ./flake.nix
|
||||||
|
|
||||||
|
## More Info
|
||||||
|
- [Rust language](https://www.rust-lang.org/) - https://www.rust-lang.org/
|
||||||
|
- [Rust on the NixOS Wiki](https://nixos.wiki/wiki/Rust) - https://nixos.wiki/wiki/Rust
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultTemplate = self.basic;
|
||||||
|
}
|
57
templates/rust/flake.nix
Normal file
57
templates/rust/flake.nix
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
|
};
|
||||||
|
outputs =
|
||||||
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
rust-overlay,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
manifest = (pkgs.lib.importTOML ./Cargo.toml).package;
|
||||||
|
pname = manifest.name;
|
||||||
|
|
||||||
|
overlays = [ (import rust-overlay) ];
|
||||||
|
pkgs = import nixpkgs { inherit system overlays; };
|
||||||
|
|
||||||
|
rustVersion = pkgs.rust-bin.stable.latest.default;
|
||||||
|
|
||||||
|
rustPlatform = pkgs.makeRustPlatform {
|
||||||
|
cargo = rustVersion;
|
||||||
|
rustc = rustVersion;
|
||||||
|
};
|
||||||
|
|
||||||
|
rustBuild = rustPlatform.buildRustPackage {
|
||||||
|
inherit pname;
|
||||||
|
version = manifest.version;
|
||||||
|
src = ./.;
|
||||||
|
cargoLock.lockFile = ./Cargo.lock;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = manifest.description;
|
||||||
|
#license = nixpkgs.lib.licenses.unlicense;
|
||||||
|
maintainers = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = {
|
||||||
|
${pname} = rustBuild;
|
||||||
|
default = self.packages.${pname};
|
||||||
|
};
|
||||||
|
|
||||||
|
devShell = pkgs.mkShell {
|
||||||
|
buildInputs = [ (rustVersion.override { extensions = [ "rust-src" ]; }) ];
|
||||||
|
|
||||||
|
shellHook = '''';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue