Format all files

This commit is contained in:
Manuel Thalmann 2024-11-29 01:13:58 +01:00
parent 046627eca4
commit 6abc2240be
55 changed files with 733 additions and 660 deletions

View file

@ -5,17 +5,16 @@ fi
~/.automated_script.sh ~/.automated_script.sh
if bash -c "ls /sys/class/backlight/*/max_brightness" > /dev/null 2>&1 if bash -c "ls /sys/class/backlight/*/max_brightness" >/dev/null 2>&1; then
then cat /sys/class/backlight/*/max_brightness >/sys/class/backlight/*/brightness
cat /sys/class/backlight/*/max_brightness > /sys/class/backlight/*/brightness
fi fi
cd "/root/PortValhalla" || exit cd "/root/PortValhalla" || exit
git diff -p -R --no-ext-diff --no-color --diff-filter=M \ git diff -p -R --no-ext-diff --no-color --diff-filter=M |
| grep -E "^(diff|(old|new) mode)" --color=never \ grep -E "^(diff|(old|new) mode)" --color=never |
| sed "/^diff/{ x; d; }; x; /./{ p; z; }; x;" \ sed "/^diff/{ x; d; }; x; /./{ p; z; }; x;" |
| git apply git apply
loadkeys de_CH-latin1 loadkeys de_CH-latin1
./scripts/Arch/OS/setup.fish ./scripts/Arch/OS/setup.fish

View file

@ -16,9 +16,8 @@ begin
and begin and begin
git -C "$projectDir" ls-files git -C "$projectDir" ls-files
git -C "$projectDir" ls-files --exclude-standard --others git -C "$projectDir" ls-files --exclude-standard --others
end | \ end | rsync --files-from=/dev/stdin --exclude={.gitignore,README.md,scripts,LICENSE,valhalla.patch} "$dir/.." "$contextRoot"
rsync --files-from=/dev/stdin --exclude={.gitignore,README.md,scripts,LICENSE,valhalla.patch} "$dir/.." "$contextRoot" end &>/dev/null
end &> /dev/null
and git -C "$contextRoot" diff and git -C "$contextRoot" diff
end end

View file

@ -2,5 +2,5 @@
# Updates the patch to be applicable to Arch's current `releng` template. # Updates the patch to be applicable to Arch's current `releng` template.
begin begin
set -l dir (status dirname) set -l dir (status dirname)
"$dir/show-diff.fish" > "$dir/valhalla.patch" "$dir/show-diff.fish" >"$dir/valhalla.patch"
end end

View file

@ -1,23 +1,22 @@
diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin
index bf6bc8f..bdbe55c 100644 index bf6bc8f..e71dc26 100644
--- a/airootfs/root/.zlogin --- a/airootfs/root/.zlogin
+++ b/airootfs/root/.zlogin +++ b/airootfs/root/.zlogin
@@ -4,3 +4,18 @@ if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then @@ -4,3 +4,17 @@ if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then
fi fi
~/.automated_script.sh ~/.automated_script.sh
+ +
+if bash -c "ls /sys/class/backlight/*/max_brightness" > /dev/null 2>&1 +if bash -c "ls /sys/class/backlight/*/max_brightness" >/dev/null 2>&1; then
+then + cat /sys/class/backlight/*/max_brightness >/sys/class/backlight/*/brightness
+ cat /sys/class/backlight/*/max_brightness > /sys/class/backlight/*/brightness
+fi +fi
+ +
+cd "/root/PortValhalla" || exit +cd "/root/PortValhalla" || exit
+ +
+git diff -p -R --no-ext-diff --no-color --diff-filter=M \ +git diff -p -R --no-ext-diff --no-color --diff-filter=M |
+ | grep -E "^(diff|(old|new) mode)" --color=never \ + grep -E "^(diff|(old|new) mode)" --color=never |
+ | sed "/^diff/{ x; d; }; x; /./{ p; z; }; x;" \ + sed "/^diff/{ x; d; }; x; /./{ p; z; }; x;" |
+ | git apply + git apply
+ +
+loadkeys de_CH-latin1 +loadkeys de_CH-latin1
+./scripts/Arch/OS/setup.fish +./scripts/Arch/OS/setup.fish

View file

@ -5,8 +5,10 @@ let
overlay = [ ]; overlay = [ ];
}; };
property = (builtins.getEnv "PROPERTY"); property = (builtins.getEnv "PROPERTY");
processor = if (builtins.stringLength property > 0) then processor =
if (builtins.stringLength property > 0) then
(_: lib.attrsets.getAttrFromPath (lib.strings.splitString "." property) _) (_: lib.attrsets.getAttrFromPath (lib.strings.splitString "." property) _)
else else
(_: _); (_: _);
in _: processor (lib.evalModules { modules = [ _ ]; }).config in
_: processor (lib.evalModules { modules = [ _ ]; }).config

View file

@ -3,7 +3,8 @@ let
inherit (lib) mkOption types; inherit (lib) mkOption types;
optionalAttrs = lib.attrsets.optionalAttrs; optionalAttrs = lib.attrsets.optionalAttrs;
hw = config.valhalla.hardware; hw = config.valhalla.hardware;
in { in
{
options = { options = {
valhalla = { valhalla = {
hardware = { hardware = {

View file

@ -4,7 +4,8 @@ in {
options = { options = {
valhalla = mkOption { valhalla = mkOption {
type = types.submodule ( type = types.submodule (
{ extendModules, ... }: let { extendModules, ... }:
let
osVariant = extendModules { osVariant = extendModules {
modules = [ modules = [
({ config, ... }: { ({ config, ... }: {
@ -35,7 +36,8 @@ in {
}; };
windowsVariant = osVariant.extendModules { }; windowsVariant = osVariant.extendModules { };
in { in
{
options = { options = {
linux = mkOption { linux = mkOption {
inherit (linuxVariant) type; inherit (linuxVariant) type;
@ -51,7 +53,8 @@ in {
visible = "shallow"; visible = "shallow";
}; };
}; };
}); }
);
description = "Configuration for PortValhalla."; description = "Configuration for PortValhalla.";
default = { }; default = { };

View file

@ -34,12 +34,14 @@ let
}; };
devicePath = mkOption { devicePath = mkOption {
type = if osDisk then type =
if osDisk then
types.nullOr types.str types.nullOr types.str
else else
types.str; types.str;
description = "The path to the device."; description = "The path to the device.";
default = if osDisk && config.deviceName == null then default =
if osDisk && config.deviceName == null then
null null
else else
"/dev/${config.deviceName}"; "/dev/${config.deviceName}";
@ -69,7 +71,8 @@ let
}; };
}; };
config = let config =
let
diskVarName = "${diskListVarName}[${config.id}]"; diskVarName = "${diskListVarName}[${config.id}]";
diskVar = "\${${diskVarName}}"; diskVar = "\${${diskVarName}}";
@ -88,7 +91,8 @@ let
if builtins.isInt type then if builtins.isInt type then
"${lib.trivial.toHexString type}" "${lib.trivial.toHexString type}"
else else
type); type
);
fdiskCommand = arguments: "sudo sfdisk ${arguments}"; fdiskCommand = arguments: "sudo sfdisk ${arguments}";
fdiskScript = script: args: append: fdiskScript = script: args: append:
@ -97,8 +101,8 @@ let
if append then "--append" else "" if append then "--append" else ""
} ${diskVar}" } ${diskVar}"
}"; }";
wipeScript = script: fdiskScript script [] false; wipeScript = script: fdiskScript script [ ] false;
appendScript = index: script: fdiskScript script ["-N" (builtins.toString index)] true; appendScript = index: script: fdiskScript script [ "-N" (builtins.toString index) ] true;
cleanup = lib.strings.concatLines (builtins.map cleanup = lib.strings.concatLines (builtins.map
(partition: "${fdiskCommand "--delete ${diskVar} ${toString partition.index}"} || true") (partition: "${fdiskCommand "--delete ${diskVar} ${toString partition.index}"} || true")
@ -110,7 +114,8 @@ let
(lib.optionals config.wipe [ (lib.optionals config.wipe [
cleanup cleanup
(wipeScript "label: gpt") (wipeScript "label: gpt")
] ++ (builtins.concatMap ( ] ++ (builtins.concatMap
(
partition: partition:
let let
inherit (partition) format index keepExisting label sizeScript type; inherit (partition) format index keepExisting label sizeScript type;
@ -148,24 +153,31 @@ let
${create} ${create}
fi fi
''; '';
in [ in
[
''local diskPath="$(find -L /dev/disk/by-diskseq -samefile ${diskVar})"'' ''local diskPath="$(find -L /dev/disk/by-diskseq -samefile ${diskVar})"''
''local ${partVarName}="$diskPath-part${toString index}"'' ''local ${partVarName}="$diskPath-part${toString index}"''
(if keepExisting then fallback else create) (if keepExisting then fallback else create)
"sudo ${labelScripts.${format} label}" "sudo ${labelScripts.${format} label}"
]) partitions)); ]
)
partitions));
fixType = lib.strings.concatLines (builtins.concatMap ( fixType = lib.strings.concatLines (builtins.concatMap
(
partition: partition:
lib.optional lib.optional
(partition.keepExisting && !(builtins.isNull partition.type)) (partition.keepExisting && !(builtins.isNull partition.type))
''sudo sfdisk --part-type ${diskVar} ${toString partition.index} ${mkType partition.type}'') ''sudo sfdisk --part-type ${diskVar} ${toString partition.index} ${mkType partition.type}''
)
partitions); partitions);
in { in
{
id = if osDisk then "os" else "disk-${name}"; id = if osDisk then "os" else "disk-${name}";
deviceVariable = diskVar; deviceVariable = diskVar;
deviceScript = if osDisk && config.devicePath == null then '' deviceScript =
if osDisk && config.devicePath == null then ''
${diskSelector} ${diskSelector}
'' else '' '' else ''
${diskVarName}=${config.devicePath} ${diskVarName}=${config.devicePath}
@ -197,7 +209,8 @@ let
partition partition
''; '';
}; };
}); }
);
partitionType = types.submodule ( partitionType = types.submodule (
{ name, config, ... }: { { name, config, ... }: {
@ -228,7 +241,8 @@ let
format = mkOption { format = mkOption {
type = types.enum (builtins.attrValues fs); type = types.enum (builtins.attrValues fs);
description = "The file system format of the partition."; description = "The file system format of the partition.";
default = if (isSwap config) then default =
if (isSwap config) then
fs.swap fs.swap
else else
throw ("Partition format not specified."); throw ("Partition format not specified.");
@ -271,8 +285,10 @@ let
else else
"echo ${lib.strings.escapeShellArg (toString config.size)}"); "echo ${lib.strings.escapeShellArg (toString config.size)}");
}; };
}); }
in { );
in
{
options = { options = {
valhalla = { valhalla = {
partition = { partition = {
@ -304,7 +320,8 @@ in {
config = { config = {
valhalla = { valhalla = {
partition = { partition = {
script = lib.mkDefault (let script = lib.mkDefault (
let
cfg = config.valhalla.partition; cfg = config.valhalla.partition;
inherit (cfg) os rootDir; inherit (cfg) os rootDir;
inherit (lib.strings) normalizePath; inherit (lib.strings) normalizePath;
@ -312,7 +329,8 @@ in {
disks = ([ os ] ++ (builtins.attrValues cfg.disks)); disks = ([ os ] ++ (builtins.attrValues cfg.disks));
partitions = (builtins.concatMap (_: (builtins.attrValues _.partitions)) disks); partitions = (builtins.concatMap (_: (builtins.attrValues _.partitions)) disks);
mountScript = lib.strings.concatLines (builtins.concatMap ( mountScript = lib.strings.concatLines (builtins.concatMap
(
_: [ _: [
probeScript probeScript
(builtins.concatStringsSep " " ([ (builtins.concatStringsSep " " ([
@ -320,22 +338,29 @@ in {
"mount" "mount"
"--mkdir" "--mkdir"
] ++ (lib.optionals (_.format == "ntfs") [ ] ++ (lib.optionals (_.format == "ntfs") [
"-t" "ntfs3" "-t"
"ntfs3"
]) ++ [ ]) ++ [
(builtins.concatStringsSep " " (builtins.map (_: "-o ${_}") _.mountOptions)) (builtins.concatStringsSep " " (builtins.map (_: "-o ${_}") _.mountOptions))
(partPath _) (partPath _)
(normalizePath "/${rootDir}/${_.mountPoint}") (normalizePath "/${rootDir}/${_.mountPoint}")
])) ]))
]) (lib.lists.sortOn ]
)
(lib.lists.sortOn
(_: normalizePath "/${_.mountPoint}") (_: normalizePath "/${_.mountPoint}")
(builtins.filter (_: _.mountPoint != null) partitions))); (builtins.filter (_: _.mountPoint != null) partitions)));
swapScript = lib.strings.concatLines (builtins.map ( swapScript = lib.strings.concatLines (builtins.map
(
_: '' _: ''
${probeScript} ${probeScript}
sudo swapon ${partPath _} sudo swapon ${partPath _}
'') (builtins.filter (_: _.useSwap) partitions)); ''
in lib.strings.concatLines ([ )
(builtins.filter (_: _.useSwap) partitions));
in
lib.strings.concatLines ([
"#!/bin/bash" "#!/bin/bash"
"set -o errexit" "set -o errexit"
] ]
@ -353,7 +378,8 @@ in {
] ++ (builtins.map (_: _.script) disks) ++ [ ] ++ (builtins.map (_: _.script) disks) ++ [
mountScript mountScript
swapScript swapScript
])); ])
);
}; };
}; };
}; };

View file

@ -11,77 +11,85 @@ let
}; };
config = { config = {
programs = builtins.mapAttrs ( programs = builtins.mapAttrs
(
name: config: { name: config: {
enable = mkDefault config.enable; enable = mkDefault config.enable;
}) osConfig.programs; }
)
osConfig.programs;
}; };
})); }
));
}; };
mkPrograms = infos: builtins.foldl' (programs: info: mkPrograms = infos: builtins.foldl'
(programs: info:
programs // { programs // {
${builtins.elemAt info 0} = { ${builtins.elemAt info 0} = {
enable = mkEnableOption (builtins.elemAt info 1); enable = mkEnableOption (builtins.elemAt info 1);
}; };
}) { } infos; })
{ }
infos;
programs = mkPrograms [ programs = mkPrograms [
["aliae" "aliae"] [ "aliae" "aliae" ]
["brave" "Brave Browser"] [ "brave" "Brave Browser" ]
["discord" "Discord"] [ "discord" "Discord" ]
["firefox" "Firefox Web Browser"] [ "firefox" "Firefox Web Browser" ]
["openssh" "OpenSSH"] [ "openssh" "OpenSSH" ]
["osu!lazer" "osu!lazer"] [ "osu!lazer" "osu!lazer" ]
["pennywise" "Pennywise"] [ "pennywise" "Pennywise" ]
["powershell" "PowerShell Core"] [ "powershell" "PowerShell Core" ]
["retroarch" "RetroArch"] [ "retroarch" "RetroArch" ]
["steam" "Steam"] [ "steam" "Steam" ]
["thunderbird" "Thunderbird"] [ "thunderbird" "Thunderbird" ]
["vscode" "Visual Studio Code"] [ "vscode" "Visual Studio Code" ]
["zoxide" "zoxide"] [ "zoxide" "zoxide" ]
]; ];
linuxPrograms = mkPrograms [ linuxPrograms = mkPrograms [
["bash" "Bash"] [ "bash" "Bash" ]
["fish" "fish"] [ "fish" "fish" ]
["icedtea" "IcedTea"] [ "icedtea" "IcedTea" ]
["grub" "GRUB"] [ "grub" "GRUB" ]
["logo-ls" "logo-ls"] [ "logo-ls" "logo-ls" ]
["lutris" "Lutris"] [ "lutris" "Lutris" ]
["minegrub-theme" "Minegrub Theme"] [ "minegrub-theme" "Minegrub Theme" ]
["nginx" "nginx"] [ "nginx" "nginx" ]
["nodejs-n" "n"] [ "nodejs-n" "n" ]
["nuke-usb" "nuke-usb"] [ "nuke-usb" "nuke-usb" ]
["nvidia-dkms" "Nvidia Drivers"] [ "nvidia-dkms" "Nvidia Drivers" ]
["plasma" "Plasma"] [ "plasma" "Plasma" ]
["pyenv" "pyenv"] [ "pyenv" "pyenv" ]
["sddm" "SDDM"] [ "sddm" "SDDM" ]
["vim" "Vim"] [ "vim" "Vim" ]
["virt-manager" "Virtual Machine Manager"] [ "virt-manager" "Virtual Machine Manager" ]
["waydroid" "Waydroid"] [ "waydroid" "Waydroid" ]
["xone" "xone"] [ "xone" "xone" ]
]; ];
windowsPrograms = mkPrograms [ windowsPrograms = mkPrograms [
["lghub" "Logitech G Hub"] [ "lghub" "Logitech G Hub" ]
["maniaplanet" "ManiaPlanet"] [ "maniaplanet" "ManiaPlanet" ]
["msedge-redirect" "MSEdgeRedirect"] [ "msedge-redirect" "MSEdgeRedirect" ]
["nvs" "Node Version Switcher"] [ "nvs" "Node Version Switcher" ]
["osu!" "Osu!"] [ "osu!" "Osu!" ]
["posh-git" "posh-git"] [ "posh-git" "posh-git" ]
["putty" "PuTTY"] [ "putty" "PuTTY" ]
["rewasd" "reWASD"] [ "rewasd" "reWASD" ]
["terminal-icons" "Terminal Icons"] [ "terminal-icons" "Terminal Icons" ]
["tm-nations-forever" "TrackMania Nations Forever"] [ "tm-nations-forever" "TrackMania Nations Forever" ]
["tm-united-forever" "TrackMania United Forever"] [ "tm-united-forever" "TrackMania United Forever" ]
["tobii-gamehub" "Tobii Game Hub"] [ "tobii-gamehub" "Tobii Game Hub" ]
["tobii-ghost" "Tobii Ghost"] [ "tobii-ghost" "Tobii Ghost" ]
["ubiquiti-unifi-controller" "Ubiquiti UniFi Controller"] [ "ubiquiti-unifi-controller" "Ubiquiti UniFi Controller" ]
["visualstudio" "Visual Studio"] [ "visualstudio" "Visual Studio" ]
["winscp" "WinSCP"] [ "winscp" "WinSCP" ]
]; ];
in { in
{
imports = [ imports = [
./programs/docker.nix ./programs/docker.nix
./programs/git.nix ./programs/git.nix

View file

@ -5,7 +5,8 @@ let
commonOptions = { commonOptions = {
enable = mkEnableOption "docker"; enable = mkEnableOption "docker";
}; };
in { in
{
options = { options = {
valhalla = { valhalla = {
programs.docker = commonOptions; programs.docker = commonOptions;
@ -16,7 +17,8 @@ in {
options = { options = {
programs.docker = commonOptions; programs.docker = commonOptions;
}; };
})); }
));
}; };
linux = { linux = {

View file

@ -31,7 +31,8 @@ let
default = { }; default = { };
}; };
}; };
in { in
{
options = { options = {
valhalla = { valhalla = {
programs.git = gitOption; programs.git = gitOption;
@ -42,7 +43,8 @@ in {
options = { options = {
programs.git = gitOption; programs.git = gitOption;
}; };
})); }
));
}; };
}; };
}; };

View file

@ -31,7 +31,8 @@ let
default = [ ]; default = [ ];
}; };
}; };
in { in
{
options = { options = {
valhalla = { valhalla = {
programs.nextcloud = commonOptions; programs.nextcloud = commonOptions;
@ -42,7 +43,8 @@ in {
options = { options = {
programs.nextcloud = commonOptions; programs.nextcloud = commonOptions;
}; };
})); }
));
}; };
windows.users = mkOption { windows.users = mkOption {
@ -51,7 +53,8 @@ in {
options = { options = {
programs.nextcloud = userOptions; programs.nextcloud = userOptions;
}; };
})); }
));
}; };
}; };
}; };

View file

@ -16,7 +16,8 @@ let
default = lib.strings.removeSuffix ".omp" (lib.strings.removeSuffix ".json" (builtins.baseNameOf config.source)); default = lib.strings.removeSuffix ".omp" (lib.strings.removeSuffix ".json" (builtins.baseNameOf config.source));
}; };
}; };
}); }
);
commonOptions = { commonOptions = {
enable = mkEnableOption "Oh My Posh"; enable = mkEnableOption "Oh My Posh";
@ -35,7 +36,8 @@ let
default = [ ]; default = [ ];
}; };
}; };
in { in
{
options = { options = {
valhalla = { valhalla = {
programs.oh-my-posh = commonOptions; programs.oh-my-posh = commonOptions;
@ -46,7 +48,8 @@ in {
options = { options = {
programs.oh-my-posh = userOptions; programs.oh-my-posh = userOptions;
}; };
})); }
));
}; };
}; };
}; };

View file

@ -16,7 +16,8 @@ let
default = null; default = null;
}; };
}; };
}); }
);
commonOptions = { commonOptions = {
enable = mkEnableOption "rclone"; enable = mkEnableOption "rclone";
@ -29,7 +30,8 @@ let
default = { }; default = { };
}; };
}; };
in { in
{
options = { options = {
valhalla.linux = { valhalla.linux = {
programs.rclone = commonOptions; programs.rclone = commonOptions;
@ -40,7 +42,8 @@ in {
options = { options = {
programs.rclone = userOptions; programs.rclone = userOptions;
}; };
})); }
));
}; };
}; };
}; };

View file

@ -1,6 +1,6 @@
{ lib, ... }: { lib, ... }:
let inherit (lib) mkOption types; let inherit (lib) mkOption types;
in { in {
imports = [ imports = [
./programs.nix ./programs.nix
]; ];
@ -14,11 +14,16 @@
cfg = config; cfg = config;
inherit (cfg.software) coding desktopExperience essential gaming server socialMedia; inherit (cfg.software) coding desktopExperience essential gaming server socialMedia;
mkPrograms = programs: builtins.foldl' ( mkPrograms = programs: builtins.foldl'
(
programs: name: programs // { programs: name: programs // {
${name}.enable = true; ${name}.enable = true;
}) {} programs; }
in { )
{ }
programs;
in
{
options = { options = {
software = { software = {
essential = mkOption { essential = mkOption {
@ -144,7 +149,8 @@
"tm-united-forever" "tm-united-forever"
])); ]));
}; };
});
};
};
} }
);
};
};
}

View file

@ -25,7 +25,8 @@ let
default = [ ]; default = [ ];
}; };
}; };
}); }
);
linuxUserType = types.submodule ( linuxUserType = types.submodule (
{ ... }: { { ... }: {
@ -36,7 +37,8 @@ let
default = null; default = null;
}; };
}; };
}); }
);
winUserType = types.submodule ( winUserType = types.submodule (
{ ... }: { { ... }: {
@ -47,8 +49,10 @@ let
default = false; default = false;
}; };
}; };
}); }
in { );
in
{
options = { options = {
valhalla = { valhalla = {
users = mkOption { users = mkOption {

View file

@ -2,7 +2,8 @@
let let
inherit (lib) mkDefault mkEnableOption mkIf mkOption types; inherit (lib) mkDefault mkEnableOption mkIf mkOption types;
capitalize = (import ../text.nix { inherit lib; }).capitalize; capitalize = (import ../text.nix { inherit lib; }).capitalize;
in { in
{
options = { options = {
valhalla = { valhalla = {
windows = { windows = {

View file

@ -37,7 +37,8 @@ in {
keyboardLayout = "ch"; keyboardLayout = "ch";
i18n = { i18n = {
localeSettings = let defaultLocale = "en_US.UTF-8"; localeSettings =
let defaultLocale = "en_US.UTF-8";
in { in {
LANG = "de_CH.UTF-8"; LANG = "de_CH.UTF-8";
LANGUAGE = defaultLocale; LANGUAGE = defaultLocale;
@ -58,7 +59,8 @@ in {
linux.programs.grub.enable = true; linux.programs.grub.enable = true;
programs = { programs = {
git = let defaultBranch = "main"; git =
let defaultBranch = "main";
in { in {
inherit defaultBranch; inherit defaultBranch;

View file

@ -38,7 +38,8 @@ in {
keyboardLayout = "ch"; keyboardLayout = "ch";
i18n = { i18n = {
localeSettings = let defaultLocale = "en_US.UTF-8"; localeSettings =
let defaultLocale = "en_US.UTF-8";
in { in {
LANG = "de_CH.UTF-8"; LANG = "de_CH.UTF-8";
LANGUAGE = defaultLocale; LANGUAGE = defaultLocale;

View file

@ -29,10 +29,12 @@
windows.users.manuel = { windows.users.manuel = {
programs = { programs = {
nextcloud = { nextcloud = {
folderSyncs = let folderSyncs =
let
localPath = "C:/tools/RetroArch-Win64"; localPath = "C:/tools/RetroArch-Win64";
remotePath = "/Saved Games/RetroArch"; remotePath = "/Saved Games/RetroArch";
in [ in
[
{ {
remotePath = "${remotePath}/Saves"; remotePath = "${remotePath}/Saves";
localPath = "${localPath}/saves"; localPath = "${localPath}/saves";

View file

@ -20,11 +20,11 @@ begin
sudo sed -i \ sudo sed -i \
-e "/esp=/{" \ -e "/esp=/{" \
-e "a esp=$(echo "$efiDir" | string escape)" \ -e "a esp=$(echo "$efiDir" | string escape)" \
-e "d" \ -e d \
-e "}" \ -e "}" \
-e "/bootloader_id=/{" \ -e "/bootloader_id=/{" \
-e "a bootloader_id=$(echo "$label" | string escape)" \ -e "a bootloader_id=$(echo "$label" | string escape)" \
-e "d" \ -e d \
-e "}" \ -e "}" \
/etc/secureboot.conf /etc/secureboot.conf

View file

@ -61,7 +61,7 @@ begin
and arch-chroot "$mountDir" hwclock --systohc and arch-chroot "$mountDir" hwclock --systohc
and begin and begin
getOSConfig i18n.localeSettings --json | \ getOSConfig i18n.localeSettings --json |
jq --raw-output '[.[] | split(".") | .[0]] | unique | join("\\\\|")' jq --raw-output '[.[] | split(".") | .[0]] | unique | join("\\\\|")'
end | begin end | begin
read LOCALES read LOCALES
@ -70,7 +70,7 @@ begin
end end
and begin and begin
getOSConfig i18n.localeSettings --json | \ getOSConfig i18n.localeSettings --json |
jq --raw-output '[keys[] as $key | "\($key)=\(.[$key])"] | join("\n")' jq --raw-output '[keys[] as $key | "\($key)=\(.[$key])"] | join("\n")'
end | arch-chroot "$mountDir" tee /etc/locale.conf >/dev/null end | arch-chroot "$mountDir" tee /etc/locale.conf >/dev/null

View file

@ -147,7 +147,7 @@ function deploySoftware -d "Deploys a the specified software action" -a action
and yayinst propertree-git # mac .plist config file editor and yayinst propertree-git # mac .plist config file editor
end end
and if isProgramEnabled "thunderbird" && $isInstall and if isProgramEnabled thunderbird && $isInstall
yayinst thunderbird yayinst thunderbird
end end
@ -200,7 +200,7 @@ function deploySoftware -d "Deploys a the specified software action" -a action
audius-client-bin audius-client-bin
end end
and if isProgramEnabled "nextcloud" and if isProgramEnabled nextcloud
yayinst nextcloud-client yayinst nextcloud-client
end end
end end
@ -284,7 +284,7 @@ function deploySoftware -d "Deploys a the specified software action" -a action
yayinst osu-lazer-bin yayinst osu-lazer-bin
end end
and if isProgramEnabled "retroarch" and if isProgramEnabled retroarch
yayinst libretro yayinst libretro
end end
end end

View file

@ -12,7 +12,7 @@ begin
initializeServiceInstallation $argv initializeServiceInstallation $argv
sudo cp "$dir/docker-compose.base.yml" (getServiceRoot $argv) sudo cp "$dir/docker-compose.base.yml" (getServiceRoot $argv)
USER=$user yq "$userKey = env(USER)" "$source" | \ USER=$user yq "$userKey = env(USER)" "$source" |
sudo tee (getServiceOverrides $argv) >/dev/null sudo tee (getServiceOverrides $argv) >/dev/null
installDockerService $argv installDockerService $argv

View file

@ -62,28 +62,28 @@ begin
echo "DRONE_RPC_SECRET=$secret" | sudo tee "$root/$SECRET_ENV" >/dev/null echo "DRONE_RPC_SECRET=$secret" | sudo tee "$root/$SECRET_ENV" >/dev/null
yq "$ciKey = $ciTemplate" "$tmpConfig" | \ yq "$ciKey = $ciTemplate" "$tmpConfig" |
ENTRY="./data/$name:/data" yq "$ciKey.volumes = [ env(ENTRY) ]" | \ ENTRY="./data/$name:/data" yq "$ciKey.volumes = [ env(ENTRY) ]" |
yq "$ciKey.env_file |= . + [ env(SECRET_ENV) ]" | \ yq "$ciKey.env_file |= . + [ env(SECRET_ENV) ]" |
PROTO=https yq "$ciEnv.DRONE_SERVER_PROTO = env(PROTO)" | \ PROTO=https yq "$ciEnv.DRONE_SERVER_PROTO = env(PROTO)" |
HOST=(getServiceDomain "$subdomain" "$domain") yq "$ciEnv.DRONE_SERVER_HOST = env(HOST)" | \ HOST=(getServiceDomain "$subdomain" "$domain") yq "$ciEnv.DRONE_SERVER_HOST = env(HOST)" |
yq "$dockerKey = $dockerTemplate" | \ yq "$dockerKey = $dockerTemplate" |
yq "$sshKey = $sshTemplate" | \ yq "$sshKey = $sshTemplate" |
yq "$dockerKey.depends_on = [ env(CI_NAME) ]" | \ yq "$dockerKey.depends_on = [ env(CI_NAME) ]" |
sudo tee "$config" >/dev/null sudo tee "$config" >/dev/null
for key in $dockerKey $sshKey for key in $dockerKey $sshKey
set -l file (mktemp) set -l file (mktemp)
yq "$key.depends_on = [ env(CI_NAME) ]" "$config" | \ yq "$key.depends_on = [ env(CI_NAME) ]" "$config" |
yq "$key.env_file |= . + [ env(RUNNER_ENV), env(SECRET_ENV) ]" | \ yq "$key.env_file |= . + [ env(RUNNER_ENV), env(SECRET_ENV) ]" |
tee "$file" >/dev/null tee "$file" >/dev/null
sudo cp "$file" "$config" sudo cp "$file" "$config"
rm "$file" rm "$file"
end end
PORT="127.0.0.1:1337:80" yq "$ciKey.ports = [ env(PORT) ]" "$tmpOverrides" | \ PORT="127.0.0.1:1337:80" yq "$ciKey.ports = [ env(PORT) ]" "$tmpOverrides" |
sudo tee "$overrides" >/dev/null sudo tee "$overrides" >/dev/null
end end
end end

View file

@ -1,8 +1,8 @@
#!/bin/env fish #!/bin/env fish
begin begin
set -l dir (status dirname) set -l dir (status dirname)
set -l user "forgejo" set -l user forgejo
set -l domain "git" set -l domain git
set -l server "$domain" "" set -l server "$domain" ""
set -l service $user set -l service $user
source "$dir/../service.fish" source "$dir/../service.fish"
@ -27,15 +27,15 @@ begin
set -l actEnv "$(getServiceKey "runner").environment" set -l actEnv "$(getServiceKey "runner").environment"
set -l dbEnv "$(getServiceKey "db").environment" set -l dbEnv "$(getServiceKey "db").environment"
PORT=$port yq "$(getSSHPortKey) = env(PORT)" "$source" | \ PORT=$port yq "$(getSSHPortKey) = env(PORT)" "$source" |
yq "$gitEnv.FORGEJO__server__DOMAIN = env(DOMAIN)" | \ yq "$gitEnv.FORGEJO__server__DOMAIN = env(DOMAIN)" |
yq "$gitEnv.FORGEJO__database__NAME = env(DB)" | \ yq "$gitEnv.FORGEJO__database__NAME = env(DB)" |
yq "$gitEnv.FORGEJO__database__USER = env(USER)" | \ yq "$gitEnv.FORGEJO__database__USER = env(USER)" |
yq "$gitEnv.FORGEJO__database__PASSWD = env(PW)" | \ yq "$gitEnv.FORGEJO__database__PASSWD = env(PW)" |
yq "$dbEnv.MARIADB_DATABASE = env(DB)" | \ yq "$dbEnv.MARIADB_DATABASE = env(DB)" |
yq "$dbEnv.MARIADB_USER = env(USER)" | \ yq "$dbEnv.MARIADB_USER = env(USER)" |
yq "$dbEnv.MARIADB_PASSWORD = env(PW)" | \ yq "$dbEnv.MARIADB_PASSWORD = env(PW)" |
URL="https://$DOMAIN/" yq "$actEnv.GITEA_INSTANCE_URL = env(URL)" | \ URL="https://$DOMAIN/" yq "$actEnv.GITEA_INSTANCE_URL = env(URL)" |
sudo tee "$overrides" >/dev/null sudo tee "$overrides" >/dev/null
end end
@ -49,7 +49,7 @@ begin
set -l file (mktemp) set -l file (mktemp)
set -l root (getServiceRoot $argv) set -l root (getServiceRoot $argv)
set -l dir "$root/data" set -l dir "$root/data"
set -l bin "/usr/local/bin/forgejo" set -l bin /usr/local/bin/forgejo
set -l config "$root/docker-compose.base.yml" set -l config "$root/docker-compose.base.yml"
set -l overrides (getServiceOverrides $argv) set -l overrides (getServiceOverrides $argv)
set -l envKey "$(getServiceKey "$service").environment" set -l envKey "$(getServiceKey "$service").environment"
@ -66,8 +66,8 @@ begin
set uid (id -u $user) set uid (id -u $user)
set gid (id -g $user) set gid (id -g $user)
and yq "$envKey.USER_UID = $uid" "$file" | \ and yq "$envKey.USER_UID = $uid" "$file" |
yq "$envKey.USER_GID = $gid" | \ yq "$envKey.USER_GID = $gid" |
sudo tee "$config" >/dev/null sudo tee "$config" >/dev/null
mkdir -p "$dir" mkdir -p "$dir"

View file

@ -1,8 +1,8 @@
#!/bin/env fish #!/bin/env fish
begin begin
set -l dir (status dirname) set -l dir (status dirname)
set -l user "jellyfin" set -l user jellyfin
set -l domain "media" set -l domain media
set -l server "$domain" "" set -l server "$domain" ""
set -l servarr radarr sonarr lidarr prowlarr set -l servarr radarr sonarr lidarr prowlarr
set -l flood flood set -l flood flood
@ -31,7 +31,7 @@ begin
set -l port set -l port
set -l file (mktemp) set -l file (mktemp)
set -l root (getServiceRoot $argv) set -l root (getServiceRoot $argv)
set -l bin "/usr/local/bin/forgejo" set -l bin /usr/local/bin/forgejo
set -l config "$root/docker-compose.base.yml" set -l config "$root/docker-compose.base.yml"
set -l overrides (getServiceOverrides $argv) set -l overrides (getServiceOverrides $argv)
set -l envKey "$(getServiceKey "$service").environment" set -l envKey "$(getServiceKey "$service").environment"
@ -57,13 +57,13 @@ begin
set -l envKey "$(getServiceKey "$name").environment" set -l envKey "$(getServiceKey "$name").environment"
sudo cp "$config" "$file" sudo cp "$config" "$file"
and yq "$envKey.PUID = $uid" "$file" | \ and yq "$envKey.PUID = $uid" "$file" |
yq "$envKey.PGID = $gid" | \ yq "$envKey.PGID = $gid" |
sudo tee "$config" >/dev/null sudo tee "$config" >/dev/null
end end
cp "$overrides" "$file" cp "$overrides" "$file"
URL="https://$(getServiceDomain "$domain" "")/" yq "$(getServiceKey "$service").environment.JELLYFIN_PublishedServerUrl = env(URL)" "$file" | \ URL="https://$(getServiceDomain "$domain" "")/" yq "$(getServiceKey "$service").environment.JELLYFIN_PublishedServerUrl = env(URL)" "$file" |
sudo tee "$overrides" >/dev/null sudo tee "$overrides" >/dev/null
for dir in "$root"/{downloads,config/{,jellyfin,flood,rtorrent,radarr,sonarr,lidarr,prowlarr},media/{,movies,series,music}} for dir in "$root"/{downloads,config/{,jellyfin,flood,rtorrent,radarr,sonarr,lidarr,prowlarr},media/{,movies,series,music}}
@ -107,7 +107,7 @@ begin
getServiceDefaultProxy $domain $s "$location" --comment "Proxy main Jellyfin traffic" $argv getServiceDefaultProxy $domain $s "$location" --comment "Proxy main Jellyfin traffic" $argv
getServiceDefaultProxy $domain $s "= /web/" --path "/web/index.html" --comment "Proxy main Jellyfin traffic" $argv getServiceDefaultProxy $domain $s "= /web/" --path "/web/index.html" --comment "Proxy main Jellyfin traffic" $argv
getServiceDefaultProxy $domain $s "/socket" --comment "Proxy Jellyfin Websockets traffic" $argv getServiceDefaultProxy $domain $s /socket --comment "Proxy Jellyfin Websockets traffic" $argv
else if [ "$s" = "$flood" ] else if [ "$s" = "$flood" ]
getServiceDefaultProxy $argv getServiceDefaultProxy $argv
@ -126,7 +126,7 @@ begin
printf "%s\n" \ printf "%s\n" \
"# Disable buffering when the nginx proxy gets very resource heavy upon streaming" \ "# Disable buffering when the nginx proxy gets very resource heavy upon streaming" \
"proxy_buffering off;" "proxy_buffering off;"
else if [ "$location" = "/socket" ] else if [ "$location" = /socket ]
printf "%s\n" \ printf "%s\n" \
'# Websocket' \ '# Websocket' \
"proxy_http_version 1.1;" \ "proxy_http_version 1.1;" \

View file

@ -7,6 +7,7 @@ import subprocess
import sys import sys
from protonvpn_cli.cli import FeatureEnum, protonvpn from protonvpn_cli.cli import FeatureEnum, protonvpn
def run_proton(args): def run_proton(args):
exit( exit(
subprocess.run( subprocess.run(
@ -17,6 +18,7 @@ def run_proton(args):
PIPENV_VENV_IN_PROJECT=f"{1}", PIPENV_VENV_IN_PROJECT=f"{1}",
PVPN_CMD_ARGS=" ".join(args))).returncode) PVPN_CMD_ARGS=" ".join(args))).returncode)
protonvpn.ensure_connectivity() protonvpn.ensure_connectivity()
args = sys.argv[1:] args = sys.argv[1:]
@ -56,9 +58,11 @@ else:
try: try:
session.ensure_valid() session.ensure_valid()
except: except:
raise Exception("Your current session is invalid. Please initialize the session using the `init` subcommand.") raise Exception(
"Your current session is invalid. Please initialize the session using the `init` subcommand.")
environ["PVPN_USERNAME"] = session.vpn_username + (environ.get("PVPN_TAGS") or "") environ["PVPN_USERNAME"] = session.vpn_username + \
(environ.get("PVPN_TAGS") or "")
environ["PVPN_PASSWORD"] = session.vpn_password environ["PVPN_PASSWORD"] = session.vpn_password
environ["PVPN_TIER"] = f"{session.vpn_tier}" environ["PVPN_TIER"] = f"{session.vpn_tier}"
@ -95,6 +99,7 @@ else:
run_proton(["connect", server.name]) run_proton(["connect", server.name])
else: else:
raise Exception(f"Unable to find a server matching the specified criteria {args[1:]}!") raise Exception(
f"Unable to find a server matching the specified criteria {args[1:]}!")
else: else:
run_proton(args) run_proton(args)

View file

@ -1,7 +1,7 @@
#!/bin/env fish #!/bin/env fish
begin begin
set -l dir (status dirname) set -l dir (status dirname)
set -l user "minecraft" set -l user minecraft
source "$dir/../service.fish" source "$dir/../service.fish"
function installSW -V dir -V domain -V server -V service function installSW -V dir -V domain -V server -V service
@ -34,8 +34,8 @@ begin
set -l envKey "$(getServiceKey "$service").environment" set -l envKey "$(getServiceKey "$service").environment"
cp "$config" "$file" cp "$config" "$file"
and yq "$envKey.UID = $uid" "$file" | \ and yq "$envKey.UID = $uid" "$file" |
yq "$envKey.GID = $gid" | \ yq "$envKey.GID = $gid" |
sudo tee "$config" >/dev/null sudo tee "$config" >/dev/null
end end

View file

@ -5,7 +5,7 @@ begin
set -l domain cloud "" set -l domain cloud ""
set -l service web set -l service web
set -l office collabora set -l office collabora
set -l officeDomain "office" "" set -l officeDomain office ""
set -l server $service $domain set -l server $service $domain
set -l services \ set -l services \
@ -69,9 +69,9 @@ begin
PW="--static-auth-secret=$turnPW" \ PW="--static-auth-secret=$turnPW" \
DOMAIN="--realm=$domain" \ DOMAIN="--realm=$domain" \
yq "$key |= . + [env(PW), env(DOMAIN)]" "$overridesSource" | \ yq "$key |= . + [env(PW), env(DOMAIN)]" "$overridesSource" |
DOMAIN=(getServiceDomain $officeDomain) yq "$officeEnv.server_name = env(DOMAIN)" | \ DOMAIN=(getServiceDomain $officeDomain) yq "$officeEnv.server_name = env(DOMAIN)" |
URL="https://$(string escape --style regex "$DOMAIN"):443" yq "$officeEnv.aliasgroup1 = env(URL)" | \ URL="https://$(string escape --style regex "$DOMAIN"):443" yq "$officeEnv.aliasgroup1 = env(URL)" |
sudo tee "$overrides" >/dev/null sudo tee "$overrides" >/dev/null
end end

View file

@ -1,8 +1,8 @@
#!/bin/env fish #!/bin/env fish
begin begin
set -l dir (status dirname) set -l dir (status dirname)
set -l domain "tracker" "" set -l domain tracker ""
set -l service "ryot" set -l service ryot
set -l source "$dir/docker-compose.overrides.yml" set -l source "$dir/docker-compose.overrides.yml"
source "$dir/../service.fish" source "$dir/../service.fish"
@ -17,8 +17,8 @@ begin
initializeServiceInstallation $argv initializeServiceInstallation $argv
sudo cp "$file" "$root" sudo cp "$file" "$root"
URL=$dbUrl yq "$dbKey = env(URL)" "$source" | \ URL=$dbUrl yq "$dbKey = env(URL)" "$source" |
PW=$pw yq ".services.db.environment.POSTGRES_PASSWORD = env(PW)" | \ PW=$pw yq ".services.db.environment.POSTGRES_PASSWORD = env(PW)" |
sudo tee (getServiceOverrides $argv) >/dev/null sudo tee (getServiceOverrides $argv) >/dev/null
installDockerService $argv installDockerService $argv

View file

@ -5,26 +5,26 @@ begin
source "$dir/../service.fish" source "$dir/../service.fish"
function installSW -V dir -V domain -V source function installSW -V dir -V domain -V source
set -l service "teamspeak" set -l service teamspeak
set -l pw (nix-shell -p keepassxc --run "keepassxc-cli generate --length 32") set -l pw (nix-shell -p keepassxc --run "keepassxc-cli generate --length 32")
set -l db "TeamSpeak" set -l db TeamSpeak
set -l tsEnv "$(getServiceKey "$service").environment" set -l tsEnv "$(getServiceKey "$service").environment"
set -l dbEnv "$(getServiceKey db).environment" set -l dbEnv "$(getServiceKey db).environment"
initializeServiceInstallation $argv initializeServiceInstallation $argv
cp "$dir/docker-compose.base.yml" (getServiceRoot $argv) cp "$dir/docker-compose.base.yml" (getServiceRoot $argv)
USER="$service" begin USER="$service" begin
yq "$tsEnv.TS3SERVER_DB_USER = env(USER)" "$source" | \ yq "$tsEnv.TS3SERVER_DB_USER = env(USER)" "$source" |
yq "$dbEnv.MARIADB_USER = env(USER)" yq "$dbEnv.MARIADB_USER = env(USER)"
end | \ end | \
PW="$pw" begin PW="$pw" begin
yq "$tsEnv.TS3SERVER_DB_PASSWORD = env(PW)" | \ yq "$tsEnv.TS3SERVER_DB_PASSWORD = env(PW)" |
yq "$dbEnv.MARIADB_PASSWORD = env(PW)" yq "$dbEnv.MARIADB_PASSWORD = env(PW)"
end | \ end | \
DB="$db" begin DB="$db" begin
yq "$tsEnv.TS3SERVER_DB_NAME = env(DB)" | \ yq "$tsEnv.TS3SERVER_DB_NAME = env(DB)" |
yq "$dbEnv.MARIADB_DATABASE = env(DB)" yq "$dbEnv.MARIADB_DATABASE = env(DB)"
end | \ end |
sudo tee (getServiceOverrides $argv) >/dev/null sudo tee (getServiceOverrides $argv) >/dev/null
installDockerService $argv installDockerService $argv

View file

@ -12,8 +12,8 @@ begin
cp -rf "$dir"/{.dockerignore,docker-compose{.base,.overrides,.core{,.overrides}}.yml,parser.patch,tmforever-entrypoint.sh,trackmania.Dockerfile,xaseco-entrypoint.sh,xaseco.Dockerfile} "$root" cp -rf "$dir"/{.dockerignore,docker-compose{.base,.overrides,.core{,.overrides}}.yml,parser.patch,tmforever-entrypoint.sh,trackmania.Dockerfile,xaseco-entrypoint.sh,xaseco.Dockerfile} "$root"
PW="$tmPW" yq "$(getServiceKey "tm").environment.TM_SUPERADMIN_PASSWORD = env(PW)" "$source" | \ PW="$tmPW" yq "$(getServiceKey "tm").environment.TM_SUPERADMIN_PASSWORD = env(PW)" "$source" |
PW="$sqlPW" yq "$(getServiceKey "db").environment.MYSQL_PASSWORD = env(PW)" | \ PW="$sqlPW" yq "$(getServiceKey "db").environment.MYSQL_PASSWORD = env(PW)" |
sudo tee "$root/$(basename "$source")" >/dev/null sudo tee "$root/$(basename "$source")" >/dev/null
installDockerService $argv installDockerService $argv
@ -33,5 +33,5 @@ begin
echo "^docker-compose\.core\.overrides\.yml\$" echo "^docker-compose\.core\.overrides\.yml\$"
end end
runInstaller --force $argv --name "tm-forever" runInstaller --force $argv --name tm-forever
end end

View file

@ -29,30 +29,30 @@ serverOptions=(
TM_TITLE name TM_TITLE name
TM_COMMENT comment TM_COMMENT comment
TM_HIDDEN hide_server TM_HIDDEN hide_server
\
TM_MAX_PLAYERS max_players TM_MAX_PLAYERS max_players
TM_PLAYER_PASSWORD password TM_PLAYER_PASSWORD password
\
TM_MAX_SPECTATORS max_spectators TM_MAX_SPECTATORS max_spectators
TM_SPECTATOR_PASSWORD password_spectator TM_SPECTATOR_PASSWORD password_spectator
\
TM_LADDER_MODE ladder_mode TM_LADDER_MODE ladder_mode
TM_LADDER_LIMIT_MIN ladder_serverlimit_min TM_LADDER_LIMIT_MIN ladder_serverlimit_min
TM_LADDER_LIMIT_MAX ladder_serverlimit_max TM_LADDER_LIMIT_MAX ladder_serverlimit_max
\
TM_ENABLE_P2P_UPLOAD enable_p2p_upload TM_ENABLE_P2P_UPLOAD enable_p2p_upload
TM_ENABLE_P2P_DOWNLOAD enable_p2p_download TM_ENABLE_P2P_DOWNLOAD enable_p2p_download
\
TM_CALLVOTE_TIMEOUT callvote_timeout TM_CALLVOTE_TIMEOUT callvote_timeout
TM_CALLVOTE_RATIO callvote_ratio TM_CALLVOTE_RATIO callvote_ratio
\
TM_ALLOW_CHALLENGE_DOWNLOAD allow_challenge_download TM_ALLOW_CHALLENGE_DOWNLOAD allow_challenge_download
TM_AUTOSAVE_REPLAYS autosave_replays TM_AUTOSAVE_REPLAYS autosave_replays
TM_AUTOSAVE_VALIDATION_REPLAYS autosave_validation_replays TM_AUTOSAVE_VALIDATION_REPLAYS autosave_validation_replays
\
TM_REFEREE_PASSWORD referee_password TM_REFEREE_PASSWORD referee_password
TM_REFEREE_VALIDATION_MODE referee_validation_mode TM_REFEREE_VALIDATION_MODE referee_validation_mode
\
TM_USE_CHANGING_VALIDATION_SEED use_changing_validation_seed TM_USE_CHANGING_VALIDATION_SEED use_changing_validation_seed
) )
@ -62,23 +62,23 @@ systemOptions=(
TM_P2P_PORT server_p2p_port TM_P2P_PORT server_p2p_port
TM_CLIENT_PORT client_port TM_CLIENT_PORT client_port
TM_USE_NAT_UPNP use_nat_upnp TM_USE_NAT_UPNP use_nat_upnp
\
TM_XMLRPC_PORT xmlrpc_port TM_XMLRPC_PORT xmlrpc_port
TM_XMLRPC_ALLOWED_REMOTE xmlrpc_allowremote TM_XMLRPC_ALLOWED_REMOTE xmlrpc_allowremote
\
TM_PACKMASK packmask TM_PACKMASK packmask
\
TM_CONNECTION_UPLOADRATE connection_uploadrate TM_CONNECTION_UPLOADRATE connection_uploadrate
TM_CONNECTION_DOWNLOADRATE connection_downloadrate TM_CONNECTION_DOWNLOADRATE connection_downloadrate
\
TM_P2P_CACHE_SIZE p2p_cache_size TM_P2P_CACHE_SIZE p2p_cache_size
\
TM_BLACKLIST_URL blacklist_url TM_BLACKLIST_URL blacklist_url
TM_GUESTLIST_FILENAME guestlist_filename TM_GUESTLIST_FILENAME guestlist_filename
TM_BLACKLIST_FILENAME blacklist_filename TM_BLACKLIST_FILENAME blacklist_filename
\
TM_ALLOW_SPECTATOR_RELAYS allow_spectator_relays TM_ALLOW_SPECTATOR_RELAYS allow_spectator_relays
\
TM_USE_PROXY use_proxy TM_USE_PROXY use_proxy
TM_PROXY_LOGIN proxy_login TM_PROXY_LOGIN proxy_login
TM_PROXY_PASSWORD proxy_password TM_PROXY_PASSWORD proxy_password

View file

@ -1,7 +1,7 @@
#!/bin/env fish #!/bin/env fish
begin begin
set -l dir (status dirname) set -l dir (status dirname)
set -l domain "passwords" set -l domain passwords
set -l source "$dir/docker-compose.overrides.yml" set -l source "$dir/docker-compose.overrides.yml"
source "$dir/../service.fish" source "$dir/../service.fish"
@ -14,10 +14,10 @@ begin
initializeServiceInstallation $argv initializeServiceInstallation $argv
cp "$dir/docker-compose.base.yml" (getServiceRoot $argv) cp "$dir/docker-compose.base.yml" (getServiceRoot $argv)
URL="https://$domain.$(getMachineFQDN)" yq "$envKey.DOMAIN = env(URL)" "$source" | \ URL="https://$domain.$(getMachineFQDN)" yq "$envKey.DOMAIN = env(URL)" "$source" |
ADDRESS="no-reply@$(getMachineFQDN)" yq "$envKey.SMTP_FROM = env(ADDRESS)" | \ ADDRESS="no-reply@$(getMachineFQDN)" yq "$envKey.SMTP_FROM = env(ADDRESS)" |
URL=$dbUrl yq "$dbKey = env(URL)" | \ URL=$dbUrl yq "$dbKey = env(URL)" |
PW=$pw yq ".services.db.environment.MARIADB_PASSWORD = env(PW)" | \ PW=$pw yq ".services.db.environment.MARIADB_PASSWORD = env(PW)" |
sudo tee (getServiceOverrides $argv) >/dev/null sudo tee (getServiceOverrides $argv) >/dev/null
installDockerService $argv installDockerService $argv

View file

@ -12,7 +12,7 @@ begin
sudo cp "$dir/docker-compose.base.yml" (getServiceRoot $argv) sudo cp "$dir/docker-compose.base.yml" (getServiceRoot $argv)
URL="https://$domain" yq "$(getServiceKey "$service").environment.ROOT_URL = env(URL)" "$dir/$(basename "$overrides")" | \ URL="https://$domain" yq "$(getServiceKey "$service").environment.ROOT_URL = env(URL)" "$dir/$(basename "$overrides")" |
sudo tee "$overrides" >/dev/null sudo tee "$overrides" >/dev/null
installDockerService $argv installDockerService $argv

View file

@ -62,24 +62,24 @@ begin
echo "WOODPECKER_AGENT_SECRET=$secret" echo "WOODPECKER_AGENT_SECRET=$secret"
end | sudo tee "$root/$SECRET_ENV" >/dev/null end | sudo tee "$root/$SECRET_ENV" >/dev/null
yq "$ciKey = $ciTemplate" "$tmpConfig" | \ yq "$ciKey = $ciTemplate" "$tmpConfig" |
DB="$dbName" yq "$ciKey.depends_on |= . + [ env(DB) ]" | \ DB="$dbName" yq "$ciKey.depends_on |= . + [ env(DB) ]" |
ENTRY="./data/$name/ci:/var/lib/woodpecker" yq "$ciKey.volumes = [ env(ENTRY) ]" | \ ENTRY="./data/$name/ci:/var/lib/woodpecker" yq "$ciKey.volumes = [ env(ENTRY) ]" |
yq "$ciKey.env_file |= . + [ env(SECRET_ENV) ]" | \ yq "$ciKey.env_file |= . + [ env(SECRET_ENV) ]" |
yq "$agentKey = $agentTemplate" | \ yq "$agentKey = $agentTemplate" |
yq "$agentKey.depends_on |= . + [ env(CI_NAME) ]" | \ yq "$agentKey.depends_on |= . + [ env(CI_NAME) ]" |
yq "$agentKey.env_file |= . + [ env(SECRET_ENV) ]" | \ yq "$agentKey.env_file |= . + [ env(SECRET_ENV) ]" |
SERVER="$ciName:9000" yq "$agentEnv.WOODPECKER_SERVER = env(SERVER)" | \ SERVER="$ciName:9000" yq "$agentEnv.WOODPECKER_SERVER = env(SERVER)" |
yq "$dbKey = $dbTemplate" | \ yq "$dbKey = $dbTemplate" |
ENTRY="./data/$name/db:/var/lib/mysql" yq "$dbKey.volumes |= . + [ env(ENTRY) ]" | \ ENTRY="./data/$name/db:/var/lib/mysql" yq "$dbKey.volumes |= . + [ env(ENTRY) ]" |
sudo tee "$config" >/dev/null sudo tee "$config" >/dev/null
HOST="https://$domain" yq "$ciEnv.WOODPECKER_HOST = env(HOST)" "$tmpOverrides" | \ HOST="https://$domain" yq "$ciEnv.WOODPECKER_HOST = env(HOST)" "$tmpOverrides" |
PORT="127.0.0.1:1337:8000" yq "$ciKey.ports = [ env(PORT) ]" | \ PORT="127.0.0.1:1337:8000" yq "$ciKey.ports = [ env(PORT) ]" |
DB="$dbUser:$pw@tcp($dbName:3306)/$db?parseTime=true" yq "$ciEnv.WOODPECKER_DATABASE_DATASOURCE = env(DB)" | \ DB="$dbUser:$pw@tcp($dbName:3306)/$db?parseTime=true" yq "$ciEnv.WOODPECKER_DATABASE_DATASOURCE = env(DB)" |
USER="$dbUser" yq "$dbEnv.MARIADB_USER = env(USER)" | \ USER="$dbUser" yq "$dbEnv.MARIADB_USER = env(USER)" |
PW="$pw" yq "$dbEnv.MARIADB_PASSWORD = env(PW)" | \ PW="$pw" yq "$dbEnv.MARIADB_PASSWORD = env(PW)" |
DB="$db" yq "$dbEnv.MARIADB_DATABASE = env(DB)" | \ DB="$db" yq "$dbEnv.MARIADB_DATABASE = env(DB)" |
sudo tee "$overrides" >/dev/null sudo tee "$overrides" >/dev/null
end end
end end

View file

@ -5,6 +5,6 @@ begin
function getUserBackupArgs function getUserBackupArgs
argparse -i "user=" -- $argv argparse -i "user=" -- $argv
printf "%s\n" --base-directory ~"$_flag_user" --exact-depth 1 --hidden "^(\\.ssh|[^.])" --exclude "Games" --exclude "Desktop" ~ --exec fd . {} printf "%s\n" --base-directory ~"$_flag_user" --exact-depth 1 --hidden "^(\\.ssh|[^.])" --exclude Games --exclude Desktop ~ --exec fd . {}
end end
end end

View file

@ -11,6 +11,7 @@ sleep_secs="1"
# * 'ehci-pci' - USB 2.0 # * 'ehci-pci' - USB 2.0
# * 'xhci_hcd' - USB 3.0 # * 'xhci_hcd' - USB 3.0
echo "Looking for USB standards ..." echo "Looking for USB standards ..."
for usb_std in "$base/"?hci[-_]?c*; do for usb_std in "$base/"?hci[-_]?c*; do
echo "* USB standard '$usb_std' ..." echo "* USB standard '$usb_std' ..."
@ -25,4 +26,5 @@ for usb_std in "$base/"?hci[-_]?c*; do
echo " done." echo " done."
done done
echo "done." echo "done."

View file

@ -36,4 +36,4 @@ Start-SoftwareInstaller @args `
}).ToString()) -join "`n") ` }).ToString()) -join "`n") `
-Append; -Append;
} }
}; };

View file

@ -9,7 +9,7 @@ Start-SoftwareInstaller -Force @args `
$null = Push-Location $dir; $null = Push-Location $dir;
Invoke-WebRequest "https://global-download.acer.com/GDFiles/Driver/Monitor/Monitor_Acer_1.0_W7x86W7x64W8x86W8x64_A.zip?acerid=636092441703392074" -OutFile $file; Invoke-WebRequest "https://global-download.acer.com/GDFiles/Driver/Monitor/Monitor_Acer_1.0_W7x86W7x64W8x86W8x64_A.zip?acerid=636092441703392074" -OutFile $file;
Expand-Archive $file; Expand-Archive $file;
$null = Start-Process -Wait -FilePath "pnputil" -ArgumentList "/add-driver","*.inf","/install","/subdirs"; $null = Start-Process -Wait -FilePath "pnputil" -ArgumentList "/add-driver", "*.inf", "/install", "/subdirs";
$null = Pop-Location; $null = Pop-Location;
Remove-Item -Recurse $dir; Remove-Item -Recurse $dir;

View file

@ -1,5 +1,4 @@
InstallGameHub() InstallGameHub() {
{
SetDefaultMouseSpeed(100) SetDefaultMouseSpeed(100)
SetTitleMatchMode("RegEx") SetTitleMatchMode("RegEx")
windowTitle := "^Tobii Game Hub$" windowTitle := "^Tobii Game Hub$"

View file

@ -1,5 +1,4 @@
InstallGhost() InstallGhost() {
{
SetDefaultMouseSpeed(100) SetDefaultMouseSpeed(100)
SetTitleMatchMode("RegEx") SetTitleMatchMode("RegEx")
windowTitle := "^Tobii Ghost$" windowTitle := "^Tobii Ghost$"

View file

@ -186,7 +186,8 @@ $null = New-Module {
$programs = & { $programs = & {
if ($User) { if ($User) {
return Get-UserConfig -UserName $User @args; return Get-UserConfig -UserName $User @args;
} else { }
else {
return Get-OSConfig @args; return Get-OSConfig @args;
} }
} "programs"; } "programs";
@ -207,7 +208,8 @@ $null = New-Module {
try { try {
(Get-ProgramConfig @PSBoundParameters).enable; (Get-ProgramConfig @PSBoundParameters).enable;
} catch { }
catch {
$false; $false;
} }
} }

View file

@ -1,7 +1,7 @@
begin begin
set -l dir (status dirname) set -l dir (status dirname)
set -l config "$dir/config.fish" set -l config "$dir/config.fish"
set nixPkgsDir "/nix/var/nix/profiles/per-user/root/channels/nixpkgs" set nixPkgsDir /nix/var/nix/profiles/per-user/root/channels/nixpkgs
function __isNixModule -a path function __isNixModule -a path
nix-instantiate --eval --expr "{ path }: import path" --argstr path "$path" &>/dev/null nix-instantiate --eval --expr "{ path }: import path" --argstr path "$path" &>/dev/null

View file

@ -109,12 +109,12 @@ begin
end end
function runInstallerAction -V dir -V actions function runInstallerAction -V dir -V actions
argparse -i "force" "name=" "action=" -- $argv argparse -i force "name=" "action=" -- $argv
set -l install set -l install
set -l name $_flag_name set -l name $_flag_name
set -l action $_flag_action set -l action $_flag_action
set -l args $_flag_force --name "$name" set -l args $_flag_force --name "$name"
set -l dependencyFunction "installSWDependencies" set -l dependencyFunction installSWDependencies
set -l installDependencies set -l installDependencies
source "$dir/settings.fish" source "$dir/settings.fish"
@ -149,8 +149,8 @@ begin
if [ "$action" = "$actions[$i]" ] if [ "$action" = "$actions[$i]" ]
set -l message set -l message
set -l function $actions[(math $i + 1)] set -l function $actions[(math $i + 1)]
set -l preRun "__preRun" set -l preRun __preRun
set -l postRun "__postRun" set -l postRun __postRun
functions -e $preRun functions -e $preRun
functions -e $postRun functions -e $postRun

View file

@ -2,7 +2,7 @@
set -l dir (status dirname) set -l dir (status dirname)
set -l container valhalla-test set -l container valhalla-test
set -l containerDir "/var/lib/lxc/$container" set -l containerDir "/var/lib/lxc/$container"
set -l valhallaRoot "opt/PortValhalla" set -l valhallaRoot opt/PortValhalla
sudo lxc-stop "$container" sudo lxc-stop "$container"
sudo lxc-destroy "$container" sudo lxc-destroy "$container"
sudo lxc-create "$container" -t download -- --dist archlinux --release current --arch amd64 sudo lxc-create "$container" -t download -- --dist archlinux --release current --arch amd64
@ -20,7 +20,7 @@ begin
"# VPN" \ "# VPN" \
"lxc.cgroup.devices.allow = c 10:200 rwm" \ "lxc.cgroup.devices.allow = c 10:200 rwm" \
"lxc.mount.entry = /dev/net dev/net none bind,create=dir 0 0" "lxc.mount.entry = /dev/net dev/net none bind,create=dir 0 0"
end | sudo tee -a "$containerDir/config" > /dev/null end | sudo tee -a "$containerDir/config" >/dev/null
sudo lxc-start "$container" sudo lxc-start "$container"