mirror of
https://github.com/daylinmorgan/oizys.git
synced 2024-12-23 11:00:44 -06:00
Compare commits
2 commits
8f8c551503
...
79c7654486
Author | SHA1 | Date | |
---|---|---|---|
79c7654486 | |||
a03cbee7ac |
11 changed files with 107 additions and 107 deletions
|
@ -1,17 +1,14 @@
|
|||
{ enabled, ... }:
|
||||
{
|
||||
enabled,
|
||||
enableAttrs,
|
||||
pipeList,
|
||||
...
|
||||
}:
|
||||
{
|
||||
oizys = {
|
||||
languages = [
|
||||
"nim"
|
||||
"node" # for docker langservers
|
||||
"python"
|
||||
"nushell"
|
||||
];
|
||||
rune.motd = enabled;
|
||||
docker = enabled;
|
||||
backups = enabled;
|
||||
nix-ld = enabled;
|
||||
};
|
||||
languages = "nim|node|python|nushell" |> pipeList;
|
||||
} // ("docker|backups|nix-ld" |> pipeList |> enableAttrs);
|
||||
|
||||
services.restic.backups.gdrive = {
|
||||
# directories created by gitea and soft-serve aren't world readable
|
||||
|
@ -27,15 +24,6 @@
|
|||
];
|
||||
};
|
||||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
users.users = {
|
||||
daylin = {
|
||||
extraGroups = [ "docker" ];
|
||||
};
|
||||
|
||||
git = {
|
||||
isNormalUser = true;
|
||||
};
|
||||
};
|
||||
# git user handles the forgjo ssh authentication
|
||||
users.users.git.isNormalUser = true;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ enabled, ... }:
|
||||
{
|
||||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
services.resolved = enabled;
|
||||
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
services.fail2ban = enabled // {
|
||||
maxretry = 5;
|
||||
bantime = "24h";
|
||||
};
|
||||
|
@ -26,8 +27,9 @@
|
|||
# users.mutableUsers = false;
|
||||
|
||||
# Use the GRUB 2 boot loader.
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
|
||||
boot.loader.grub = enabled // {
|
||||
device = "/dev/sda"; # or "nodev" for efi only
|
||||
};
|
||||
|
||||
# don't delete this you foo bar
|
||||
system.stateVersion = "23.11"; # Did you read the comment?
|
||||
|
|
|
@ -4,14 +4,13 @@
|
|||
desktop = enabled;
|
||||
nix-ld = enabled;
|
||||
rune.motd = enabled;
|
||||
docker = enabled;
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager.startx.enable = true;
|
||||
windowManager.qtile.enable = true;
|
||||
services.xserver = enabled // {
|
||||
displayManager.startx = enabled;
|
||||
windowManager.qtile = enabled;
|
||||
};
|
||||
|
||||
users.users.daylin.extraGroups = [ "docker" ];
|
||||
}
|
||||
|
|
|
@ -1,39 +1,17 @@
|
|||
{ enabled, config, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
enabled,
|
||||
enableAttrs,
|
||||
pipeList,
|
||||
...
|
||||
}:
|
||||
{
|
||||
oizys = {
|
||||
vpn = enabled;
|
||||
desktop = enabled;
|
||||
hyprland = enabled;
|
||||
chrome = enabled;
|
||||
docker = enabled;
|
||||
nix-ld = enabled // {
|
||||
overkill = enabled;
|
||||
};
|
||||
vbox = enabled;
|
||||
backups = enabled;
|
||||
hp-scanner = enabled;
|
||||
languages = [
|
||||
"misc"
|
||||
"nim"
|
||||
"node"
|
||||
"nushell"
|
||||
"python"
|
||||
"roc"
|
||||
"tex"
|
||||
"zig"
|
||||
];
|
||||
llm = enabled;
|
||||
};
|
||||
languages = "misc|nim|node|nushell|python|roc|tex|zig" |> pipeList;
|
||||
} // ("vpn|desktop|hyprland|chrome|docker|vbox|backups|hp-scanner|llm" |> pipeList |> enableAttrs);
|
||||
|
||||
services.restic.backups.gdrive = {
|
||||
user = "daylin";
|
||||
repository = "rclone:g:archives/othalan";
|
||||
passwordFile = "/home/daylin/.config/restic/othalan-pass";
|
||||
paths = [
|
||||
"/home/daylin/stuff/"
|
||||
"/home/daylin/dev/"
|
||||
];
|
||||
};
|
||||
|
||||
users.users.${config.oizys.user}.extraGroups = [ "audio" ];
|
||||
}
|
||||
|
|
|
@ -3,6 +3,16 @@ let
|
|||
notes-git = ''${pkgs.git}/bin/git -C /home/daylin/stuff/notes'';
|
||||
in
|
||||
{
|
||||
services.restic.backups.gdrive = {
|
||||
user = "daylin";
|
||||
repository = "rclone:g:archives/othalan";
|
||||
passwordFile = "/home/daylin/.config/restic/othalan-pass";
|
||||
paths = [
|
||||
"/home/daylin/stuff/"
|
||||
"/home/daylin/dev/"
|
||||
];
|
||||
};
|
||||
|
||||
systemd.services.notes-bot = {
|
||||
description = "auto commit changes to notes";
|
||||
serviceConfig = {
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ pkgs, enabled, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
enabled,
|
||||
...
|
||||
}:
|
||||
{
|
||||
networking.networkmanager = enabled;
|
||||
services.fwupd = enabled;
|
||||
|
@ -21,7 +26,7 @@
|
|||
support32Bit = true;
|
||||
};
|
||||
};
|
||||
|
||||
users.users.${config.oizys.user}.extraGroups = [ "audio" ];
|
||||
environment.systemPackages = with pkgs; [ pamixer ];
|
||||
|
||||
# catppuccin/tty move to "module"
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
inputs: final: prev:
|
||||
let
|
||||
inherit (builtins) listToAttrs substring filter;
|
||||
inherit (builtins)
|
||||
listToAttrs
|
||||
substring
|
||||
filter
|
||||
replaceStrings
|
||||
;
|
||||
inherit (final)
|
||||
concatStringsSep
|
||||
hasSuffix
|
||||
|
@ -8,6 +13,7 @@ let
|
|||
mkIf
|
||||
mkOption
|
||||
types
|
||||
splitString
|
||||
;
|
||||
inherit (final.filesystem) listFilesRecursive;
|
||||
in
|
||||
|
@ -20,6 +26,9 @@ let
|
|||
enable = false;
|
||||
};
|
||||
|
||||
# "opt1|opt2" |> pipeList -> ["opt1" "opt2"]
|
||||
pipeList = s: s |> replaceStrings [ "\n" ] [ "|" ] |> splitString "|" |> filter (s': s' != "");
|
||||
|
||||
# ["a" "b"] -> {a.enable = true; b.enable = true;}
|
||||
enableAttrs =
|
||||
attrs:
|
||||
|
@ -70,11 +79,9 @@ let
|
|||
isNixFile = p: p |> hasSuffix ".nix";
|
||||
isDefaultNixFile = p: p |> hasSuffix "default.nix";
|
||||
# filterNotDefaultNixFile = paths: filter (p: !(isDefaultNixFile p) && (isNixFile p)) paths;
|
||||
filterNotDefaultNixFile = paths:
|
||||
paths |> filter (p: !(isDefaultNixFile p) && (isNixFile p));
|
||||
filterNotDefaultNixFile = paths: paths |> filter (p: !(isDefaultNixFile p) && (isNixFile p));
|
||||
# listNixFilesRecursive = dir: filterNotDefaultNixFile (listFilesRecursive dir);
|
||||
listNixFilesRecursive = dir:
|
||||
dir |> listFilesRecursive |> filterNotDefaultNixFile;
|
||||
listNixFilesRecursive = dir: dir |> listFilesRecursive |> filterNotDefaultNixFile;
|
||||
|
||||
# defaultLinuxPackage = flake: flake.packages.x86_64-linux.default;
|
||||
# defaultPackageGeneric = system: flake: "${flake}.packages.${system}.default";
|
||||
|
@ -87,9 +94,6 @@ let
|
|||
pkg = pkgFromSystem system;
|
||||
};
|
||||
|
||||
functional = {
|
||||
filterF = list: f: builtins.filter f list;
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit
|
||||
|
@ -108,6 +112,6 @@ in
|
|||
pkgFromSystem
|
||||
overlayFrom
|
||||
flakeFromSystem
|
||||
functional
|
||||
pipeList
|
||||
;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ let
|
|||
enableAttrs
|
||||
isNixFile
|
||||
flakeFromSystem
|
||||
pipeList
|
||||
;
|
||||
inherit (lib.filesystem) listFilesRecursive;
|
||||
|
||||
|
@ -58,6 +59,7 @@ let
|
|||
inherit
|
||||
mkDefaultOizysModule
|
||||
mkOizysModule
|
||||
pipeList
|
||||
enableAttrs
|
||||
hostName
|
||||
flake
|
||||
|
|
21
pkgs/oizys/internal/oizys/ignored.txt
Normal file
21
pkgs/oizys/internal/oizys/ignored.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
ld-library-path
|
||||
builder.pl
|
||||
profile
|
||||
system-path
|
||||
nixos-help
|
||||
nixos-install
|
||||
nixos-version
|
||||
nixos-manual-html
|
||||
nixos-rebuild
|
||||
nixos-configuration-reference-manpage
|
||||
nixos-generate-config
|
||||
nixos-enter
|
||||
nixos-container
|
||||
nixos-build-vms
|
||||
nixos-wsl-version
|
||||
nixos-wsl-welcome-message
|
||||
nixos-wsl-welcome
|
||||
restic-gdrive
|
||||
gitea
|
||||
lock
|
||||
code
|
|
@ -255,6 +255,12 @@ func splitDrv(drv string) (string, string) {
|
|||
return drvName, hash
|
||||
}
|
||||
|
||||
const tableTmpl = `# Building Derivations
|
||||
| derivation | hash |
|
||||
|---|---|
|
||||
%s
|
||||
`
|
||||
|
||||
func writeDervationsToStepSummary(drvs []string) {
|
||||
tableRows := make([]string, len(drvs))
|
||||
for i, drv := range drvs {
|
||||
|
@ -264,16 +270,7 @@ func writeDervationsToStepSummary(drvs []string) {
|
|||
name, hash,
|
||||
)
|
||||
}
|
||||
|
||||
o.writeToGithubStepSummary(
|
||||
fmt.Sprintf(`# Building Derivations
|
||||
| derivation | hash |
|
||||
|---|---|
|
||||
%s
|
||||
`,
|
||||
strings.Join(tableRows, "\n"),
|
||||
),
|
||||
)
|
||||
o.writeToGithubStepSummary(fmt.Sprintf(tableTmpl, strings.Join(tableRows, "\n")))
|
||||
}
|
||||
|
||||
func NixBuild(minimal bool, rest ...string) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package oizys
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
@ -12,22 +13,21 @@ import (
|
|||
"github.com/charmbracelet/log"
|
||||
)
|
||||
|
||||
var ignoredMap = stringSliceToMap(
|
||||
[]string{
|
||||
// nix
|
||||
"ld-library-path", "builder.pl", "profile", "system-path",
|
||||
// nixos
|
||||
"nixos-help",
|
||||
"nixos-install", "nixos-version",
|
||||
"nixos-manual-html", "nixos-rebuild",
|
||||
"nixos-configuration-reference-manpage",
|
||||
"nixos-generate-config", "nixos-enter",
|
||||
"nixos-container", "nixos-build-vms",
|
||||
"nixos-wsl-version", "nixos-wsl-welcome-message", "nixos-wsl-welcome",
|
||||
// trivial packages
|
||||
"restic-gdrive", "gitea", "lock", "code",
|
||||
},
|
||||
)
|
||||
//go:embed ignored.txt
|
||||
var ignoredList string
|
||||
var ignoredMap = stringToMap(ignoredList)
|
||||
|
||||
func stringToMap(s string) map[string]struct{} {
|
||||
return stringSliceToMap(strings.Split(s, "\n"))
|
||||
}
|
||||
|
||||
func stringSliceToMap(slice []string) map[string]struct{} {
|
||||
hashMap := make(map[string]struct{}, len(slice))
|
||||
for _, s := range slice {
|
||||
hashMap[s] = struct{}{}
|
||||
}
|
||||
return hashMap
|
||||
}
|
||||
|
||||
type Derivation struct {
|
||||
InputDrvs map[string]interface{}
|
||||
|
@ -72,13 +72,7 @@ func drvNotIgnored(drv string) bool {
|
|||
return !ok
|
||||
}
|
||||
|
||||
func stringSliceToMap(slice []string) map[string]struct{} {
|
||||
hashMap := make(map[string]struct{}, len(slice))
|
||||
for _, s := range slice {
|
||||
hashMap[s] = struct{}{}
|
||||
}
|
||||
return hashMap
|
||||
}
|
||||
|
||||
|
||||
func drvsToInputs(derivation map[string]Derivation) []string {
|
||||
var drvs []string
|
||||
|
|
Loading…
Reference in a new issue