style(treewide): Switch to nixfmt
This commit is contained in:
parent
4b0e6f0a8c
commit
82c1d22d3d
8 changed files with 154 additions and 126 deletions
123
flake.nix
123
flake.nix
|
|
@ -14,70 +14,77 @@
|
|||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
dream2nix,
|
||||
fenix,
|
||||
}: let
|
||||
# At the moment, we only deploy to x86_64-linux. Update when we
|
||||
# care about another platform.
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
fenixPkgs = fenix.packages.${system};
|
||||
ownPkgs = self.packages.${system};
|
||||
in {
|
||||
packages.${system} = dream2nix.lib.importPackages {
|
||||
projectRoot = ./.;
|
||||
projectRootFile = "flake.nix";
|
||||
packagesDir = ./packages;
|
||||
packageSets = {
|
||||
nixpkgs = pkgs;
|
||||
fenix = fenixPkgs;
|
||||
};
|
||||
};
|
||||
|
||||
apps.${system} = {
|
||||
default = let
|
||||
inherit (ownPkgs) server templates;
|
||||
inherit (pkgs) writeShellScript;
|
||||
in {
|
||||
type = "app";
|
||||
program = builtins.toString (writeShellScript "tlaternet-webserver" ''
|
||||
${server}/bin/tlaternet-webserver --template-directory ${templates}
|
||||
'');
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
dream2nix,
|
||||
fenix,
|
||||
}:
|
||||
let
|
||||
# At the moment, we only deploy to x86_64-linux. Update when we
|
||||
# care about another platform.
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
fenixPkgs = fenix.packages.${system};
|
||||
ownPkgs = self.packages.${system};
|
||||
in
|
||||
{
|
||||
packages.${system} = dream2nix.lib.importPackages {
|
||||
projectRoot = ./.;
|
||||
projectRootFile = "flake.nix";
|
||||
packagesDir = ./packages;
|
||||
packageSets = {
|
||||
nixpkgs = pkgs;
|
||||
fenix = fenixPkgs;
|
||||
};
|
||||
};
|
||||
|
||||
update = let
|
||||
update-script = pkgs.callPackage ./nix/update.nix {inherit self;};
|
||||
in {
|
||||
type = "app";
|
||||
program = "${update-script}/bin/update";
|
||||
apps.${system} = {
|
||||
default =
|
||||
let
|
||||
inherit (ownPkgs) server templates;
|
||||
inherit (pkgs) writeShellScript;
|
||||
in
|
||||
{
|
||||
type = "app";
|
||||
program = builtins.toString (
|
||||
writeShellScript "tlaternet-webserver" ''
|
||||
${server}/bin/tlaternet-webserver --template-directory ${templates}
|
||||
''
|
||||
);
|
||||
};
|
||||
|
||||
update =
|
||||
let
|
||||
update-script = pkgs.callPackage ./nix/update.nix { inherit self; };
|
||||
in
|
||||
{
|
||||
type = "app";
|
||||
program = "${update-script}/bin/update";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nixosModules.default = import ./nix/module.nix {inherit self system;};
|
||||
nixosModules.default = import ./nix/module.nix { inherit self system; };
|
||||
|
||||
devShells.${system} = {
|
||||
server = pkgs.mkShell {
|
||||
packages = [
|
||||
(fenixPkgs.stable.withComponents [
|
||||
"rustc"
|
||||
"cargo"
|
||||
"rustfmt"
|
||||
"rust-std"
|
||||
"rust-docs"
|
||||
"clippy"
|
||||
"rust-src"
|
||||
"rust-analysis"
|
||||
])
|
||||
fenixPkgs.rust-analyzer
|
||||
];
|
||||
devShells.${system} = {
|
||||
server = pkgs.mkShell {
|
||||
packages = [
|
||||
(fenixPkgs.stable.withComponents [
|
||||
"rustc"
|
||||
"cargo"
|
||||
"rustfmt"
|
||||
"rust-std"
|
||||
"rust-docs"
|
||||
"clippy"
|
||||
"rust-src"
|
||||
"rust-analysis"
|
||||
])
|
||||
fenixPkgs.rust-analyzer
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
checks.${system} = import ./nix/checks {
|
||||
inherit self pkgs;
|
||||
checks.${system} = import ./nix/checks { inherit self pkgs; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
{ pkgs, self }:
|
||||
let
|
||||
callPackage = pkgs.lib.callPackageWith (pkgs // { inherit self; });
|
||||
in
|
||||
{
|
||||
pkgs,
|
||||
self,
|
||||
}: let
|
||||
callPackage = pkgs.lib.callPackageWith (pkgs // {inherit self;});
|
||||
in {
|
||||
lintNix = callPackage ./lint-nix.nix {};
|
||||
openHomepage = callPackage ./open-homepage.nix {};
|
||||
lintNix = callPackage ./lint-nix.nix { };
|
||||
openHomepage = callPackage ./open-homepage.nix { };
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,26 +2,31 @@
|
|||
self,
|
||||
lib,
|
||||
stdenv,
|
||||
alejandra,
|
||||
nixfmt-rfc-style,
|
||||
deadnix,
|
||||
statix,
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
inherit (lib) sourceFilesBySuffices;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
dontPatch = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontInstall = true;
|
||||
doCheck = true;
|
||||
stdenv.mkDerivation {
|
||||
dontPatch = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontInstall = true;
|
||||
doCheck = true;
|
||||
|
||||
name = "lint-nix";
|
||||
src = sourceFilesBySuffices self [".nix"];
|
||||
checkInputs = [alejandra deadnix statix];
|
||||
checkPhase = ''
|
||||
mkdir -p $out
|
||||
alejandra --check . | tee $out/alejandra.log
|
||||
deadnix --fail | tee $out/deadnix.log
|
||||
statix check | tee $out/statix.log
|
||||
'';
|
||||
}
|
||||
name = "lint-nix";
|
||||
src = sourceFilesBySuffices self [ ".nix" ];
|
||||
checkInputs = [
|
||||
nixfmt-rfc-style
|
||||
deadnix
|
||||
statix
|
||||
];
|
||||
checkPhase = ''
|
||||
mkdir -p $out
|
||||
nixfmt --strict --check . | tee $out/nixfmt.log
|
||||
deadnix --fail | tee $out/deadnix.log
|
||||
statix check | tee $out/statix.log
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,16 @@
|
|||
{
|
||||
self,
|
||||
nixosTest,
|
||||
}:
|
||||
{ self, nixosTest }:
|
||||
nixosTest {
|
||||
name = "open-homepage";
|
||||
|
||||
nodes = {
|
||||
# Host with just the default configuration
|
||||
defaults = {
|
||||
imports = [self.nixosModules.default];
|
||||
imports = [ self.nixosModules.default ];
|
||||
services.tlaternet-webserver.enable = true;
|
||||
};
|
||||
|
||||
host = {
|
||||
imports = [self.nixosModules.default];
|
||||
imports = [ self.nixosModules.default ];
|
||||
|
||||
services.tlaternet-webserver = {
|
||||
enable = true;
|
||||
|
|
@ -23,10 +20,10 @@ nixosTest {
|
|||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [8080];
|
||||
networking.firewall.allowedTCPPorts = [ 8080 ];
|
||||
};
|
||||
|
||||
client = {};
|
||||
client = { };
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
|
|
|
|||
|
|
@ -1,18 +1,14 @@
|
|||
{
|
||||
self,
|
||||
system,
|
||||
}: {
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
{ self, system }:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf mkOption;
|
||||
inherit (lib.types) str int;
|
||||
inherit (lib.strings) escapeShellArgs;
|
||||
inherit (self.packages.${system}) server templates;
|
||||
|
||||
cfg = config.services.tlaternet-webserver;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.tlaternet-webserver = {
|
||||
enable = mkEnableOption "tlaternet web server";
|
||||
|
|
@ -35,8 +31,8 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
systemd.services.tlaternet-webserver = {
|
||||
description = "tlaternet webserver";
|
||||
wantedBy = ["multi-user.target"];
|
||||
after = ["network.target"];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
script = escapeShellArgs [
|
||||
"${server}/bin/tlaternet-webserver"
|
||||
|
|
@ -60,14 +56,21 @@ in {
|
|||
ProtectKernelModules = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectControlGroups = true;
|
||||
RestrictAddressFamilies = ["AF_UNIX" "AF_INET" "AF_INET6"];
|
||||
RestrictAddressFamilies = [
|
||||
"AF_UNIX"
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = ["@system-service" "~@privileged @resources @setuid @keyring"];
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@privileged @resources @setuid @keyring"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,20 +6,25 @@
|
|||
git,
|
||||
nix,
|
||||
yq-go,
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
selfPackages = self.packages.${system};
|
||||
inherit (selfPackages.server.config.deps) cargo;
|
||||
inherit (selfPackages.templates.config.deps) npm;
|
||||
|
||||
npm-check-updates =
|
||||
(builtins.elemAt (lib.attrValues
|
||||
selfPackages.templates.config.nodejs-granular-v3.deps.npm-check-updates)
|
||||
0)
|
||||
.package-func
|
||||
.result;
|
||||
(builtins.elemAt (lib.attrValues selfPackages.templates.config.nodejs-granular-v3.deps.npm-check-updates) 0)
|
||||
.package-func.result;
|
||||
in
|
||||
writeShellApplication {
|
||||
name = "update";
|
||||
runtimeInputs = [cargo git nix npm npm-check-updates yq-go];
|
||||
text = builtins.readFile ./scripts/update.sh;
|
||||
}
|
||||
writeShellApplication {
|
||||
name = "update";
|
||||
runtimeInputs = [
|
||||
cargo
|
||||
git
|
||||
nix
|
||||
npm
|
||||
npm-check-updates
|
||||
yq-go
|
||||
];
|
||||
text = builtins.readFile ./scripts/update.sh;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
{ dream2nix, lib, ... }: {
|
||||
{ dream2nix, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
dream2nix.modules.dream2nix.rust-cargo-lock
|
||||
dream2nix.modules.dream2nix.rust-cargo-vendor
|
||||
dream2nix.modules.dream2nix.rust-crane
|
||||
];
|
||||
|
||||
deps = {fenix, ...}: {
|
||||
deps.cargo = fenix.stable.minimalToolchain;
|
||||
};
|
||||
deps =
|
||||
{ fenix, ... }:
|
||||
{
|
||||
deps.cargo = fenix.stable.minimalToolchain;
|
||||
};
|
||||
|
||||
inherit
|
||||
((lib.pipe ./Cargo.toml [
|
||||
|
|
|
|||
|
|
@ -3,28 +3,37 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
dream2nix.modules.dream2nix.nodejs-package-json-v3
|
||||
dream2nix.modules.dream2nix.nodejs-granular-v3
|
||||
dream2nix.modules.dream2nix.nodejs-devshell-v3
|
||||
];
|
||||
|
||||
deps = {nixpkgs, ...}: {
|
||||
inherit (nixpkgs) pkg-config runCommandLocal rsync vips yj;
|
||||
};
|
||||
deps =
|
||||
{ nixpkgs, ... }:
|
||||
{
|
||||
inherit (nixpkgs)
|
||||
pkg-config
|
||||
runCommandLocal
|
||||
rsync
|
||||
vips
|
||||
yj
|
||||
;
|
||||
};
|
||||
|
||||
name = "tlaternet-templates";
|
||||
version = "0.1.0";
|
||||
|
||||
mkDerivation = {
|
||||
src = config.deps.runCommandLocal "source" {nativeBuildInputs = [config.deps.yj];} ''
|
||||
src = config.deps.runCommandLocal "source" { nativeBuildInputs = [ config.deps.yj ]; } ''
|
||||
cp -r ${./.} $out/
|
||||
chmod -R u+w $out
|
||||
yj < $out/package.yaml > $out/package.json
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [config.deps.yj];
|
||||
nativeBuildInputs = [ config.deps.yj ];
|
||||
|
||||
# The default phase (which is hidden in `preInstallPhases`) will
|
||||
# copy the full node_modules directory to the output, and symlink
|
||||
|
|
@ -32,7 +41,7 @@
|
|||
#
|
||||
# Since this package's output is static HTML/JS, we do not want
|
||||
# that.
|
||||
preInstallPhases = lib.mkForce [];
|
||||
preInstallPhases = lib.mkForce [ ];
|
||||
installPhase = ''
|
||||
cp -r dist $out
|
||||
'';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue