Compare commits

..

7 commits

Author SHA1 Message Date
0d71113b22
shfmt: Use tabs to indent, to match pre-commit hook 2024-04-16 19:41:25 +02:00
9dc5bbc525
pre-commit-hooks repo URL updated 2024-04-16 19:41:12 +02:00
a6ccb1eaaf
fish: Add tree alias 2024-04-16 19:32:50 +02:00
5eef55d4f7
Add treefmt, run formatter 2024-04-16 19:32:32 +02:00
b142fe2109
Add headscale-ui 2024-04-16 19:30:04 +02:00
0c242f2550
atuin: Use new sync method 2024-04-16 10:34:32 +02:00
f5e956be5c
flake.lock: Update
Flake lock file updates:

• Updated input 'atuin':
    'github:atuinsh/atuin/50a73f055288d72eeeb128233e2a04bc88a5d5e8?narHash=sha256-lPAdHkIQBydROJ2e6t0nFP9X220GQ4sEwb5lFQBGYb0%3D' (2024-04-15)
  → 'github:atuinsh/atuin/a0231a70950fbec9dcc3403e37066d891d1fc833?narHash=sha256-TTQ2XLqng7TMLnRsLDb/50yyHYuMSPZJ4H%2B7CEFWQQ0%3D' (2024-04-15)
• Updated input 'disko':
    'github:nix-community/disko/bb5ba68ebb73b5ca7996b64e1457fe885891e78e?narHash=sha256-k1aV06cotPwWO3FW%2Bho%2BdEoGjxNM303%2BUmhiG2o6XPs%3D' (2024-04-15)
  → 'github:nix-community/disko/d51114dc1bf3cfaba2b6644aabd16ff0c9909af5?narHash=sha256-5yyHYBWFZUKXkJvOccPBeX83hH2iED54NLnWs2eWgS0%3D' (2024-04-15)
• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/1b01966ee01008bcec18702ea5e543b93236ecef?narHash=sha256-7tpbjpUI7YDpxP0ciM9bWBxzAT3jsZP9l8EGWFQVBmU%3D' (2024-04-15)
  → 'github:nix-community/emacs-overlay/cf218237d0d80f1ec8109677ebc82ded2ca84c43?narHash=sha256-6qPfZsYW3BvyJq%2BBahgygLdFd5bdqrFue8QGat4lSQo%3D' (2024-04-15)
• Updated input 'microvm':
    'github:astro/microvm.nix/ee0068ca87bdabbde3cc39b7af807c0302d0304c?narHash=sha256-CNdpLnGOUZfIhBanAFVF7t1xstaQGL4w6sQPrVeLlus%3D' (2024-04-09)
  → 'github:astro/microvm.nix/a1341f7195e34d9bb88c12314cc3b0c4429f9b0a?narHash=sha256-c/yG/AsPmMBMe4RAxn4KOkOaR4rsW5s3AjtfriOQKD8%3D' (2024-04-15)
• Updated input 'sops':
    'github:Mic92/sops-nix/226062b47fe0e2130ba3ee9f4f1c880dc815cf87?narHash=sha256-ZaefFyvt5369XdjzSw43NhfbPM9MN5b9YXhzx4lFIRc%3D' (2024-04-14)
  → 'github:Mic92/sops-nix/cc535d07cbcdd562bcca418e475c7b1959cefa4b?narHash=sha256-APoDs2GtzVrsE%2BZ9w72qpHzEtEDfuinWcNTN7zhwLxg%3D' (2024-04-15)
2024-04-15 20:25:19 +02:00
12 changed files with 262 additions and 179 deletions

View file

@ -54,11 +54,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1713166406, "lastModified": 1713173848,
"narHash": "sha256-lPAdHkIQBydROJ2e6t0nFP9X220GQ4sEwb5lFQBGYb0=", "narHash": "sha256-TTQ2XLqng7TMLnRsLDb/50yyHYuMSPZJ4H+7CEFWQQ0=",
"owner": "atuinsh", "owner": "atuinsh",
"repo": "atuin", "repo": "atuin",
"rev": "50a73f055288d72eeeb128233e2a04bc88a5d5e8", "rev": "a0231a70950fbec9dcc3403e37066d891d1fc833",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -192,11 +192,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1713152224, "lastModified": 1713204594,
"narHash": "sha256-k1aV06cotPwWO3FW+ho+dEoGjxNM303+UmhiG2o6XPs=", "narHash": "sha256-5yyHYBWFZUKXkJvOccPBeX83hH2iED54NLnWs2eWgS0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "bb5ba68ebb73b5ca7996b64e1457fe885891e78e", "rev": "d51114dc1bf3cfaba2b6644aabd16ff0c9909af5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -216,11 +216,11 @@
"nixpkgs-stable": "nixpkgs-stable_2" "nixpkgs-stable": "nixpkgs-stable_2"
}, },
"locked": { "locked": {
"lastModified": 1713154103, "lastModified": 1713200735,
"narHash": "sha256-7tpbjpUI7YDpxP0ciM9bWBxzAT3jsZP9l8EGWFQVBmU=", "narHash": "sha256-6qPfZsYW3BvyJq+BahgygLdFd5bdqrFue8QGat4lSQo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "1b01966ee01008bcec18702ea5e543b93236ecef", "rev": "cf218237d0d80f1ec8109677ebc82ded2ca84c43",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -584,11 +584,11 @@
"spectrum": "spectrum" "spectrum": "spectrum"
}, },
"locked": { "locked": {
"lastModified": 1712654305, "lastModified": 1713189110,
"narHash": "sha256-CNdpLnGOUZfIhBanAFVF7t1xstaQGL4w6sQPrVeLlus=", "narHash": "sha256-c/yG/AsPmMBMe4RAxn4KOkOaR4rsW5s3AjtfriOQKD8=",
"owner": "astro", "owner": "astro",
"repo": "microvm.nix", "repo": "microvm.nix",
"rev": "ee0068ca87bdabbde3cc39b7af807c0302d0304c", "rev": "a1341f7195e34d9bb88c12314cc3b0c4429f9b0a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -838,13 +838,13 @@
"lastModified": 1712897695, "lastModified": 1712897695,
"narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=", "narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "git-hooks.nix",
"rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8", "rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "git-hooks.nix",
"type": "github" "type": "github"
} }
}, },
@ -873,7 +873,8 @@
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"rust-overlay": "rust-overlay_2", "rust-overlay": "rust-overlay_2",
"sops": "sops", "sops": "sops",
"sunshine": "sunshine" "sunshine": "sunshine",
"treefmt-nix": "treefmt-nix"
} }
}, },
"rust-overlay": { "rust-overlay": {
@ -932,11 +933,11 @@
"nixpkgs-stable": "nixpkgs-stable_4" "nixpkgs-stable": "nixpkgs-stable_4"
}, },
"locked": { "locked": {
"lastModified": 1713066950, "lastModified": 1713174909,
"narHash": "sha256-ZaefFyvt5369XdjzSw43NhfbPM9MN5b9YXhzx4lFIRc=", "narHash": "sha256-APoDs2GtzVrsE+Z9w72qpHzEtEDfuinWcNTN7zhwLxg=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "226062b47fe0e2130ba3ee9f4f1c880dc815cf87", "rev": "cc535d07cbcdd562bcca418e475c7b1959cefa4b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1030,6 +1031,26 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1711963903,
"narHash": "sha256-N3QDhoaX+paWXHbEXZapqd1r95mdshxToGowtjtYkGI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49dc4a92b02b8e68798abd99184f228243b6e3ac",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -18,13 +18,18 @@
nixos-hardware.url = "github:NixOS/nixos-hardware"; nixos-hardware.url = "github:NixOS/nixos-hardware";
pre-commit-hooks = { pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix"; url = "github:cachix/git-hooks.nix";
inputs = { inputs = {
flake-utils.follows = "flake-utils"; flake-utils.follows = "flake-utils";
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
}; };
}; };
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
naersk = { naersk = {
url = "github:nix-community/naersk"; url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -173,7 +178,10 @@
"aarch64-linux" "aarch64-linux"
]; ];
imports = [ inputs.pre-commit-hooks.flakeModule ]; imports = [
inputs.pre-commit-hooks.flakeModule
inputs.treefmt-nix.flakeModule
];
flake = { flake = {
lib = import ./lib inputs; lib = import ./lib inputs;
@ -251,9 +259,28 @@
}; };
}; };
treefmt = {
projectRootFile = "flake.lock";
programs = {
black.enable = true;
deadnix.enable = true;
nixfmt = {
enable = true;
package = pkgs.nixfmt-rfc-style;
};
shellcheck.enable = true;
shfmt = {
enable = true;
indent_size = 0;
};
};
};
packages = { packages = {
git-repo-go = pkgs.callPackage ./pkgs/git-repo-go { }; git-repo-go = pkgs.callPackage ./pkgs/git-repo-go { };
gitu = pkgs.callPackage ./pkgs/gitu { }; gitu = pkgs.callPackage ./pkgs/gitu { };
headscale-ui = pkgs.callPackage ./pkgs/headscale-ui { };
incus-ui = pkgs.callPackage ./pkgs/incus-ui { }; incus-ui = pkgs.callPackage ./pkgs/incus-ui { };
openfga = pkgs.callPackage ./pkgs/openfga { }; openfga = pkgs.callPackage ./pkgs/openfga { };
zed = pkgs.callPackage ./pkgs/zed { }; zed = pkgs.callPackage ./pkgs/zed { };
@ -312,8 +339,6 @@
name = "install"; name = "install";
packages = [ inputs'.disko.packages.disko ]; packages = [ inputs'.disko.packages.disko ];
}; };
formatter = pkgs.nixfmt-rfc-style;
}; };
}; };
} }

View file

@ -15,6 +15,10 @@ in
settings = { settings = {
dialect = "uk"; dialect = "uk";
sync = {
records = true;
};
}; };
}; };
}; };

View file

@ -40,6 +40,7 @@ in
shellAliases = { shellAliases = {
ls = "${pkgs.eza}/bin/eza --long --git --git-repos --header --classify --binary"; ls = "${pkgs.eza}/bin/eza --long --git --git-repos --header --classify --binary";
tree = "${pkgs.eza}/bin/eza --tree --icons";
vimdiff = mkIf config.eboskma.programs.neovim.enable "nvim -d"; vimdiff = mkIf config.eboskma.programs.neovim.enable "nvim -d";
vim = mkIf config.eboskma.programs.neovim.enable "nvim"; vim = mkIf config.eboskma.programs.neovim.enable "nvim";

View file

@ -217,20 +217,16 @@ in
workspaceAutoBackAndForth = true; workspaceAutoBackAndForth = true;
workspaceOutputAssign = builtins.concatLists ( workspaceOutputAssign = builtins.concatLists (
builtins.attrValues ( builtins.attrValues (
builtins.mapAttrs builtins.mapAttrs (
( name: workspaces:
name: workspaces: let
let output = if name == "right" then "DP-0" else "DP-4";
output = if name == "right" then "DP-0" else "DP-4"; in
in builtins.map (ws: {
builtins.map inherit output;
(ws: { workspace = toString ws;
inherit output; }) workspaces
workspace = toString ws; ) workspacePartition
})
workspaces
)
workspacePartition
) )
); );
# [ # [

View file

@ -17,17 +17,15 @@ in
programs.nnn = { programs.nnn = {
enable = true; enable = true;
package = package =
(pkgs.nnn.overrideAttrs ( (pkgs.nnn.overrideAttrs (_prevAttrs: {
_prevAttrs: { version = "unstable-2023-10-08";
version = "unstable-2023-10-08"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "jarun";
owner = "jarun"; repo = "nnn";
repo = "nnn"; rev = "7f63bef4d6c9f70b99a4c98435c9c0a68e05be44";
rev = "7f63bef4d6c9f70b99a4c98435c9c0a68e05be44"; sha256 = "B9WRQW4wbs3+lJ9ACFheTaO+0+G/r67yJZJJPMDIQXI=";
sha256 = "B9WRQW4wbs3+lJ9ACFheTaO+0+G/r67yJZJJPMDIQXI="; };
}; })).override
}
)).override
{ {
withNerdIcons = true; withNerdIcons = true;
extraMakeFlags = [ extraMakeFlags = [

View file

@ -19,13 +19,11 @@ let
rcloneRemote = rcloneRemote =
with types; with types;
attrsOf ( attrsOf (oneOf [
oneOf [ str
str int
int bool
bool ]);
]
);
rcloneMount = rcloneMount =
with types; with types;
@ -61,39 +59,37 @@ in
home.packages = [ pkgs.rclone ]; home.packages = [ pkgs.rclone ];
systemd.user.services = builtins.listToAttrs ( systemd.user.services = builtins.listToAttrs (
builtins.map builtins.map (
( mount:
mount: let
let localPath = toString mount.local;
localPath = toString mount.local; unitName = builtins.replaceStrings [ "/" ] [ "-" ] (
unitName = builtins.replaceStrings [ "/" ] [ "-" ] ( builtins.substring 1 (builtins.stringLength localPath) localPath
builtins.substring 1 (builtins.stringLength localPath) localPath );
); in
in {
{ name = "rclone-${unitName}";
name = "rclone-${unitName}"; value = {
value = { Unit = {
Unit = { Description = "rclone mount ${unitName}";
Description = "rclone mount ${unitName}"; After = [ "network.target" ];
After = [ "network.target" ]; AssertPathIsDirectory = toString mount.local;
AssertPathIsDirectory = toString mount.local;
};
Service = {
Environment = [ "PATH=/run/wrappers/bin:$PATH" ];
ExecStart = "${pkgs.rclone}/bin/rclone mount --vfs-cache-mode full --vfs-cache-poll-interval 5s --poll-interval 5s --dir-cache-time 10s --umask 022 --allow-other ${rcloneConnectionString mount} ${mount.local}";
ExecStop = "/run/wrappers/bin/fusermount -zu ${mount.local}";
Restart = "on-failure";
RestartSec = 10;
};
Install = {
WantedBy = [ "default.target" ];
};
}; };
}
) Service = {
cfg.mounts Environment = [ "PATH=/run/wrappers/bin:$PATH" ];
ExecStart = "${pkgs.rclone}/bin/rclone mount --vfs-cache-mode full --vfs-cache-poll-interval 5s --poll-interval 5s --dir-cache-time 10s --umask 022 --allow-other ${rcloneConnectionString mount} ${mount.local}";
ExecStop = "/run/wrappers/bin/fusermount -zu ${mount.local}";
Restart = "on-failure";
RestartSec = 10;
};
Install = {
WantedBy = [ "default.target" ];
};
};
}
) cfg.mounts
); );
}; };
} }

View file

@ -13,16 +13,14 @@ let
"${pkgs.nitrogen}/bin/nitrogen --set-color=${cfg.backgroundColor} --set-tiled ${cfg.images}" "${pkgs.nitrogen}/bin/nitrogen --set-color=${cfg.backgroundColor} --set-tiled ${cfg.images}"
else else
builtins.concatStringsSep "\n" ( builtins.concatStringsSep "\n" (
map map (
( { fst, snd }:
{ fst, snd }: let
let image = fst;
image = fst; monitor = toString snd;
monitor = toString snd; in
in "${pkgs.nitrogen}/bin/nitrogen --head=${monitor} --set-color=${cfg.backgroundColor} --set-tiled ${image}"
"${pkgs.nitrogen}/bin/nitrogen --head=${monitor} --set-color=${cfg.backgroundColor} --set-tiled ${image}" ) (zipLists cfg.images (builtins.genList (x: x) (builtins.length cfg.images)))
)
(zipLists cfg.images (builtins.genList (x: x) (builtins.length cfg.images)))
) )
); );

View file

@ -20,14 +20,11 @@ in
}; };
imports = [ imports = [
(mkRemovedOptionModule (mkRemovedOptionModule [
[ "eboskma"
"eboskma" "nix-common"
"nix-common" "disable-cache"
"disable-cache" ] "The option `disable-cache` is no longer used")
]
"The option `disable-cache` is no longer used"
)
]; ];
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -87,19 +87,13 @@ in
listenPort = cfg.port; listenPort = cfg.port;
privateKeyFile = cfg.privateKeyFile; privateKeyFile = cfg.privateKeyFile;
postSetup = postSetup = concatMapStringsSep "\n" (range: ''
concatMapStringsSep "\n" ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s ${range} -o ${cfg.externalInterface} -j MASQUERADE
(range: '' '') cfg.internalIPs;
${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s ${range} -o ${cfg.externalInterface} -j MASQUERADE
'')
cfg.internalIPs;
postShutdown = postShutdown = concatMapStringsSep "\n" (range: ''
concatMapStringsSep "\n" ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s ${range} -o ${cfg.externalInterface} -j MASQUERADE
(range: '' '') cfg.internalIPs;
${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s ${range} -o ${cfg.externalInterface} -j MASQUERADE
'')
cfg.internalIPs;
peers = cfg.peers; peers = cfg.peers;
}; };

View file

@ -0,0 +1,55 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
writeText,
}:
let
version = "2024.02.24-beta1";
# Got to love those hand crafted, artisinal patches 😁
insertVersionPatch = writeText "0001-headscale-ui-insert-version" ''
--- a/src/routes/settings.html/+page.svelte
+++ b/src/routes/settings.html/+page.svelte
@@ -26,7 +26,7 @@
<ThemeSettings />
<div class="p-4" />
<h1 class="text-2xl bold text-primary mb-4">Version</h1>
- <b>insert-version</b>
+ <b>${version}</b>
<div class ="p-4"></div>
<DevSettings></DevSettings>
</div>
'';
in
buildNpmPackage {
pname = "headscale-ui";
inherit version;
src = fetchFromGitHub {
owner = "gurucomputing";
repo = "headscale-ui";
rev = version;
hash = "sha256-jbyy8W/qAso2yb/hNsmVHiT0mJXInpEIejU+3IB9wJY=";
};
npmDepsHash = "sha256-SHcsTfX2AnHR8fNCE2+JYV33DtZFQOqN7LSoV+fUu5A=";
npmPackFlags = [ "--ignore-scripts" ];
makeCacheWritable = true;
patches = [ insertVersionPatch ];
installPhase = ''
cp -a build $out
'';
meta = with lib; {
description = "A web frontend for the headscale Tailscale-compatible coordination server";
homepage = "https://github.com/gurucomputing/headscale-ui";
license = licenses.bsd3;
maintainers = with maintainers; [ ];
mainProgram = "headscale-ui";
platforms = platforms.all;
};
}

View file

@ -10,81 +10,79 @@
rsync, rsync,
}: }:
stdenv.mkDerivation ( stdenv.mkDerivation (finalAttrs: {
finalAttrs: { pname = "incus-ui";
pname = "incus-ui"; version = "0.6";
version = "0.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "canonical"; owner = "canonical";
repo = "lxd-ui"; repo = "lxd-ui";
rev = finalAttrs.version; rev = finalAttrs.version;
# hash = "sha256-52MRf7bk8Un9wqz00+JjDmuJgPKYhgAhIbMbcAuf8W8="; # hash = "sha256-52MRf7bk8Un9wqz00+JjDmuJgPKYhgAhIbMbcAuf8W8=";
hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs="; hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs=";
}; };
offlineCache = fetchYarnDeps { offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock"; yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o="; hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o=";
}; };
patches = [ patches = [
./ui-canonical-0001-Branding.patch ./ui-canonical-0001-Branding.patch
./ui-canonical-0002-Update-navigation.patch ./ui-canonical-0002-Update-navigation.patch
./ui-canonical-0003-Update-certificate-generation.patch ./ui-canonical-0003-Update-certificate-generation.patch
./ui-canonical-0004-Remove-external-links.patch ./ui-canonical-0004-Remove-external-links.patch
./ui-canonical-0005-Remove-Canonical-image-servers.patch ./ui-canonical-0005-Remove-Canonical-image-servers.patch
./ui-canonical-0006-Remove-version-check.patch ./ui-canonical-0006-Remove-version-check.patch
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
nodejs nodejs
prefetch-yarn-deps prefetch-yarn-deps
yarn yarn
]; ];
configurePhase = '' configurePhase = ''
runHook preConfigure runHook preConfigure
${gnused}/bin/sed -i "s/LXD/Incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* ${gnused}/bin/sed -i "s/LXD/Incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
${gnused}/bin/sed -i "s/devlxd/guestapi/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* ${gnused}/bin/sed -i "s/devlxd/guestapi/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
${gnused}/bin/sed -i "s/dev\/lxd/dev\/incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* ${gnused}/bin/sed -i "s/dev\/lxd/dev\/incus/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
${gnused}/bin/sed -i "s/lxd_/incus_/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* ${gnused}/bin/sed -i "s/lxd_/incus_/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
${gnused}/bin/sed -i "s/\"lxd\"/\"incus\"/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts* ${gnused}/bin/sed -i "s/\"lxd\"/\"incus\"/g" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
export HOME=$(mktemp -d) export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache" yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules patchShebangs node_modules
cp ${./favicon-32x32.png} public/assets/img/favicon-32x32.png cp ${./favicon-32x32.png} public/assets/img/favicon-32x32.png
runHook postConfigure runHook postConfigure
''; '';
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
yarn --offline build yarn --offline build
runHook postBuild runHook postBuild
''; '';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out mkdir -p $out
${rsync}/bin/rsync -a build/ui/ $out/ ${rsync}/bin/rsync -a build/ui/ $out/
runHook postInstall runHook postInstall
''; '';
meta = with lib; { meta = with lib; {
description = "Easy and accessible container and virtual machine management. A browser interface for LXD"; description = "Easy and accessible container and virtual machine management. A browser interface for LXD";
homepage = "https://github.com/canonical/lxd-ui"; homepage = "https://github.com/canonical/lxd-ui";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} })
)