formatters for everything
This commit is contained in:
62
README.md
62
README.md
@@ -1,31 +1,31 @@
|
||||
more just notes for now
|
||||
|
||||
---
|
||||
|
||||
deploy:
|
||||
|
||||
```sh
|
||||
nixos-rebuild switch --flake .#triple-dezert --target-host trip.shelvacu.com --use-remote-sudo
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
build flake on remote machine, including eval:
|
||||
|
||||
```sh
|
||||
git add . && ssh trip nix flake check $(nix flake archive --to ssh://trip --json | jq .path -r)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
search for string in closure
|
||||
|
||||
```sh
|
||||
rg search_str $(nix path-info --recursive ./result)
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
rg search_str $(nix path-info --recursive .#qb.trip)
|
||||
```
|
||||
more just notes for now
|
||||
|
||||
---
|
||||
|
||||
deploy:
|
||||
|
||||
```sh
|
||||
nixos-rebuild switch --flake .#triple-dezert --target-host trip.shelvacu.com --use-remote-sudo
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
build flake on remote machine, including eval:
|
||||
|
||||
```sh
|
||||
git add . && ssh trip nix flake check $(nix flake archive --to ssh://trip --json | jq .path -r)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
search for string in closure
|
||||
|
||||
```sh
|
||||
rg search_str $(nix path-info --recursive ./result)
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
rg search_str $(nix path-info --recursive .#qb.trip)
|
||||
```
|
||||
|
@@ -13,7 +13,10 @@ let
|
||||
withAsserts =
|
||||
x:
|
||||
if fatalAssertions != [ ] then
|
||||
throw "\nFailed assertions:\n${lib.concatStringsSep "\n" (map (x: "- ${x}") fatalAssertions)}"
|
||||
throw ''
|
||||
|
||||
Failed assertions:
|
||||
${lib.concatStringsSep "\n" (map (x: "- ${x}") fatalAssertions)}''
|
||||
else
|
||||
lib.showWarnings triggeredWarnings x;
|
||||
|
||||
|
@@ -84,8 +84,6 @@ lib.mkMerge [
|
||||
gnutls
|
||||
progress
|
||||
])
|
||||
++ [
|
||||
(config.vacu.units.finalPackage)
|
||||
];
|
||||
++ [ config.vacu.units.finalPackage ];
|
||||
}
|
||||
]
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
vacu.packages.ffmpeg-allvrything = {
|
||||
enable = lib.mkDefault false;
|
||||
|
@@ -34,13 +34,9 @@ in
|
||||
acc
|
||||
// (
|
||||
if builtins.isList value then
|
||||
{
|
||||
ordered = acc.ordered ++ value;
|
||||
}
|
||||
{ ordered = acc.ordered ++ value; }
|
||||
else
|
||||
{
|
||||
unordered = acc.unordered ++ [ x ];
|
||||
}
|
||||
{ unordered = acc.unordered ++ [ x ]; }
|
||||
)
|
||||
)
|
||||
{
|
||||
@@ -98,9 +94,7 @@ in
|
||||
programs.git.enable = lib.mkIf cfg.enable false;
|
||||
})
|
||||
(lib.optionalAttrs (vacuModuleType == "nixos" || vacuModuleType == "nix-on-droid") {
|
||||
environment = lib.mkIf (cfg.enable && cfg.config != [ ]) {
|
||||
etc.gitconfig.text = cfg.configText;
|
||||
};
|
||||
environment = lib.mkIf (cfg.enable && cfg.config != [ ]) { etc.gitconfig.text = cfg.configText; };
|
||||
})
|
||||
];
|
||||
}
|
||||
|
@@ -7,7 +7,5 @@
|
||||
}:
|
||||
lib.optionalAttrs (vacuModuleType == "nixos") {
|
||||
options.vacu.ssh-hpn.enable = lib.mkEnableOption "openssh hpn";
|
||||
config = lib.mkIf config.vacu.ssh-hpn.enable {
|
||||
programs.ssh.package = pkgs.openssh_hpn;
|
||||
};
|
||||
config = lib.mkIf config.vacu.ssh-hpn.enable { programs.ssh.package = pkgs.openssh_hpn; };
|
||||
}
|
||||
|
@@ -6,9 +6,7 @@
|
||||
./strings.nix
|
||||
];
|
||||
|
||||
options.vacu.vaculib = lib.mkOption {
|
||||
type = lib.types.anything;
|
||||
};
|
||||
options.vacu.vaculib = lib.mkOption { type = lib.types.anything; };
|
||||
|
||||
config._module.args.vaculib = config.vacu.vaculib;
|
||||
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
optionals
|
||||
|
@@ -43,7 +43,5 @@ let
|
||||
if removeNewline then noNewline else res;
|
||||
in
|
||||
{
|
||||
config.vacu.vaculib = {
|
||||
inherit runCommandBare outputOf;
|
||||
};
|
||||
config.vacu.vaculib = { inherit runCommandBare outputOf; };
|
||||
}
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
let
|
||||
inherit (builtins) stringLength substring;
|
||||
# aka startsWith but hopefully clear from the name what order the arguments go
|
||||
@@ -20,10 +18,5 @@ let
|
||||
(sl >= suffixl) && (substring (sl - suffixl - 1) - 1 s) == suffix;
|
||||
in
|
||||
{
|
||||
config.vacu.vaculib = {
|
||||
inherit
|
||||
isPrefixOf
|
||||
isSuffixOf
|
||||
;
|
||||
};
|
||||
config.vacu.vaculib = { inherit isPrefixOf isSuffixOf; };
|
||||
}
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
inputs,
|
||||
vacuModuleType,
|
||||
...
|
||||
}:
|
||||
{ inputs, vacuModuleType, ... }:
|
||||
if vacuModuleType == "nixos" then
|
||||
{
|
||||
# imports = [ inputs.lix-module.nixosModules.default ];
|
||||
|
@@ -5,54 +5,56 @@ declare -A cache_to_url
|
||||
cache_to_url["foo"]="https://example.com/some-nix-cache"
|
||||
|
||||
declare -a caches_to_use=("foo")
|
||||
|
||||
declare nixCmd="foo"
|
||||
# replaceme END
|
||||
|
||||
declare -a preArgs
|
||||
declare -a passThruArgs
|
||||
cache_name=""
|
||||
function valid_cache_name() {
|
||||
cache_name="$1"
|
||||
if [[ "$cache_name" == -* ]]; then
|
||||
echo "invalid cache name" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
while [[ -n "$1" ]]; do
|
||||
cache_name="$1"
|
||||
if [[ $cache_name == -* ]]; then
|
||||
echo "invalid cache name" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
while [[ -n $1 ]]; do
|
||||
arg="$1"
|
||||
shift
|
||||
case "$arg" in
|
||||
"--without-cache")
|
||||
cache_name="$1"
|
||||
shift
|
||||
valid_cache_name "$cache_name"
|
||||
caches_to_use=("${caches_to_use[@]/$cache_name}")
|
||||
;;
|
||||
"--with-cache")
|
||||
cache_name="$1"
|
||||
shift
|
||||
valid_cache_name "$cache_name"
|
||||
caches_to_use+=("$cache_name")
|
||||
;;
|
||||
"--only-cache")
|
||||
cache_name="$1"
|
||||
shift
|
||||
valid_cache_name "$cache_name"
|
||||
caches_to_use=("$cache_name")
|
||||
;;
|
||||
"--on-trip")
|
||||
if [[ "$HOSTNAME" == "triple-dezert" ]]; then
|
||||
echo "Warn: skipping --on-trip: already on trip" >&2
|
||||
else
|
||||
passThruArgs+=("--builders" "ssh://trip x86_64-linux,aarch64-linux" "--max-jobs" "0" "--option" "builders-use-substitutes" "true")
|
||||
fi
|
||||
;;
|
||||
"--")
|
||||
passThruArgs+=("$arg" "$@")
|
||||
break;
|
||||
;;
|
||||
*)
|
||||
passThruArgs+=("$arg")
|
||||
;;
|
||||
"--without-cache")
|
||||
cache_name="$1"
|
||||
shift
|
||||
valid_cache_name "$cache_name"
|
||||
caches_to_use=("${caches_to_use[@]/$cache_name/}")
|
||||
;;
|
||||
"--with-cache")
|
||||
cache_name="$1"
|
||||
shift
|
||||
valid_cache_name "$cache_name"
|
||||
caches_to_use+=("$cache_name")
|
||||
;;
|
||||
"--only-cache")
|
||||
cache_name="$1"
|
||||
shift
|
||||
valid_cache_name "$cache_name"
|
||||
caches_to_use=("$cache_name")
|
||||
;;
|
||||
"--on-trip")
|
||||
if [[ $HOSTNAME == "triple-dezert" ]]; then
|
||||
echo "Warn: skipping --on-trip: already on trip" >&2
|
||||
else
|
||||
passThruArgs+=("--builders" "ssh://trip x86_64-linux,aarch64-linux" "--max-jobs" "0" "--option" "builders-use-substitutes" "true")
|
||||
fi
|
||||
;;
|
||||
"--")
|
||||
passThruArgs+=("$arg" "$@")
|
||||
break
|
||||
;;
|
||||
*)
|
||||
passThruArgs+=("$arg")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -62,6 +64,8 @@ for c in "${caches_to_use[@]}"; do
|
||||
substituters+=("$url")
|
||||
done
|
||||
|
||||
preArgs+=("--option" "substituters" "$(echo "${substituters[@]}")")
|
||||
substituters_together="${substituters[*]}"
|
||||
|
||||
preArgs+=("--option" "substituters" "$substituters_together")
|
||||
|
||||
exec "$nixCmd" "${preArgs[@]}" "${passThruArgs[@]}"
|
||||
|
@@ -36,9 +36,7 @@ let
|
||||
if builtins.isString val then
|
||||
{
|
||||
name = val;
|
||||
value = {
|
||||
inherit enable;
|
||||
};
|
||||
value = { inherit enable; };
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -48,9 +48,7 @@ in
|
||||
type = types.lines;
|
||||
readOnly = true;
|
||||
};
|
||||
vacu.shell.wrappedBash = mkOption {
|
||||
readOnly = true;
|
||||
};
|
||||
vacu.shell.wrappedBash = mkOption { readOnly = true; };
|
||||
vacu.shell.idempotentShellLines = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
@@ -59,9 +57,7 @@ in
|
||||
type = types.enum (builtins.attrNames vaculib.shellColors);
|
||||
default = "white";
|
||||
};
|
||||
vacu.shell.functions = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
};
|
||||
vacu.shell.functions = mkOption { type = types.attrsOf types.str; };
|
||||
};
|
||||
config.vacu = {
|
||||
vaculib = {
|
||||
|
@@ -12,8 +12,8 @@ let
|
||||
|
||||
# TODO: reset_without_clear doesn't fully work
|
||||
# thanks colin https://git.uninsane.org/colin/nix-files/src/commit/7f5b2628016c8ca1beec417766157c7676a9c5e5/hosts/common/programs/zsh/starship.nix#L24
|
||||
set = opt: ''\e[?${opt}h'';
|
||||
clear = opt: ''\e[?${opt}l'';
|
||||
set = opt: "\\e[?${opt}h";
|
||||
clear = opt: "\\e[?${opt}l";
|
||||
reset_without_clear = builtins.concatStringsSep "" [
|
||||
# reset terminal mode (in case the previous command screwed with it)
|
||||
# 'l' = turn option of, 'h' = turn option on.
|
||||
@@ -49,19 +49,19 @@ let
|
||||
];
|
||||
# https://man.archlinux.org/man/bash.1#PROMPTING
|
||||
# \[ and \] begins and ends "a sequence of non-printing characters"
|
||||
set_color = colornum: ''\[\e[1;${toString colornum}m\]'';
|
||||
set_inverted_color = colornum: ''\[\e[1;37;${toString (colornum + 10)}m\]'';
|
||||
reset_color = ''\[\e[0m\]'';
|
||||
set_color = colornum: "\\[\\e[1;${toString colornum}m\\]";
|
||||
set_inverted_color = colornum: "\\[\\e[1;37;${toString (colornum + 10)}m\\]";
|
||||
reset_color = "\\[\\e[0m\\]";
|
||||
colornum = colors.${cfg.color};
|
||||
root_text = root: lib.optionalString root "ROOT@";
|
||||
final = root: if root then (set_inverted_color colors.red) + "!!" else "$";
|
||||
hostName = if vacuModuleType == "plain" then ''\h'' else config.vacu.shortHostName;
|
||||
hostName = if vacuModuleType == "plain" then "\\h" else config.vacu.shortHostName;
|
||||
default_ps1 =
|
||||
root:
|
||||
''\n''
|
||||
"\\n"
|
||||
# + ''\[${reset_without_clear}\]''
|
||||
+ (set_color colornum)
|
||||
+ ''${root_text root}${hostName}:\w''
|
||||
+ "${root_text root}${hostName}:\\w"
|
||||
+ (final root)
|
||||
+ reset_color
|
||||
+ " ";
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkOption
|
||||
|
@@ -15,11 +15,11 @@ let
|
||||
disallowedMiddle = "-" + disallowedAnywhere;
|
||||
disallowedAtEnd = "23456789_,." + disallowedAnywhere;
|
||||
disallowedAtBegin = "-01" + disallowedAtEnd;
|
||||
anyExcept = chars: ''[^${lib.escapeRegex chars}]'';
|
||||
anyExcept = chars: "[^${lib.escapeRegex chars}]";
|
||||
singleChar = anyExcept disallowedAtBegin;
|
||||
multiChar = ''${anyExcept disallowedAtBegin}${anyExcept disallowedMiddle}*${anyExcept disallowedAtEnd}'';
|
||||
numberSuffix = regex: ''${regex}_[0-9\.,]+'';
|
||||
fullRegex = ''${singleChar}|${multiChar}|${numberSuffix singleChar}|${numberSuffix multiChar}'';
|
||||
multiChar = "${anyExcept disallowedAtBegin}${anyExcept disallowedMiddle}*${anyExcept disallowedAtEnd}";
|
||||
numberSuffix = regex: "${regex}_[0-9\\.,]+";
|
||||
fullRegex = "${singleChar}|${multiChar}|${numberSuffix singleChar}|${numberSuffix multiChar}";
|
||||
in
|
||||
fullRegex;
|
||||
unitsAttrsType = types.addCheck (types.attrsOf types.str) (
|
||||
@@ -119,7 +119,7 @@ in
|
||||
}
|
||||
{
|
||||
vacu.units.lines = lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (name: value: "+${name}\t${value}") config.vacu.units.extraUnits
|
||||
lib.mapAttrsToList (name: value: "+${name} ${value}") config.vacu.units.extraUnits
|
||||
);
|
||||
}
|
||||
];
|
||||
|
@@ -9,9 +9,7 @@ let
|
||||
cfg = config.vacu.verifySystem;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./nixos.nix
|
||||
];
|
||||
imports = [ ./nixos.nix ];
|
||||
options.vacu.verifySystem = {
|
||||
enable = (mkEnableOption "verify system is what is expected") // {
|
||||
default = false;
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
|
@@ -12,7 +12,7 @@ let
|
||||
keyValToConfigLines = (
|
||||
key: value:
|
||||
if (builtins.isString value) || (builtins.isPath value) then
|
||||
"${key} = \"${value}\""
|
||||
''${key} = "${value}"''
|
||||
else if builtins.isInt value then
|
||||
"${key} = ${builtins.toString value}"
|
||||
else if builtins.isList value then
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib) singleton;
|
||||
inherit (config.vacu) dnsData;
|
||||
@@ -11,9 +7,7 @@ in
|
||||
vacu.dns."for.miras.pet" =
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
dnsData.modules.cloudns
|
||||
];
|
||||
imports = [ dnsData.modules.cloudns ];
|
||||
subdomains = {
|
||||
"git".A = singleton dnsData.tripPublicV4;
|
||||
"auth".A = singleton dnsData.tripPublicV4;
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib) singleton;
|
||||
inherit (config.vacu) dnsData;
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib) singleton;
|
||||
inherit (config.vacu) dnsData;
|
||||
@@ -11,9 +7,7 @@ in
|
||||
vacu.dns."pwrhs.win" =
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
dnsData.modules.cloudns
|
||||
];
|
||||
imports = [ dnsData.modules.cloudns ];
|
||||
A = singleton dnsData.tripPublicV4;
|
||||
subdomains.habitat.A = singleton dnsData.tripPublicV4;
|
||||
subdomains._acme-challenge.CNAME = singleton "73697955-1c51-48ba-ba1e-b3398850f59f.auwwth.dis8.net.";
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib) singleton;
|
||||
inherit (config.vacu) dnsData;
|
||||
|
@@ -451,9 +451,7 @@
|
||||
sopsConfig = plain.config.vacu.sopsConfigFile;
|
||||
sourceTree = plain.config.vacu.sourceTree;
|
||||
units = plain.config.vacu.units.finalPackage;
|
||||
update-git-keys = pkgs-stable.callPackage ./scripts/update-git-keys.nix {
|
||||
inherit (plain) config;
|
||||
};
|
||||
update-git-keys = pkgs-stable.callPackage ./scripts/update-git-keys.nix { inherit (plain) config; };
|
||||
vnopnCA = pkgs-stable.writeText "vnopnCA.cert" plain.config.vacu.vnopnCA;
|
||||
wrappedSops = plain.config.vacu.wrappedSops;
|
||||
z3 = pkgs-unstable.callPackage ./packages/z3 { };
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nixos-hardware.nixosModules.framework-16-7040-amd
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
vacu.packages.orca-slicer = {
|
||||
enable = true;
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ config, ... }:
|
||||
{
|
||||
sops.secrets.radicle-key = {
|
||||
sopsFile = ../secrets/radicle-private.key;
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
boot.zfs.extraPools = [ "fw" ];
|
||||
# config.boot.zfs.package.latestCompatibleLinuxPackages is fucked, if there are multiple compatible linuxes of the same version, it picks effectively an arbitrary one
|
||||
|
@@ -5,9 +5,7 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
"${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"
|
||||
];
|
||||
imports = [ "${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix" ];
|
||||
# this is an installer image, created anew every time. There's no state we need to worry about messing up
|
||||
system.stateVersion = config.system.nixos.version;
|
||||
isoImage.isoBaseName = "nixos-shel-installer";
|
||||
|
@@ -73,7 +73,9 @@ in
|
||||
enableSubmission = false;
|
||||
enableSubmissions = true;
|
||||
mapFiles.header_checks = pkgs.writeText "header-checks" (
|
||||
"/./ INFO checker headers\n"
|
||||
''
|
||||
/./ INFO checker headers
|
||||
''
|
||||
+ (mapLines (
|
||||
d: "/^(from|x-original-from|return-path|mail-?from):.*@${lib.escape [ "." ] d}\\s*>?\\s*$/ REJECT"
|
||||
) domains)
|
||||
@@ -89,11 +91,16 @@ in
|
||||
mapLines (d: "@${d} relayservice") relayable_domains
|
||||
);
|
||||
mapFiles.sender_relay = pkgs.writeText "sender-relay" (
|
||||
"@shelvacu.com ${relayhosts.allDomains} ${relayhosts.shelvacuAlt} \n"
|
||||
''
|
||||
@shelvacu.com ${relayhosts.allDomains} ${relayhosts.shelvacuAlt}
|
||||
''
|
||||
+ (mapLines (d: "@${d} ${relayhosts.allDomains}") relayable_domains)
|
||||
);
|
||||
mapFiles.extra_login_maps = pkgs.writeText "extra-login-maps" (
|
||||
"robot@vacu.store vacustore\n" + config.services.postfix.virtual
|
||||
''
|
||||
robot@vacu.store vacustore
|
||||
''
|
||||
+ config.services.postfix.virtual
|
||||
);
|
||||
|
||||
# verbatim appended to main.cf
|
||||
|
@@ -69,22 +69,13 @@ let
|
||||
folder_name;
|
||||
is_match = regex: s: (match regex s) != null;
|
||||
is_not_match = regex: s: !(is_match regex s);
|
||||
is_quoteable = s: (is_match "[ -~]*" s) && (is_not_match (''\$'' + ''\{'') s);
|
||||
is_quoteable = s: (is_match "[ -~]*" s) && (is_not_match ("\\$" + "\\{") s);
|
||||
sieve_quote_string_bare =
|
||||
s:
|
||||
assert is_quoteable s;
|
||||
replaceStrings
|
||||
[
|
||||
"\""
|
||||
"\\"
|
||||
]
|
||||
[
|
||||
"\\\""
|
||||
"\\\\"
|
||||
]
|
||||
s;
|
||||
sieve_quote_string = s: "\"" + (sieve_quote_string_bare s) + "\"";
|
||||
interp = ident: "$" + ''{${ident}}'';
|
||||
replaceStrings [ ''"'' "\\" ] [ ''\"'' "\\\\" ] s;
|
||||
sieve_quote_string = s: ''"'' + (sieve_quote_string_bare s) + ''"'';
|
||||
interp = ident: "$" + "{${ident}}";
|
||||
dest = "envelope_to";
|
||||
dest_domain = "envelope_to_domain";
|
||||
set_envelope = ''
|
||||
@@ -135,7 +126,9 @@ let
|
||||
'';
|
||||
set_var_from_environment =
|
||||
item: var:
|
||||
"# set_var_from_environment\n"
|
||||
''
|
||||
# set_var_from_environment
|
||||
''
|
||||
+ set_from {
|
||||
condition = ''environment :matches ${sieve_quote_string item} "*"'';
|
||||
inherit var;
|
||||
|
@@ -1,8 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware-config.nix
|
||||
];
|
||||
imports = [ ./hardware-config.nix ];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
|
@@ -1,12 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./flake-registry.nix
|
||||
];
|
||||
imports = [ ./flake-registry.nix ];
|
||||
|
||||
vacu.shell.color = "white";
|
||||
vacu.systemKind = "server";
|
||||
|
@@ -1,338 +1,338 @@
|
||||
{
|
||||
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
|
||||
"!version": 1,
|
||||
"https://plugins.gradle.org/m2": {
|
||||
"com/github/gundy#semver4j/0.16.4": {
|
||||
"pom": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0="
|
||||
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
|
||||
"!version": 1,
|
||||
"https://plugins.gradle.org/m2": {
|
||||
"com/github/gundy#semver4j/0.16.4": {
|
||||
"pom": "sha256-MgAdskQ7M53SH1t5/ynRreci0boIDCFL3oGfD3LRYE0="
|
||||
},
|
||||
"com/github/gundy#semver4j/0.16.4/nodeps": {
|
||||
"jar": "sha256-P1nspRY3TM1P01UWJb9Q+KSxkfcAUI985IZkYKYSivA="
|
||||
},
|
||||
"com/google/code/findbugs#jsr305/3.0.2": {
|
||||
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
|
||||
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
|
||||
},
|
||||
"com/google/code/gson#gson-parent/2.8.6": {
|
||||
"pom": "sha256-NzZGOFnsGSZyleiUlAroKo9oRBMDESL+Nc58/34wp3Q="
|
||||
},
|
||||
"com/google/code/gson#gson/2.8.6": {
|
||||
"jar": "sha256-yPtIOQVNKAswM/gA0fWpfeLwKOuLoutFitKH5Tbz8l8=",
|
||||
"pom": "sha256-IXRBWmRzMtMP2gS9HPxwij7MhOr3UX9ZYYjYJE4QORE="
|
||||
},
|
||||
"com/google/errorprone#error_prone_annotations/2.3.4": {
|
||||
"jar": "sha256-uvfW6pfOYGxT4RtoVLpfLOfvXCTd3wr6GNEmC9JbACw=",
|
||||
"pom": "sha256-EyZziktPfMrPYHuGahH7hRk+9g9qWUYRh85yZfm+W+0="
|
||||
},
|
||||
"com/google/errorprone#error_prone_parent/2.3.4": {
|
||||
"pom": "sha256-QElbQ3pg0jmPD9/AVLidnDlKgjR6J0oHIcLpUKQwIYY="
|
||||
},
|
||||
"com/google/guava#failureaccess/1.0.1": {
|
||||
"jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=",
|
||||
"pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk="
|
||||
},
|
||||
"com/google/guava#guava-parent/26.0-android": {
|
||||
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
|
||||
},
|
||||
"com/google/guava#guava-parent/29.0-jre": {
|
||||
"pom": "sha256-alf54C9436L0vaNBYGWmRCauG2beIoz24Zbi4ZElU78="
|
||||
},
|
||||
"com/google/guava#guava/29.0-jre": {
|
||||
"jar": "sha256-sixftm1h57lSJTHQSy+RW1FY6AqgtA7nKCyL+wew2iU=",
|
||||
"pom": "sha256-kCfpNAmJA9KH8bphyLZfAdHR4dp6b7zAS/PeBUQBRCY="
|
||||
},
|
||||
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
|
||||
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
|
||||
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
|
||||
},
|
||||
"com/google/j2objc#j2objc-annotations/1.3": {
|
||||
"jar": "sha256-Ia8wySJnvWEiwOC00gzMtmQaN+r5VsZUDsRx1YTmSns=",
|
||||
"pom": "sha256-X6yoJLoRW+5FhzAzff2y/OpGui/XdNQwTtvzD6aj8FU="
|
||||
},
|
||||
"de/undercouch#gradle-download-task/4.1.1": {
|
||||
"jar": "sha256-6wi1cOQI1GRnBecKlJYU1DnqKxFFXxZSqwMw3olU2rk=",
|
||||
"pom": "sha256-EQnx9xpUJU1ZAzfYudRD+d/AhyjJwdgzVlXMHcyIwLk="
|
||||
},
|
||||
"org/checkerframework#checker-qual/2.11.1": {
|
||||
"jar": "sha256-AVIkpLHcbebaBTJz1Np9Oc/qIOYwOBafxFrA0dycWTg=",
|
||||
"pom": "sha256-zy4MkNj3V0VfSiWOpglzkFNmO9XaannZvVP5NaR955w="
|
||||
},
|
||||
"org/jetbrains/intellij/deps#trove4j/1.0.20181211": {
|
||||
"jar": "sha256-r/t8haPIe9z2n/HbuE3hH2PckxKTk0vAjNerGN4INgE=",
|
||||
"pom": "sha256-MQpqotkFNMMrj0bx/JjNDtrpXc38oj4oR+Xvqa4MAZo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-android-extensions/1.5.31": {
|
||||
"jar": "sha256-aO1mp5A4wtK1Tu7KFpXUuXCV4jW5DT0/WKHE3hme0lU=",
|
||||
"pom": "sha256-LgIHPvU+pggMAM+KqkdItBkXpNpsSdKNaDLWoSmnzEY="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-annotation-processing-gradle/1.5.31": {
|
||||
"jar": "sha256-4nC48GUtl5pjrKTUohJwmGqvBjeOLrg48Azgk5D1q0w=",
|
||||
"pom": "sha256-bBvZhwcdN3Qu809UrUQ5nmuQiR4/uLDCz0qMN3Y7jVA="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-build-common/1.5.31": {
|
||||
"jar": "sha256-N4s/SEMiUQ1ozWlPksWuASxrssatmVhShVOWkptVOEk=",
|
||||
"pom": "sha256-ta6dsXnXsWsa9u3FHwX5rA1u+fYUm8CNiVhIphLSCY4="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-45gRqeTBAud5xlnu/pCwQcZs6HV4wb/awHz1BNFVF0U=",
|
||||
"pom": "sha256-1Ess6vKEuuky15hYHkIrtr0sjln084u9H+Kh2lo8dTQ="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-runner/1.5.31": {
|
||||
"jar": "sha256-/UvVYjtsKVsHYhlumb5xVPHvCtM4zXm7r6T7wvHACwg=",
|
||||
"pom": "sha256-N16wYQP23mQGWw9CwtZtEHFZs+kvXqLhzrJRfia6yCw="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-client/1.5.31": {
|
||||
"jar": "sha256-6oITtcl0wSVzoYu7dZV5hztt8XgAvbjYsFL8NS4R+cA=",
|
||||
"pom": "sha256-cA50WnFGgWov+xJmkZymNq2dAioH4doKVlibE5R+ST8="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.5.31": {
|
||||
"jar": "sha256-9h6vieXjhIYxZQslzftm/oyuAoGgVNnZhnFgAKFbqNY=",
|
||||
"pom": "sha256-alUadKuKIMrt+a281OvpYzPqq13+NV+RuwFRbMMct3Y="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.5.31": {
|
||||
"jar": "sha256-j9I46omSPn3xs3X5GHEApxTH4lP3hskqrJH/BGfu8tQ=",
|
||||
"pom": "sha256-QBBV9PNHv/N03+YeO9et0gvB5+YhW0RZDZRtDEfOXog="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.5.31": {
|
||||
"jar": "sha256-Tl42xb32B1GAXBveqDQRBmeOYj8KrLbaKz0gTN9BBmE=",
|
||||
"pom": "sha256-x/F3wK/XKh+7yWtS1V/QzsgfCMm2Sln09FFaV9+Sy7s="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.5.31": {
|
||||
"jar": "sha256-EsFFQSMeiBzbBKw0lgV1X/D3hY0VsZ9TbAELGxPDbAw=",
|
||||
"pom": "sha256-YGdxue42D9zlv4aOrVLhRcUwy0tly7VrWwImbWxsU/w="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/1.5.31": {
|
||||
"jar": "sha256-EDlqWVu4xeJUkDAxDTDNUWd8WIBCFqUoI6SAaBnLD9c=",
|
||||
"pom": "sha256-6g+LFK3jOqvoJEhLpnA3UV5OuId0zVfneQqFQbWHQpk="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-native-utils/1.5.31": {
|
||||
"jar": "sha256-cSfgacEGNt54QsP4TC7G4/W3dk+m3f3rE5XLvxrlUcQ=",
|
||||
"pom": "sha256-aFn8z6JTCGmRPaiac3gOpgCqaXFfFHRZdvL7BbLj3oc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-project-model/1.5.31": {
|
||||
"jar": "sha256-rcqYHKsdnQUtjiNnMAJ2bUp5TMeOtfb+skEstpy8HNE=",
|
||||
"pom": "sha256-3wmxdZNSUpS80PdsR4eGcuAKLhsYH3B0lrHUE5C8Ruk="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-common/1.5.31": {
|
||||
"jar": "sha256-IZ7fAK7YKIxx2AAvFZhS1TXsmveuv7B9+DboR5qDR+8=",
|
||||
"pom": "sha256-LSB1cya+WOSOs2EE1i0LyL/Z3Ogm2M3QXLThlgnFlTI="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-yGIfrjb42bhJFqpMBH0pgWX6Mv09ID0W0mUd5JGoRT0=",
|
||||
"pom": "sha256-CYeCsKIsAhdU0NKXANquyn/HYEIIL+HZDcY8lfJiYlE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.5.31": {
|
||||
"jar": "sha256-elvIU0hD4LAcY1+Ys8WLLQMDx/GocxW39EImuTry5nM=",
|
||||
"pom": "sha256-GMfKFcag0wZNkA5sxntadv3pMNA5PdNCzOTUN76wc/c="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.5.31": {
|
||||
"jar": "sha256-b65w7F2DcwrUfQEt3iMNbdSXXD2MDomt7Jq9Q/pv5t4=",
|
||||
"pom": "sha256-HPr0zKwkDc2NC2xhM7vGVAgc28CDJx+Pn8lxH4BctPA="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-tooling-metadata/1.5.31": {
|
||||
"jar": "sha256-DdebRc2fJw+N9e68t8jWriNOmCdNGhm+aiSu4SpOOr4=",
|
||||
"pom": "sha256-n8mlg2Mc6fd9bWFK35erK4IM/X71Xa5LFRqDlre6bps="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-util-io/1.5.31": {
|
||||
"jar": "sha256-LCbUBlmFc+qr1XUCnw/+G807aZvwJScJNYSo0nbPUmo=",
|
||||
"pom": "sha256-+pgbeSjlucTwdec+CBgsXj236IWpEPNl+2Ku+I5aNVo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-util-klib/1.5.31": {
|
||||
"jar": "sha256-+RcvLoQZS9Wp1Al8f/3Pf/wLwiMi0OH+FwG2KsM613A=",
|
||||
"pom": "sha256-O5q77lvcFo+l8EOXgLdIBWm6DRjbNPdJHoqsX/1odjM="
|
||||
},
|
||||
"org/jetbrains/kotlin/jvm#org.jetbrains.kotlin.jvm.gradle.plugin/1.5.31": {
|
||||
"pom": "sha256-TwiJBgIxZmuJn35gfMdxmxvrMMxt7Opn00q97RO2lBM="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": {
|
||||
"jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=",
|
||||
"module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=",
|
||||
"pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core/1.5.0": {
|
||||
"module": "sha256-2KJqiW2jL7H4w/E/5By3mKYSocHd86VV2C7h/xbvE9M=",
|
||||
"pom": "sha256-/8k2P3ybw40mHJOM23+kXO5WiU1xq7Kd+/23CzVY1FI="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/7": {
|
||||
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/9": {
|
||||
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
|
||||
}
|
||||
},
|
||||
"com/github/gundy#semver4j/0.16.4/nodeps": {
|
||||
"jar": "sha256-P1nspRY3TM1P01UWJb9Q+KSxkfcAUI985IZkYKYSivA="
|
||||
},
|
||||
"com/google/code/findbugs#jsr305/3.0.2": {
|
||||
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
|
||||
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
|
||||
},
|
||||
"com/google/code/gson#gson-parent/2.8.6": {
|
||||
"pom": "sha256-NzZGOFnsGSZyleiUlAroKo9oRBMDESL+Nc58/34wp3Q="
|
||||
},
|
||||
"com/google/code/gson#gson/2.8.6": {
|
||||
"jar": "sha256-yPtIOQVNKAswM/gA0fWpfeLwKOuLoutFitKH5Tbz8l8=",
|
||||
"pom": "sha256-IXRBWmRzMtMP2gS9HPxwij7MhOr3UX9ZYYjYJE4QORE="
|
||||
},
|
||||
"com/google/errorprone#error_prone_annotations/2.3.4": {
|
||||
"jar": "sha256-uvfW6pfOYGxT4RtoVLpfLOfvXCTd3wr6GNEmC9JbACw=",
|
||||
"pom": "sha256-EyZziktPfMrPYHuGahH7hRk+9g9qWUYRh85yZfm+W+0="
|
||||
},
|
||||
"com/google/errorprone#error_prone_parent/2.3.4": {
|
||||
"pom": "sha256-QElbQ3pg0jmPD9/AVLidnDlKgjR6J0oHIcLpUKQwIYY="
|
||||
},
|
||||
"com/google/guava#failureaccess/1.0.1": {
|
||||
"jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=",
|
||||
"pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk="
|
||||
},
|
||||
"com/google/guava#guava-parent/26.0-android": {
|
||||
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
|
||||
},
|
||||
"com/google/guava#guava-parent/29.0-jre": {
|
||||
"pom": "sha256-alf54C9436L0vaNBYGWmRCauG2beIoz24Zbi4ZElU78="
|
||||
},
|
||||
"com/google/guava#guava/29.0-jre": {
|
||||
"jar": "sha256-sixftm1h57lSJTHQSy+RW1FY6AqgtA7nKCyL+wew2iU=",
|
||||
"pom": "sha256-kCfpNAmJA9KH8bphyLZfAdHR4dp6b7zAS/PeBUQBRCY="
|
||||
},
|
||||
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
|
||||
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
|
||||
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
|
||||
},
|
||||
"com/google/j2objc#j2objc-annotations/1.3": {
|
||||
"jar": "sha256-Ia8wySJnvWEiwOC00gzMtmQaN+r5VsZUDsRx1YTmSns=",
|
||||
"pom": "sha256-X6yoJLoRW+5FhzAzff2y/OpGui/XdNQwTtvzD6aj8FU="
|
||||
},
|
||||
"de/undercouch#gradle-download-task/4.1.1": {
|
||||
"jar": "sha256-6wi1cOQI1GRnBecKlJYU1DnqKxFFXxZSqwMw3olU2rk=",
|
||||
"pom": "sha256-EQnx9xpUJU1ZAzfYudRD+d/AhyjJwdgzVlXMHcyIwLk="
|
||||
},
|
||||
"org/checkerframework#checker-qual/2.11.1": {
|
||||
"jar": "sha256-AVIkpLHcbebaBTJz1Np9Oc/qIOYwOBafxFrA0dycWTg=",
|
||||
"pom": "sha256-zy4MkNj3V0VfSiWOpglzkFNmO9XaannZvVP5NaR955w="
|
||||
},
|
||||
"org/jetbrains/intellij/deps#trove4j/1.0.20181211": {
|
||||
"jar": "sha256-r/t8haPIe9z2n/HbuE3hH2PckxKTk0vAjNerGN4INgE=",
|
||||
"pom": "sha256-MQpqotkFNMMrj0bx/JjNDtrpXc38oj4oR+Xvqa4MAZo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-android-extensions/1.5.31": {
|
||||
"jar": "sha256-aO1mp5A4wtK1Tu7KFpXUuXCV4jW5DT0/WKHE3hme0lU=",
|
||||
"pom": "sha256-LgIHPvU+pggMAM+KqkdItBkXpNpsSdKNaDLWoSmnzEY="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-annotation-processing-gradle/1.5.31": {
|
||||
"jar": "sha256-4nC48GUtl5pjrKTUohJwmGqvBjeOLrg48Azgk5D1q0w=",
|
||||
"pom": "sha256-bBvZhwcdN3Qu809UrUQ5nmuQiR4/uLDCz0qMN3Y7jVA="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-build-common/1.5.31": {
|
||||
"jar": "sha256-N4s/SEMiUQ1ozWlPksWuASxrssatmVhShVOWkptVOEk=",
|
||||
"pom": "sha256-ta6dsXnXsWsa9u3FHwX5rA1u+fYUm8CNiVhIphLSCY4="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-45gRqeTBAud5xlnu/pCwQcZs6HV4wb/awHz1BNFVF0U=",
|
||||
"pom": "sha256-1Ess6vKEuuky15hYHkIrtr0sjln084u9H+Kh2lo8dTQ="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-runner/1.5.31": {
|
||||
"jar": "sha256-/UvVYjtsKVsHYhlumb5xVPHvCtM4zXm7r6T7wvHACwg=",
|
||||
"pom": "sha256-N16wYQP23mQGWw9CwtZtEHFZs+kvXqLhzrJRfia6yCw="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-client/1.5.31": {
|
||||
"jar": "sha256-6oITtcl0wSVzoYu7dZV5hztt8XgAvbjYsFL8NS4R+cA=",
|
||||
"pom": "sha256-cA50WnFGgWov+xJmkZymNq2dAioH4doKVlibE5R+ST8="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.5.31": {
|
||||
"jar": "sha256-9h6vieXjhIYxZQslzftm/oyuAoGgVNnZhnFgAKFbqNY=",
|
||||
"pom": "sha256-alUadKuKIMrt+a281OvpYzPqq13+NV+RuwFRbMMct3Y="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.5.31": {
|
||||
"jar": "sha256-j9I46omSPn3xs3X5GHEApxTH4lP3hskqrJH/BGfu8tQ=",
|
||||
"pom": "sha256-QBBV9PNHv/N03+YeO9et0gvB5+YhW0RZDZRtDEfOXog="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.5.31": {
|
||||
"jar": "sha256-Tl42xb32B1GAXBveqDQRBmeOYj8KrLbaKz0gTN9BBmE=",
|
||||
"pom": "sha256-x/F3wK/XKh+7yWtS1V/QzsgfCMm2Sln09FFaV9+Sy7s="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.5.31": {
|
||||
"jar": "sha256-EsFFQSMeiBzbBKw0lgV1X/D3hY0VsZ9TbAELGxPDbAw=",
|
||||
"pom": "sha256-YGdxue42D9zlv4aOrVLhRcUwy0tly7VrWwImbWxsU/w="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/1.5.31": {
|
||||
"jar": "sha256-EDlqWVu4xeJUkDAxDTDNUWd8WIBCFqUoI6SAaBnLD9c=",
|
||||
"pom": "sha256-6g+LFK3jOqvoJEhLpnA3UV5OuId0zVfneQqFQbWHQpk="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-native-utils/1.5.31": {
|
||||
"jar": "sha256-cSfgacEGNt54QsP4TC7G4/W3dk+m3f3rE5XLvxrlUcQ=",
|
||||
"pom": "sha256-aFn8z6JTCGmRPaiac3gOpgCqaXFfFHRZdvL7BbLj3oc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-project-model/1.5.31": {
|
||||
"jar": "sha256-rcqYHKsdnQUtjiNnMAJ2bUp5TMeOtfb+skEstpy8HNE=",
|
||||
"pom": "sha256-3wmxdZNSUpS80PdsR4eGcuAKLhsYH3B0lrHUE5C8Ruk="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-common/1.5.31": {
|
||||
"jar": "sha256-IZ7fAK7YKIxx2AAvFZhS1TXsmveuv7B9+DboR5qDR+8=",
|
||||
"pom": "sha256-LSB1cya+WOSOs2EE1i0LyL/Z3Ogm2M3QXLThlgnFlTI="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-yGIfrjb42bhJFqpMBH0pgWX6Mv09ID0W0mUd5JGoRT0=",
|
||||
"pom": "sha256-CYeCsKIsAhdU0NKXANquyn/HYEIIL+HZDcY8lfJiYlE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.5.31": {
|
||||
"jar": "sha256-elvIU0hD4LAcY1+Ys8WLLQMDx/GocxW39EImuTry5nM=",
|
||||
"pom": "sha256-GMfKFcag0wZNkA5sxntadv3pMNA5PdNCzOTUN76wc/c="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.5.31": {
|
||||
"jar": "sha256-b65w7F2DcwrUfQEt3iMNbdSXXD2MDomt7Jq9Q/pv5t4=",
|
||||
"pom": "sha256-HPr0zKwkDc2NC2xhM7vGVAgc28CDJx+Pn8lxH4BctPA="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-tooling-metadata/1.5.31": {
|
||||
"jar": "sha256-DdebRc2fJw+N9e68t8jWriNOmCdNGhm+aiSu4SpOOr4=",
|
||||
"pom": "sha256-n8mlg2Mc6fd9bWFK35erK4IM/X71Xa5LFRqDlre6bps="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-util-io/1.5.31": {
|
||||
"jar": "sha256-LCbUBlmFc+qr1XUCnw/+G807aZvwJScJNYSo0nbPUmo=",
|
||||
"pom": "sha256-+pgbeSjlucTwdec+CBgsXj236IWpEPNl+2Ku+I5aNVo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-util-klib/1.5.31": {
|
||||
"jar": "sha256-+RcvLoQZS9Wp1Al8f/3Pf/wLwiMi0OH+FwG2KsM613A=",
|
||||
"pom": "sha256-O5q77lvcFo+l8EOXgLdIBWm6DRjbNPdJHoqsX/1odjM="
|
||||
},
|
||||
"org/jetbrains/kotlin/jvm#org.jetbrains.kotlin.jvm.gradle.plugin/1.5.31": {
|
||||
"pom": "sha256-TwiJBgIxZmuJn35gfMdxmxvrMMxt7Opn00q97RO2lBM="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": {
|
||||
"jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=",
|
||||
"module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=",
|
||||
"pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core/1.5.0": {
|
||||
"module": "sha256-2KJqiW2jL7H4w/E/5By3mKYSocHd86VV2C7h/xbvE9M=",
|
||||
"pom": "sha256-/8k2P3ybw40mHJOM23+kXO5WiU1xq7Kd+/23CzVY1FI="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/7": {
|
||||
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/9": {
|
||||
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
|
||||
"https://repo.maven.apache.org/maven2": {
|
||||
"com/google/code/gson#gson-parent/2.8.8": {
|
||||
"pom": "sha256-IRPa1JelW3F03dXKUG9C4RKZHP7Mdt9icd8RWOPwmm8="
|
||||
},
|
||||
"com/google/code/gson#gson/2.8.8": {
|
||||
"jar": "sha256-xvMVKww5wbfr4mfplgSnUOnVWFsvPy4Z1vvX7JCA0Ps=",
|
||||
"pom": "sha256-NmyNW7OsBqHbLU7189l5bjCBuz+fDzmMxX+a+82cWDM="
|
||||
},
|
||||
"com/sun/mail#all/1.6.2": {
|
||||
"pom": "sha256-S36Dqpt31l4AfpfLUPm4nNt1T6rxZBHl/ZTR49q3brM="
|
||||
},
|
||||
"com/sun/mail#javax.mail/1.6.2": {
|
||||
"jar": "sha256-RbUV5xBJRMCeRbnHuxzl3/ZASGN0hS3SsugMw3Ut+hE=",
|
||||
"pom": "sha256-xCKcBbWDbwAlITY9NDXz0HJmJ0RUi/F+fnreyv5ouf0="
|
||||
},
|
||||
"info/picocli#picocli/4.6.1": {
|
||||
"jar": "sha256-Km4DMQ2xSfihHrBYqnjndcIp74FjM8loc3l2LSKDOtY=",
|
||||
"pom": "sha256-sQOC7VBz9mKP84EayWFEkbHv8wLDz55Cmo81P2w75M8="
|
||||
},
|
||||
"javax/activation#activation/1.1": {
|
||||
"jar": "sha256-KIHHnJ1u8BxY5ivuoT6dGsi4uqFvL8GYrW5ndt79zdM=",
|
||||
"pom": "sha256-1JDlQKEVBLnXFxixyF/vez3mgCNhKQgkU5sHbVj6qKA="
|
||||
},
|
||||
"net/java#jvnet-parent/1": {
|
||||
"pom": "sha256-KBRAgRJo5l2eJms8yJgpfiFOBPCXQNA4bO60qJI9Y78="
|
||||
},
|
||||
"org/apiguardian#apiguardian-api/1.1.2": {
|
||||
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
|
||||
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
|
||||
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
|
||||
},
|
||||
"org/ini4j#ini4j/0.5.4": {
|
||||
"jar": "sha256-qtYGNe7lZyVO0p8Y+xjA+eTE2s9RyCKRKCAxg7s14t0=",
|
||||
"pom": "sha256-XMYUkRJoPvybUbn9k3h307NQPfboBdMHHOTbOb41mY8="
|
||||
},
|
||||
"org/jetbrains#annotations/13.0": {
|
||||
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
|
||||
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||
},
|
||||
"org/jetbrains/intellij/deps#trove4j/1.0.20181211": {
|
||||
"jar": "sha256-r/t8haPIe9z2n/HbuE3hH2PckxKTk0vAjNerGN4INgE=",
|
||||
"pom": "sha256-MQpqotkFNMMrj0bx/JjNDtrpXc38oj4oR+Xvqa4MAZo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-45gRqeTBAud5xlnu/pCwQcZs6HV4wb/awHz1BNFVF0U=",
|
||||
"pom": "sha256-1Ess6vKEuuky15hYHkIrtr0sjln084u9H+Kh2lo8dTQ="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.5.31": {
|
||||
"jar": "sha256-9h6vieXjhIYxZQslzftm/oyuAoGgVNnZhnFgAKFbqNY=",
|
||||
"pom": "sha256-alUadKuKIMrt+a281OvpYzPqq13+NV+RuwFRbMMct3Y="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/1.5.31": {
|
||||
"jar": "sha256-hQ3nvEsAp4jnRUPZRAlrcHkLvL6XaNQtAQRbMhBXbnE=",
|
||||
"pom": "sha256-EtXpQVih6CA4YFUeyuUiiiM75NrhtRmvJLDEUui7wsc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-reflect/1.5.31": {
|
||||
"jar": "sha256-bg9UkOa5ZJ3dJnBTTk06A70oPDNYuO710TBP1filpPs=",
|
||||
"pom": "sha256-VitLqu6sfHJYlKEF/FHNPWfgolnnEUDVVUJsMycLMBQ="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-script-runtime/1.5.31": {
|
||||
"jar": "sha256-JORQ/udkXtNZCYHd3M85fA2eu3JYFclMT1Vcw9svn5Y=",
|
||||
"pom": "sha256-+MNYzwUXT+VmQWKGI7oxfJ3DcODp3oBbCLnRGMPFhbc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-common/1.5.31": {
|
||||
"jar": "sha256-IZ7fAK7YKIxx2AAvFZhS1TXsmveuv7B9+DboR5qDR+8=",
|
||||
"pom": "sha256-LSB1cya+WOSOs2EE1i0LyL/Z3Ogm2M3QXLThlgnFlTI="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-yGIfrjb42bhJFqpMBH0pgWX6Mv09ID0W0mUd5JGoRT0=",
|
||||
"pom": "sha256-CYeCsKIsAhdU0NKXANquyn/HYEIIL+HZDcY8lfJiYlE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.5.31": {
|
||||
"jar": "sha256-elvIU0hD4LAcY1+Ys8WLLQMDx/GocxW39EImuTry5nM=",
|
||||
"pom": "sha256-GMfKFcag0wZNkA5sxntadv3pMNA5PdNCzOTUN76wc/c="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.5.31": {
|
||||
"jar": "sha256-b65w7F2DcwrUfQEt3iMNbdSXXD2MDomt7Jq9Q/pv5t4=",
|
||||
"pom": "sha256-HPr0zKwkDc2NC2xhM7vGVAgc28CDJx+Pn8lxH4BctPA="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-common/1.5.31": {
|
||||
"jar": "sha256-36KhjiawKDiO4ZaNGZv28Wb3N6twScJaXi2mFEBOIq0=",
|
||||
"pom": "sha256-thXpRrjD0r6pllLs2pfVfs+Dv180xl0oZ5CvI+USg8I="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.5.0": {
|
||||
"jar": "sha256-rBLwkvErV1wfngq1AlseYQsP6VZj4mNxwWwyiJVxG64=",
|
||||
"pom": "sha256-7T5s00w9Onc9oOAHuxLhZFSHJUZOWtthZEqY+yklStE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.5.31": {
|
||||
"jar": "sha256-olv0c1POiZ2EPL3e5RbWIac0c+f7qX+NAwHntK7XwV8=",
|
||||
"pom": "sha256-IxOEie4pOmgZcGiHd0X3AL+hGvmJGHvtPDB0zYwHl3g="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.5.0": {
|
||||
"jar": "sha256-FebIG56EXu/ljVGgRnC7kEGARvRYJk7A5h7pvbwb+uc=",
|
||||
"pom": "sha256-0Ls+nTxj4e2bB3lPhWtyIEJwVxffMFEOTM4RPuLKWU0="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.5.31": {
|
||||
"jar": "sha256-tUj3dnqs8CnSQX5HRAdCvW0+vt4ZtgOG4jVUzlxMX9w=",
|
||||
"pom": "sha256-RREKqwB0eSuBWAewKy2vGNKzfodHrAaSqteg0C2ok98="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib/1.5.31": {
|
||||
"jar": "sha256-SADOrLLsC7mVmghxVLjjUxjq0epOujLUuxuXNCIqfmg=",
|
||||
"pom": "sha256-j3Z2AQSsTocwCcnwM90brXW507j5Uh1j2xJk2ESFLmw="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": {
|
||||
"jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=",
|
||||
"module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=",
|
||||
"pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core/1.5.0": {
|
||||
"module": "sha256-2KJqiW2jL7H4w/E/5By3mKYSocHd86VV2C7h/xbvE9M=",
|
||||
"pom": "sha256-/8k2P3ybw40mHJOM23+kXO5WiU1xq7Kd+/23CzVY1FI="
|
||||
},
|
||||
"org/jsoup#jsoup/1.14.3": {
|
||||
"jar": "sha256-kq8Z7FfMd2N9tEkPD1AR8ERNNTIJzjYIO6xCj5uBo5w=",
|
||||
"pom": "sha256-UsW86oFXCKOWqs6xQZm5Z5j8MhmtBSNvAaKttMhekGE="
|
||||
},
|
||||
"org/junit#junit-bom/5.8.1": {
|
||||
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
|
||||
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
|
||||
},
|
||||
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
|
||||
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
|
||||
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
|
||||
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
|
||||
},
|
||||
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
|
||||
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
|
||||
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
|
||||
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
|
||||
},
|
||||
"org/junit/platform#junit-platform-commons/1.8.1": {
|
||||
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
|
||||
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
|
||||
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
|
||||
},
|
||||
"org/junit/platform#junit-platform-engine/1.8.1": {
|
||||
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
|
||||
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
|
||||
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
|
||||
},
|
||||
"org/opentest4j#opentest4j/1.2.0": {
|
||||
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
|
||||
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
|
||||
},
|
||||
"org/slf4j#slf4j-api/1.6.6": {
|
||||
"pom": "sha256-cxmZMiteIokinNntRiTJQexXG3xh0qJ9alB+9zuXyho="
|
||||
},
|
||||
"org/slf4j#slf4j-api/1.7.32": {
|
||||
"jar": "sha256-NiT4R0wa9G11+YvAl9eGSjI8gbOAiqQ2iabhxgHAJ74=",
|
||||
"pom": "sha256-ABzeWzxrqRBwQlz+ny5pXkrri8KQotTNllMRJ6skT+U="
|
||||
},
|
||||
"org/slf4j#slf4j-parent/1.6.6": {
|
||||
"pom": "sha256-QrjCR2CP2OENW2Zs98gKW1nSseEoRQ97bZ0sIM+2sxs="
|
||||
},
|
||||
"org/slf4j#slf4j-parent/1.7.32": {
|
||||
"pom": "sha256-WrNJ0PTHvAjtDvH02ThssZQKL01vFSFQ4W277MC4PHA="
|
||||
},
|
||||
"org/slf4j#slf4j-simple/1.7.32": {
|
||||
"jar": "sha256-0v3XtzyiAZogYtFFoNhheaWPmMjD41ynxzWieztWIcM=",
|
||||
"pom": "sha256-VVTmGS0A/7oRfST9+HBIj50DkABH6Lq1XgDugzgvQdg="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/7": {
|
||||
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/9": {
|
||||
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
|
||||
},
|
||||
"org/xerial#sqlite-jdbc/3.36.0.2": {
|
||||
"jar": "sha256-D++S/Lco+7Tw88ua2+cIgjuGB0zef46jkd/AZiwz7Lo=",
|
||||
"pom": "sha256-IQG6KV0YmqEcASDMVuEs4WoyC5EE9gBer03ud4gXAkk="
|
||||
},
|
||||
"org/zeroturnaround#zt-zip/1.14": {
|
||||
"jar": "sha256-lkDsuPjrnDFVsVbtu0BJyT3uXaKz31U6UdlGmK+3aNk=",
|
||||
"pom": "sha256-esRAYySqeauHFiEV/lpCdp4yB8eCFbvCMZ2ZNeNV5hg="
|
||||
}
|
||||
}
|
||||
},
|
||||
"https://repo.maven.apache.org/maven2": {
|
||||
"com/google/code/gson#gson-parent/2.8.8": {
|
||||
"pom": "sha256-IRPa1JelW3F03dXKUG9C4RKZHP7Mdt9icd8RWOPwmm8="
|
||||
},
|
||||
"com/google/code/gson#gson/2.8.8": {
|
||||
"jar": "sha256-xvMVKww5wbfr4mfplgSnUOnVWFsvPy4Z1vvX7JCA0Ps=",
|
||||
"pom": "sha256-NmyNW7OsBqHbLU7189l5bjCBuz+fDzmMxX+a+82cWDM="
|
||||
},
|
||||
"com/sun/mail#all/1.6.2": {
|
||||
"pom": "sha256-S36Dqpt31l4AfpfLUPm4nNt1T6rxZBHl/ZTR49q3brM="
|
||||
},
|
||||
"com/sun/mail#javax.mail/1.6.2": {
|
||||
"jar": "sha256-RbUV5xBJRMCeRbnHuxzl3/ZASGN0hS3SsugMw3Ut+hE=",
|
||||
"pom": "sha256-xCKcBbWDbwAlITY9NDXz0HJmJ0RUi/F+fnreyv5ouf0="
|
||||
},
|
||||
"info/picocli#picocli/4.6.1": {
|
||||
"jar": "sha256-Km4DMQ2xSfihHrBYqnjndcIp74FjM8loc3l2LSKDOtY=",
|
||||
"pom": "sha256-sQOC7VBz9mKP84EayWFEkbHv8wLDz55Cmo81P2w75M8="
|
||||
},
|
||||
"javax/activation#activation/1.1": {
|
||||
"jar": "sha256-KIHHnJ1u8BxY5ivuoT6dGsi4uqFvL8GYrW5ndt79zdM=",
|
||||
"pom": "sha256-1JDlQKEVBLnXFxixyF/vez3mgCNhKQgkU5sHbVj6qKA="
|
||||
},
|
||||
"net/java#jvnet-parent/1": {
|
||||
"pom": "sha256-KBRAgRJo5l2eJms8yJgpfiFOBPCXQNA4bO60qJI9Y78="
|
||||
},
|
||||
"org/apiguardian#apiguardian-api/1.1.2": {
|
||||
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
|
||||
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
|
||||
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
|
||||
},
|
||||
"org/ini4j#ini4j/0.5.4": {
|
||||
"jar": "sha256-qtYGNe7lZyVO0p8Y+xjA+eTE2s9RyCKRKCAxg7s14t0=",
|
||||
"pom": "sha256-XMYUkRJoPvybUbn9k3h307NQPfboBdMHHOTbOb41mY8="
|
||||
},
|
||||
"org/jetbrains#annotations/13.0": {
|
||||
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
|
||||
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||
},
|
||||
"org/jetbrains/intellij/deps#trove4j/1.0.20181211": {
|
||||
"jar": "sha256-r/t8haPIe9z2n/HbuE3hH2PckxKTk0vAjNerGN4INgE=",
|
||||
"pom": "sha256-MQpqotkFNMMrj0bx/JjNDtrpXc38oj4oR+Xvqa4MAZo="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-45gRqeTBAud5xlnu/pCwQcZs6HV4wb/awHz1BNFVF0U=",
|
||||
"pom": "sha256-1Ess6vKEuuky15hYHkIrtr0sjln084u9H+Kh2lo8dTQ="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.5.31": {
|
||||
"jar": "sha256-9h6vieXjhIYxZQslzftm/oyuAoGgVNnZhnFgAKFbqNY=",
|
||||
"pom": "sha256-alUadKuKIMrt+a281OvpYzPqq13+NV+RuwFRbMMct3Y="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/1.5.31": {
|
||||
"jar": "sha256-hQ3nvEsAp4jnRUPZRAlrcHkLvL6XaNQtAQRbMhBXbnE=",
|
||||
"pom": "sha256-EtXpQVih6CA4YFUeyuUiiiM75NrhtRmvJLDEUui7wsc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-reflect/1.5.31": {
|
||||
"jar": "sha256-bg9UkOa5ZJ3dJnBTTk06A70oPDNYuO710TBP1filpPs=",
|
||||
"pom": "sha256-VitLqu6sfHJYlKEF/FHNPWfgolnnEUDVVUJsMycLMBQ="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-script-runtime/1.5.31": {
|
||||
"jar": "sha256-JORQ/udkXtNZCYHd3M85fA2eu3JYFclMT1Vcw9svn5Y=",
|
||||
"pom": "sha256-+MNYzwUXT+VmQWKGI7oxfJ3DcODp3oBbCLnRGMPFhbc="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-common/1.5.31": {
|
||||
"jar": "sha256-IZ7fAK7YKIxx2AAvFZhS1TXsmveuv7B9+DboR5qDR+8=",
|
||||
"pom": "sha256-LSB1cya+WOSOs2EE1i0LyL/Z3Ogm2M3QXLThlgnFlTI="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.5.31": {
|
||||
"jar": "sha256-yGIfrjb42bhJFqpMBH0pgWX6Mv09ID0W0mUd5JGoRT0=",
|
||||
"pom": "sha256-CYeCsKIsAhdU0NKXANquyn/HYEIIL+HZDcY8lfJiYlE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.5.31": {
|
||||
"jar": "sha256-elvIU0hD4LAcY1+Ys8WLLQMDx/GocxW39EImuTry5nM=",
|
||||
"pom": "sha256-GMfKFcag0wZNkA5sxntadv3pMNA5PdNCzOTUN76wc/c="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.5.31": {
|
||||
"jar": "sha256-b65w7F2DcwrUfQEt3iMNbdSXXD2MDomt7Jq9Q/pv5t4=",
|
||||
"pom": "sha256-HPr0zKwkDc2NC2xhM7vGVAgc28CDJx+Pn8lxH4BctPA="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-common/1.5.31": {
|
||||
"jar": "sha256-36KhjiawKDiO4ZaNGZv28Wb3N6twScJaXi2mFEBOIq0=",
|
||||
"pom": "sha256-thXpRrjD0r6pllLs2pfVfs+Dv180xl0oZ5CvI+USg8I="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.5.0": {
|
||||
"jar": "sha256-rBLwkvErV1wfngq1AlseYQsP6VZj4mNxwWwyiJVxG64=",
|
||||
"pom": "sha256-7T5s00w9Onc9oOAHuxLhZFSHJUZOWtthZEqY+yklStE="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.5.31": {
|
||||
"jar": "sha256-olv0c1POiZ2EPL3e5RbWIac0c+f7qX+NAwHntK7XwV8=",
|
||||
"pom": "sha256-IxOEie4pOmgZcGiHd0X3AL+hGvmJGHvtPDB0zYwHl3g="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.5.0": {
|
||||
"jar": "sha256-FebIG56EXu/ljVGgRnC7kEGARvRYJk7A5h7pvbwb+uc=",
|
||||
"pom": "sha256-0Ls+nTxj4e2bB3lPhWtyIEJwVxffMFEOTM4RPuLKWU0="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.5.31": {
|
||||
"jar": "sha256-tUj3dnqs8CnSQX5HRAdCvW0+vt4ZtgOG4jVUzlxMX9w=",
|
||||
"pom": "sha256-RREKqwB0eSuBWAewKy2vGNKzfodHrAaSqteg0C2ok98="
|
||||
},
|
||||
"org/jetbrains/kotlin#kotlin-stdlib/1.5.31": {
|
||||
"jar": "sha256-SADOrLLsC7mVmghxVLjjUxjq0epOujLUuxuXNCIqfmg=",
|
||||
"pom": "sha256-j3Z2AQSsTocwCcnwM90brXW507j5Uh1j2xJk2ESFLmw="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": {
|
||||
"jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=",
|
||||
"module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=",
|
||||
"pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs="
|
||||
},
|
||||
"org/jetbrains/kotlinx#kotlinx-coroutines-core/1.5.0": {
|
||||
"module": "sha256-2KJqiW2jL7H4w/E/5By3mKYSocHd86VV2C7h/xbvE9M=",
|
||||
"pom": "sha256-/8k2P3ybw40mHJOM23+kXO5WiU1xq7Kd+/23CzVY1FI="
|
||||
},
|
||||
"org/jsoup#jsoup/1.14.3": {
|
||||
"jar": "sha256-kq8Z7FfMd2N9tEkPD1AR8ERNNTIJzjYIO6xCj5uBo5w=",
|
||||
"pom": "sha256-UsW86oFXCKOWqs6xQZm5Z5j8MhmtBSNvAaKttMhekGE="
|
||||
},
|
||||
"org/junit#junit-bom/5.8.1": {
|
||||
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
|
||||
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
|
||||
},
|
||||
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
|
||||
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
|
||||
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
|
||||
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
|
||||
},
|
||||
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
|
||||
"jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=",
|
||||
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
|
||||
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
|
||||
},
|
||||
"org/junit/platform#junit-platform-commons/1.8.1": {
|
||||
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
|
||||
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
|
||||
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
|
||||
},
|
||||
"org/junit/platform#junit-platform-engine/1.8.1": {
|
||||
"jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=",
|
||||
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
|
||||
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
|
||||
},
|
||||
"org/opentest4j#opentest4j/1.2.0": {
|
||||
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
|
||||
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
|
||||
},
|
||||
"org/slf4j#slf4j-api/1.6.6": {
|
||||
"pom": "sha256-cxmZMiteIokinNntRiTJQexXG3xh0qJ9alB+9zuXyho="
|
||||
},
|
||||
"org/slf4j#slf4j-api/1.7.32": {
|
||||
"jar": "sha256-NiT4R0wa9G11+YvAl9eGSjI8gbOAiqQ2iabhxgHAJ74=",
|
||||
"pom": "sha256-ABzeWzxrqRBwQlz+ny5pXkrri8KQotTNllMRJ6skT+U="
|
||||
},
|
||||
"org/slf4j#slf4j-parent/1.6.6": {
|
||||
"pom": "sha256-QrjCR2CP2OENW2Zs98gKW1nSseEoRQ97bZ0sIM+2sxs="
|
||||
},
|
||||
"org/slf4j#slf4j-parent/1.7.32": {
|
||||
"pom": "sha256-WrNJ0PTHvAjtDvH02ThssZQKL01vFSFQ4W277MC4PHA="
|
||||
},
|
||||
"org/slf4j#slf4j-simple/1.7.32": {
|
||||
"jar": "sha256-0v3XtzyiAZogYtFFoNhheaWPmMjD41ynxzWieztWIcM=",
|
||||
"pom": "sha256-VVTmGS0A/7oRfST9+HBIj50DkABH6Lq1XgDugzgvQdg="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/7": {
|
||||
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||
},
|
||||
"org/sonatype/oss#oss-parent/9": {
|
||||
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
|
||||
},
|
||||
"org/xerial#sqlite-jdbc/3.36.0.2": {
|
||||
"jar": "sha256-D++S/Lco+7Tw88ua2+cIgjuGB0zef46jkd/AZiwz7Lo=",
|
||||
"pom": "sha256-IQG6KV0YmqEcASDMVuEs4WoyC5EE9gBer03ud4gXAkk="
|
||||
},
|
||||
"org/zeroturnaround#zt-zip/1.14": {
|
||||
"jar": "sha256-lkDsuPjrnDFVsVbtu0BJyT3uXaKz31U6UdlGmK+3aNk=",
|
||||
"pom": "sha256-esRAYySqeauHFiEV/lpCdp4yB8eCFbvCMZ2ZNeNV5hg="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
}:
|
||||
{ fetchFromGitHub, stdenv }:
|
||||
let
|
||||
deriv =
|
||||
(stdenv.mkDerivation {
|
||||
|
@@ -86,14 +86,7 @@ stdenv.mkDerivation (
|
||||
PATH=${
|
||||
lib.escapeShellArg (
|
||||
lib.concatStringsSep ":" (
|
||||
lib.flip map [
|
||||
coreutils
|
||||
gzip
|
||||
gnutar
|
||||
unzip
|
||||
wget
|
||||
gnupatch
|
||||
] (p: "${p}/bin")
|
||||
lib.flip map [ coreutils gzip gnutar unzip wget gnupatch ] (p: "${p}/bin")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
@@ -5,33 +5,12 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
pythEscape =
|
||||
x:
|
||||
builtins.replaceStrings
|
||||
[
|
||||
''"''
|
||||
"\n"
|
||||
''\''
|
||||
]
|
||||
[
|
||||
''\"''
|
||||
''\n''
|
||||
''\\''
|
||||
]
|
||||
x;
|
||||
pythonScript =
|
||||
builtins.replaceStrings
|
||||
[
|
||||
"@sops@"
|
||||
"@dns_secrets_file@"
|
||||
"@data@"
|
||||
]
|
||||
(map pythEscape [
|
||||
(lib.getExe config.vacu.wrappedSops)
|
||||
(builtins.toString ../../secrets/misc/cloudns.json)
|
||||
(builtins.toJSON config.vacu.dns)
|
||||
])
|
||||
(builtins.readFile ./script.py);
|
||||
pythEscape = x: builtins.replaceStrings [ ''"'' "\n" "\\" ] [ ''\"'' "\\n" "\\\\" ] x;
|
||||
pythonScript = builtins.replaceStrings [ "@sops@" "@dns_secrets_file@" "@data@" ] (map pythEscape [
|
||||
(lib.getExe config.vacu.wrappedSops)
|
||||
(builtins.toString ../../secrets/misc/cloudns.json)
|
||||
(builtins.toJSON config.vacu.dns)
|
||||
]) (builtins.readFile ./script.py);
|
||||
in
|
||||
pkgs.writers.writePython3Bin "dns-update" {
|
||||
libraries = with pkgs.python3Packages; [
|
||||
|
@@ -24,23 +24,30 @@ AUTH_PASSWORD = secrets["auth_password"]
|
||||
|
||||
BASE_URL = "https://api.cloudns.net"
|
||||
|
||||
def req(path:str, **kwargs):
|
||||
|
||||
def req(path: str, **kwargs):
|
||||
auth_params = {
|
||||
"auth-id": AUTH_ID,
|
||||
"auth-password": AUTH_PASSWORD,
|
||||
"auth-id": AUTH_ID,
|
||||
"auth-password": AUTH_PASSWORD,
|
||||
}
|
||||
|
||||
params = { k.replace("_","-"): v for k, v in kwargs.items() }
|
||||
params = {k.replace("_", "-"): v for k, v in kwargs.items()}
|
||||
|
||||
return httpx.get(BASE_URL + path, params={**auth_params, **params}).json()
|
||||
|
||||
def textify(z:dns.zone.Zone) -> str:
|
||||
for node in z.nodes.values():
|
||||
node.rdatasets.sort(key = lambda rrd: (rrd.rdclass, rrd.rdtype, rrd.covers, rrd.ttl))
|
||||
return z.to_text(sorted = True, relativize = True, nl = "\n", want_comments = False, want_origin = True)
|
||||
|
||||
def set_soa_serial(zone:dns.zone.Zone, serial:int):
|
||||
soa = zone.find_rdataset(zone.origin, 'SOA')
|
||||
def textify(z: dns.zone.Zone) -> str:
|
||||
for node in z.nodes.values():
|
||||
node.rdatasets.sort(
|
||||
key=lambda rrd: (rrd.rdclass, rrd.rdtype, rrd.covers, rrd.ttl)
|
||||
)
|
||||
return z.to_text(
|
||||
sorted=True, relativize=True, nl="\n", want_comments=False, want_origin=True
|
||||
)
|
||||
|
||||
|
||||
def set_soa_serial(zone: dns.zone.Zone, serial: int):
|
||||
soa = zone.find_rdataset(zone.origin, "SOA")
|
||||
old_soa = soa[0]
|
||||
|
||||
new_soa = dns.rdtypes.ANY.SOA.SOA(
|
||||
@@ -52,21 +59,22 @@ def set_soa_serial(zone:dns.zone.Zone, serial:int):
|
||||
old_soa.refresh,
|
||||
old_soa.retry,
|
||||
old_soa.expire,
|
||||
old_soa.minimum
|
||||
old_soa.minimum,
|
||||
)
|
||||
|
||||
soa.clear()
|
||||
soa.add(new_soa)
|
||||
|
||||
|
||||
def display_and_maybe_update(origin: str, update: bool) -> bool:
|
||||
desired_zone = dns.zone.from_text(DATA[origin], origin = origin)
|
||||
desired_zone = dns.zone.from_text(DATA[origin], origin=origin)
|
||||
|
||||
res = req("/dns/records-export.json", domain_name = origin)
|
||||
res = req("/dns/records-export.json", domain_name=origin)
|
||||
current_zone_str = res["zone"]
|
||||
current_zone = dns.zone.from_text(current_zone_str, origin = origin)
|
||||
current_zone = dns.zone.from_text(current_zone_str, origin=origin)
|
||||
|
||||
assert(desired_zone.rdclass == current_zone.rdclass)
|
||||
assert(desired_zone.origin == current_zone.origin)
|
||||
assert desired_zone.rdclass == current_zone.rdclass
|
||||
assert desired_zone.origin == current_zone.origin
|
||||
|
||||
# cloudns makes its own serial, we can't change it.
|
||||
# set desired serial to match current serial
|
||||
@@ -90,14 +98,21 @@ def display_and_maybe_update(origin: str, update: bool) -> bool:
|
||||
return True
|
||||
user_input = input("Do you want to continue? (y/n): ").strip().lower()
|
||||
|
||||
if user_input != 'y':
|
||||
if user_input != "y":
|
||||
print("Abort.")
|
||||
sys.exit(1)
|
||||
|
||||
res = req("/dns/records-import.json", domain_name = origin, format = "bind", content = desired_text, delete_existing_records = 1)
|
||||
res = req(
|
||||
"/dns/records-import.json",
|
||||
domain_name=origin,
|
||||
format="bind",
|
||||
content=desired_text,
|
||||
delete_existing_records=1,
|
||||
)
|
||||
pp(res)
|
||||
return True
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--domain")
|
||||
parser.add_argument("--all-domains", action="store_true")
|
||||
@@ -107,13 +122,13 @@ args = parser.parse_args()
|
||||
all_domains = bool(args.all_domains)
|
||||
update = bool(args.update)
|
||||
|
||||
assert((args.domain is not None) != all_domains)
|
||||
assert (args.domain is not None) != all_domains
|
||||
|
||||
if all_domains:
|
||||
assert(args.domain is None)
|
||||
assert args.domain is None
|
||||
domains = DATA.keys()
|
||||
else:
|
||||
assert(args.domain is not None)
|
||||
assert args.domain is not None
|
||||
domains = [args.domain]
|
||||
|
||||
found_any_difference = False
|
||||
|
@@ -3,103 +3,103 @@ dkim_key: ENC[AES256_GCM,data:CZC/1U1cJUIyNhXAWp+YFJd0pZZKvZClJxOh3uZ3YyfEQBiK9n
|
||||
dkim_pub: ENC[AES256_GCM,data:XLYRTAviK+r6DnRU4+lc58elI3FJ+FPsB1A5sQOk+pb+fNu7zFCiZdz/MwTVkE9izDP1Onv+VhV8sRgmxacTv4nW5GcukCrm3FmCp2jm6QF1/40/WRv6Lkbek0tV1bMOQPy9Zj8wdO9M05XCXUVXk4x17rj+lw8ApwJS2pJMoultMFx34tx2pNEnmO3MFtuBOxzeU2yP+NhF2sJNA62to78AiH5EblkoF0a6sUYk553U+sv3Ob0lo1nSv6c8zwl7y1WSNQnLK+/3WxSVGfePHVsVM8Zze1KFTVLQQggIzWTdcr7AgcTGbk3kaYCeucfQ60pVlqOyPnkJoUJ8HR1RSajFk6Ylzw0xBpY85qAXNT2YIRiq0HTUc1s5lD0luXLQEP+g+XUwZfzFRZgt1nWBlPmpbj2Ylj1FfrA7EXsIK9nyo+rf0qRn/4HusJATr9ddYmZdxwazl1FXkOKLHPyu1NlzwoTNSQQgMHlzxzUvrrv7+mI2nQvXRx82TSRytqrMvoBTF1NFX+pRjhNg9fcq0oPJ2ORqOVQsxzhLhB+tw7Cg+UHGWlnKnkqaKH1JDmOFyJDB96aPUnSQT2J8qkyb+hMBXz9mme8rZopkHrA4WyDXv3zpEi0P5Sj0DDwdRxKMdDdZ4hw79YQIrd63cIorN8XG6Icevb25LfekLEq/C2FS8+kADagyOM0uzCw2p/qacNz37ZNGqPK6gYkjnyoAfSm14zbgoLX/5dnf7eCuMatevTm4AcE53RawQfzz0YNJuEv5uqD/WUy+UIKHIwxPYY9FWBBPmH+8eaPC1mMPh54I444b39FwpnPU8GwxEPsjRg8TSnohawNmmhEWEpmlawEKw+C+BE6A2DmVJzyeBvVRwe/W6CPgyYxgSGWUuvfZFm1GrzwZDjCOEMRn7qMwMBxh1nr2BOAiNxA38UtsymaZO5ZOknClWlKIkIFl8NJdVITNNsI48KMuSY20o1puzkxMaAUH3OrGEhtoHrEOeIq+KCFzH2gZo6L5hbv9CHM7QgCYsbtVIMwL+cRZZaSNubS3K48OmWJnHNuqkcrSI4lqfjLhz1DbnQ==,iv:/cNMmlpq9LSOk0MwVq8NaWvp47q68lKWTx4s5nkwF5c=,tag:ZNX+yZsSxdhFsavDpX380g==,type:str]
|
||||
relay_creds: ENC[AES256_GCM,data:o0FIKyqYHo1mndY+TC6TopipDlZMoyePPPRF62+WVegWjnz+dG83WTzIduJ6qdzlkBH0tgYfau7aIzYaDWZAd935efxvwTMl8lot0xTa8SqAYxQKDkTcpUhaHtu9wlpaqv31vzPdGUJbI17e9ZPdMEPRNaEYQkYqP2YoagO17WRbzIOax+XTP08pyVJChDG++aYlkuScOXQyM830hDy2xCYA9OHN4BeyU5mh6W0BiXLYIp9oOh0y1We59CUKeo0S,iv:JHgLeQO6XE5VYsoPU4YrI+LIaWSETvfnnwjrlTc1n0g=,tag:cWafuECJy2Gv5BMGKG1NOw==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1hkve3khk7fthyrwxjqdf4r37lrqpmnkz6mke7psuphvu2ykynqaq9g6ja5
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNDFQQ3lMbGtBVjdBR0t2
|
||||
MjJvcmpjQmtYR1VkSVYzTzJFZDZibmFKc1dNCkZpWUsvcEM2MnA2OWdOdXVsZzJi
|
||||
VjFDOVNjdkVIZDgwWE5pQmpKWkxSb3MKLS0tIDlSbXZFY1R0dkl3NHdvSTlWYTZ6
|
||||
bDV6UGVHd2RVKzVycHJUWllTMk1HU2MKkDag+K62PydC3jcvLaIxy0vOuANbA65P
|
||||
hzaTNzv8iotafjFDYLWim7PLnxv+IeywKoL+Pnn4o3+e0617omx1mA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1dzdf4rgep3ctk3dnrmrqtdgrchaa8nszfc4dp29gqwsst3z6jyrq57vfsj
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnbWUrNTN0Y2lzSjR1ckc1
|
||||
cW03WXZFVzBSUzdpUzVLMWJzRjhqaWRFODFBClJGSno0QUpQaGpVSzJ0Y3h5eXFj
|
||||
aGpoNGIycG80NkxhWEFGeU9IMk1tWFEKLS0tIDI3Q3lHNGI1VWJBcFZDRDBqNGpD
|
||||
RDFNajdSSWQ1ZWNNcXl0T3lLcm1YUWMKm7w5OXFeuk7Sby68ODrk9EC8SbvCTxoO
|
||||
oQueOepqeeh4wip3SQpHACvtUp4s85M6ZXE96uYioRlzy3zg39tIpQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1rz75dqzfd6gulwh270ukmt5amcau6j8dpxgzx8fm6u8sjkyx9usq69y4s2
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsMUVLVWpHaksvZkJIb0U4
|
||||
RnVTZ0k0L0VlMjFNNFg4RVZjTmk1OHEwbGpnCkIxTXN5aWMwTlZEWERYRXV5dHEx
|
||||
UVFVVEczRFhWRDJPN3g0QVh2NXlZUjAKLS0tIGNRbkk3R1RYVCs2Y2x4UmZhTXdx
|
||||
UVUrQStXTU9yUWJ0SnlIbDBIRUdSb00K9oPKVn1RzK0DVtaeXnfURea9k1lNzpor
|
||||
3ex6hSyrfzNazFlInCuptIFIpf5o1eeiiV2PL85w9wvpMh4MEG7peg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age13x0f3glnz4jvqty2v92cxrrnjcna6ed4qegrhulw9jjy08zuy3aqzvrfc6
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1MHUxcU9tR3JKSjk5TGRm
|
||||
c2I3S0lrV1RJZHFkN1JyNHlqc2hXbGtPVlVzCk9pMmVRdC92bld6SW0rNFVyRmJs
|
||||
QmVOMXRrb3FvVUNUYnVuczg5MklEL1kKLS0tIEE2YkRmeWFONVpDTk02S3kwSWNI
|
||||
Ty9PdGYxUnRNSUIxN21RWWJUQnVqWjAKp1KybOk5/5xHHggBwE7zyuOw17GwxPCw
|
||||
UR2R5wuc0d1Uyb/z/QvRI4lbpjAhjb749JgLE2IYTYLfPsJv59K8BA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age13j6l33g0ghk4vezn0qwfal2qmcgqwkv89ejwezpe3n47mw8yxyuslj6y7d
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2c2cyOWh3bEtBMUF6a3hx
|
||||
UjVIYkN5cE1ZcWNZM1V3Y3lhR05JYUt4Q3djCk9XNWF1dnhveVlLNWxJSVcxcVRK
|
||||
V2d2aWx5ZXdrYUw0TFN3VGVZTE5RTTAKLS0tIDNnWm5nbDZUbmh3QTBCWXp6aUE0
|
||||
ZFhoeXRTOEhDT2NpOXM2L3NCdVNEQmMKBp4e23mcqrJdlcqbf6mUjitYq7MxkeoX
|
||||
jX8LQTucw9dhLu/SCxymRxg9/Q2+PfhUvDR2L51tdlbr77dRhic3/A==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1vla9w33lsp03s46p9p6gc2mvr844vthdqhc2hzau2ph6h60gmyqqh9sf57
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoeWltSkV6aGJ1WkJOVTBp
|
||||
Q24wMEFuWlVQYXMrKzRrSHN2THB3TWtYQ0VvCldHUmlpUGdNTlp4QkluZjRzK0J3
|
||||
U0ZGYWM2eFZyZHhuT2dWSnBJdzA0dmMKLS0tIHg0citENmY1QkpXNURzY2x4QkZM
|
||||
bG9DUTFkd2t3YXFXVElKK3JsK216Rm8KGvXixYViOUwrVarBMZeUI5HlCBtoL5bp
|
||||
7uZ9JFKQMh9EtiUk+Pr2xr4r9Mah0Gk3AmmVKWvaQaC/bkEIhe30Eg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1jy8mxcndkw6zd6q99tjgz3gsynn78x2lwtrff85u6ud9g9y9z5mspvhufl
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnYmhVb0FsdUc5RjdPWnA5
|
||||
ZmpaMi9Rek5WM1AvSVl3Nk1maG1YanJaS0RzCjM3VEJKM3dVclZxK2FSMENKTUUz
|
||||
d0dleUU2Rk5namdUdFl4ZjNSM05xdnMKLS0tIHRzYldRM0I4MytMcGFMUnZ3QXA0
|
||||
MGtKcDMyejNFNktCL2I4RUI3Qkk1TWMKsxjqBw5J91f3T9TDHNAKFI2cTT4i7zJw
|
||||
N33KbrskOaOXjCsoENnqdRl9Y7v/JbOh5YQ2/oPwZEfuwgHG9lcXqw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age148huz6rc3q9xx5t873ncx75sja2sazlescwspxl7lsmxsqkz0apsy8cldp
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdWRCdnNybjdzSFpacjNj
|
||||
eFNJNjBzYmpsRkw4czN2aWJzSnBDeFYweDM4CmZCcnZCTEJQTGtoSlo3VW45T0ZJ
|
||||
bmpUMHhFMy9mSUxaTWVCcFBnQlAramsKLS0tIGV3eHcxRlJZc3BxQUU3TUhsRVAr
|
||||
VXdheGpVRFF2UFBKQTF0OFMrVzdYcjQKaEs1irVwO0OoXbBhYd1AgCCPPF3sFH3a
|
||||
go3jAHOCnwkYQMVRd24FGZx28XuEgeXQALk7JqEEy5eCS6nKDEVqcg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age197a33mlf5294amjx59hycctu6wm4l3cu3w7n9rv3fs9340ql64rqjzpr7s
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHcWZxa3NHR0Z4TmlNNHVU
|
||||
aFNvN2tycVd2THhFMGtMckhGOXBuZXNMSkFFCm1VR1ZwUHdabFdBWmUxUXVxTVR5
|
||||
eFVvakFDZUV2WHByU2pRU3hrWXVaMGcKLS0tIHRjbElYOU8xaW1lVFlrL0YwMDlQ
|
||||
MEwvd1RQd1hlNVNZL3VveUkydVNjVE0KFsyjr38WdXu4R0038Dum0VeVw+LNcI6q
|
||||
4R0ft0KsfLLmPgoNIdK5Dq5hUxyGVe8Ej/9KaN0UrqIRsLHCHimYyQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1sqj8z3feqm2dk3gj8mxpfn5dpqnsmus862e8ayd0d4cdresqffdswcf9ru
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4QW9yVk9zN2RrZkpTWXZU
|
||||
U080M1pDdzV1bDFSR2UrY0o2dnoyYlpNZXc0CmJCSE84L1ZRdUVZc21GbWc3cG9t
|
||||
NHRGQUFVS3U1TjFVYWl1Q1FyODY3UjgKLS0tIGhrY1dMa251R1hCc0F5eDhtWnc2
|
||||
bXpqNkVobzgwMHJIdHBFZ0xDZ2RzcmcK0m4awMUrdwYvXO14L1hvhcaGgLOW3FCq
|
||||
UU1Vc/vX32Lsu1BN4aXlTZ1jHD6R6CnV5TbUTcM/jxFRKoRzDwdJig==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-02-01T04:58:08Z"
|
||||
mac: ENC[AES256_GCM,data:mHRij14Mgi9R2q8AzD8Pwu5HZ/hEXaLwVCtzUFyhnZ5kCcJCvVlSvcqbr1zaZW8uaN4WMeE87EdKW95uo7pNuRQF2j2n4y52t/kNAodO5+T0kqx41wVno1z+tGhZC1MbwX1K3Vri7McFxbWLguSV3KUl5LFA0+xc8VkuVa5VMNc=,iv:rJKgHvpNU42WvHzFRGJkIFGAtnJK2nVOVylKrCgaS8U=,tag:IRO4Aefa0Bz1rZgbPjS+jQ==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.3
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1hkve3khk7fthyrwxjqdf4r37lrqpmnkz6mke7psuphvu2ykynqaq9g6ja5
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNDFQQ3lMbGtBVjdBR0t2
|
||||
MjJvcmpjQmtYR1VkSVYzTzJFZDZibmFKc1dNCkZpWUsvcEM2MnA2OWdOdXVsZzJi
|
||||
VjFDOVNjdkVIZDgwWE5pQmpKWkxSb3MKLS0tIDlSbXZFY1R0dkl3NHdvSTlWYTZ6
|
||||
bDV6UGVHd2RVKzVycHJUWllTMk1HU2MKkDag+K62PydC3jcvLaIxy0vOuANbA65P
|
||||
hzaTNzv8iotafjFDYLWim7PLnxv+IeywKoL+Pnn4o3+e0617omx1mA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1dzdf4rgep3ctk3dnrmrqtdgrchaa8nszfc4dp29gqwsst3z6jyrq57vfsj
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnbWUrNTN0Y2lzSjR1ckc1
|
||||
cW03WXZFVzBSUzdpUzVLMWJzRjhqaWRFODFBClJGSno0QUpQaGpVSzJ0Y3h5eXFj
|
||||
aGpoNGIycG80NkxhWEFGeU9IMk1tWFEKLS0tIDI3Q3lHNGI1VWJBcFZDRDBqNGpD
|
||||
RDFNajdSSWQ1ZWNNcXl0T3lLcm1YUWMKm7w5OXFeuk7Sby68ODrk9EC8SbvCTxoO
|
||||
oQueOepqeeh4wip3SQpHACvtUp4s85M6ZXE96uYioRlzy3zg39tIpQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1rz75dqzfd6gulwh270ukmt5amcau6j8dpxgzx8fm6u8sjkyx9usq69y4s2
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsMUVLVWpHaksvZkJIb0U4
|
||||
RnVTZ0k0L0VlMjFNNFg4RVZjTmk1OHEwbGpnCkIxTXN5aWMwTlZEWERYRXV5dHEx
|
||||
UVFVVEczRFhWRDJPN3g0QVh2NXlZUjAKLS0tIGNRbkk3R1RYVCs2Y2x4UmZhTXdx
|
||||
UVUrQStXTU9yUWJ0SnlIbDBIRUdSb00K9oPKVn1RzK0DVtaeXnfURea9k1lNzpor
|
||||
3ex6hSyrfzNazFlInCuptIFIpf5o1eeiiV2PL85w9wvpMh4MEG7peg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age13x0f3glnz4jvqty2v92cxrrnjcna6ed4qegrhulw9jjy08zuy3aqzvrfc6
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1MHUxcU9tR3JKSjk5TGRm
|
||||
c2I3S0lrV1RJZHFkN1JyNHlqc2hXbGtPVlVzCk9pMmVRdC92bld6SW0rNFVyRmJs
|
||||
QmVOMXRrb3FvVUNUYnVuczg5MklEL1kKLS0tIEE2YkRmeWFONVpDTk02S3kwSWNI
|
||||
Ty9PdGYxUnRNSUIxN21RWWJUQnVqWjAKp1KybOk5/5xHHggBwE7zyuOw17GwxPCw
|
||||
UR2R5wuc0d1Uyb/z/QvRI4lbpjAhjb749JgLE2IYTYLfPsJv59K8BA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age13j6l33g0ghk4vezn0qwfal2qmcgqwkv89ejwezpe3n47mw8yxyuslj6y7d
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2c2cyOWh3bEtBMUF6a3hx
|
||||
UjVIYkN5cE1ZcWNZM1V3Y3lhR05JYUt4Q3djCk9XNWF1dnhveVlLNWxJSVcxcVRK
|
||||
V2d2aWx5ZXdrYUw0TFN3VGVZTE5RTTAKLS0tIDNnWm5nbDZUbmh3QTBCWXp6aUE0
|
||||
ZFhoeXRTOEhDT2NpOXM2L3NCdVNEQmMKBp4e23mcqrJdlcqbf6mUjitYq7MxkeoX
|
||||
jX8LQTucw9dhLu/SCxymRxg9/Q2+PfhUvDR2L51tdlbr77dRhic3/A==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1vla9w33lsp03s46p9p6gc2mvr844vthdqhc2hzau2ph6h60gmyqqh9sf57
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoeWltSkV6aGJ1WkJOVTBp
|
||||
Q24wMEFuWlVQYXMrKzRrSHN2THB3TWtYQ0VvCldHUmlpUGdNTlp4QkluZjRzK0J3
|
||||
U0ZGYWM2eFZyZHhuT2dWSnBJdzA0dmMKLS0tIHg0citENmY1QkpXNURzY2x4QkZM
|
||||
bG9DUTFkd2t3YXFXVElKK3JsK216Rm8KGvXixYViOUwrVarBMZeUI5HlCBtoL5bp
|
||||
7uZ9JFKQMh9EtiUk+Pr2xr4r9Mah0Gk3AmmVKWvaQaC/bkEIhe30Eg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1jy8mxcndkw6zd6q99tjgz3gsynn78x2lwtrff85u6ud9g9y9z5mspvhufl
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnYmhVb0FsdUc5RjdPWnA5
|
||||
ZmpaMi9Rek5WM1AvSVl3Nk1maG1YanJaS0RzCjM3VEJKM3dVclZxK2FSMENKTUUz
|
||||
d0dleUU2Rk5namdUdFl4ZjNSM05xdnMKLS0tIHRzYldRM0I4MytMcGFMUnZ3QXA0
|
||||
MGtKcDMyejNFNktCL2I4RUI3Qkk1TWMKsxjqBw5J91f3T9TDHNAKFI2cTT4i7zJw
|
||||
N33KbrskOaOXjCsoENnqdRl9Y7v/JbOh5YQ2/oPwZEfuwgHG9lcXqw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age148huz6rc3q9xx5t873ncx75sja2sazlescwspxl7lsmxsqkz0apsy8cldp
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdWRCdnNybjdzSFpacjNj
|
||||
eFNJNjBzYmpsRkw4czN2aWJzSnBDeFYweDM4CmZCcnZCTEJQTGtoSlo3VW45T0ZJ
|
||||
bmpUMHhFMy9mSUxaTWVCcFBnQlAramsKLS0tIGV3eHcxRlJZc3BxQUU3TUhsRVAr
|
||||
VXdheGpVRFF2UFBKQTF0OFMrVzdYcjQKaEs1irVwO0OoXbBhYd1AgCCPPF3sFH3a
|
||||
go3jAHOCnwkYQMVRd24FGZx28XuEgeXQALk7JqEEy5eCS6nKDEVqcg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age197a33mlf5294amjx59hycctu6wm4l3cu3w7n9rv3fs9340ql64rqjzpr7s
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHcWZxa3NHR0Z4TmlNNHVU
|
||||
aFNvN2tycVd2THhFMGtMckhGOXBuZXNMSkFFCm1VR1ZwUHdabFdBWmUxUXVxTVR5
|
||||
eFVvakFDZUV2WHByU2pRU3hrWXVaMGcKLS0tIHRjbElYOU8xaW1lVFlrL0YwMDlQ
|
||||
MEwvd1RQd1hlNVNZL3VveUkydVNjVE0KFsyjr38WdXu4R0038Dum0VeVw+LNcI6q
|
||||
4R0ft0KsfLLmPgoNIdK5Dq5hUxyGVe8Ej/9KaN0UrqIRsLHCHimYyQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1sqj8z3feqm2dk3gj8mxpfn5dpqnsmus862e8ayd0d4cdresqffdswcf9ru
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4QW9yVk9zN2RrZkpTWXZU
|
||||
U080M1pDdzV1bDFSR2UrY0o2dnoyYlpNZXc0CmJCSE84L1ZRdUVZc21GbWc3cG9t
|
||||
NHRGQUFVS3U1TjFVYWl1Q1FyODY3UjgKLS0tIGhrY1dMa251R1hCc0F5eDhtWnc2
|
||||
bXpqNkVobzgwMHJIdHBFZ0xDZ2RzcmcK0m4awMUrdwYvXO14L1hvhcaGgLOW3FCq
|
||||
UU1Vc/vX32Lsu1BN4aXlTZ1jHD6R6CnV5TbUTcM/jxFRKoRzDwdJig==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-02-01T04:58:08Z"
|
||||
mac: ENC[AES256_GCM,data:mHRij14Mgi9R2q8AzD8Pwu5HZ/hEXaLwVCtzUFyhnZ5kCcJCvVlSvcqbr1zaZW8uaN4WMeE87EdKW95uo7pNuRQF2j2n4y52t/kNAodO5+T0kqx41wVno1z+tGhZC1MbwX1K3Vri7McFxbWLguSV3KUl5LFA0+xc8VkuVa5VMNc=,iv:rJKgHvpNU42WvHzFRGJkIFGAtnJK2nVOVylKrCgaS8U=,tag:IRO4Aefa0Bz1rZgbPjS+jQ==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.3
|
||||
|
@@ -1,53 +1,53 @@
|
||||
{
|
||||
"auth_password": "ENC[AES256_GCM,data:UD8l+CrofmN9g439uTOtCyP5378VX+f856dxuFDTzfCa8B+7,iv:6hgG+py3EC4cMLkhG72O5HJfbQF5Q+APq6wBsMQVRjw=,tag:KA4AupZKFdHEBzEBnd3/1A==,type:str]",
|
||||
"auth_id": "ENC[AES256_GCM,data:4cBXpVc=,iv:WPh6+xp02CMBohmxWu6UdNA3KMRSghbSQYuU0lZyUMo=,tag:+zU0EBEwLgqYC0NmW31Qtw==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1dzdf4rgep3ctk3dnrmrqtdgrchaa8nszfc4dp29gqwsst3z6jyrq57vfsj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3YW9haUtvVVRkZWVqa1Zv\nOERucllIenc3VFJkMzAvM1paTWxNaVA4MlhRCmZVNGpvdmhrUnJDYTMyWExNVVNW\nQWw2MDBPUnozTWpzTERiaExYVkJUd0kKLS0tIEFPRUhjZVdBTXZQdFFUQ0NnYU5P\nYlkvaUgzQjVORTNvTDFKYXJJYW1pTGMKW2rUNzNWsvQ9vzf+jwSBOC8OjVL30HDZ\nK8QC30Z4PUtKTk5HA7KcFfGVT8UbJc6Z4IRm6dIV6lczmctZiuAXLQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1rz75dqzfd6gulwh270ukmt5amcau6j8dpxgzx8fm6u8sjkyx9usq69y4s2",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMdGxOMkNFcnRWd2EzaGVV\nNGdxTDUzM1FnY21tUUtJOEhaM0RFU2ZZbXc0CkIzVXBNY0Z4dmlVRnpHZGt6dzY4\ncW80b0lCdCtJMnQ2aXJyclpiT1BlWG8KLS0tIE4vV2gwZjBVSmc0Y3ExZUdXQnJL\nMU9EOWNNRDJualAvUjNOWlZCMjdHSU0K33nP6rM7k9er+8gC2cozXF3M7WNAPb3y\ny5ecWeGnIJe1Q3BwpqXUmxWswE95VYq6g4RCJ2TbHIJWgK6HLJoamg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13x0f3glnz4jvqty2v92cxrrnjcna6ed4qegrhulw9jjy08zuy3aqzvrfc6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzM0kyMHZ2UEpaYzMzMFRo\nV3IvYVI0RTVUM29pSnhYUFBpUlVnM3BUcEZBClpCL1c1cmFaRzZDU2tQY2hJQzNx\nb2ZvdTRBMVNTS01XdTJiYnljMzhiUFkKLS0tIGFuR05CYTZhbVdZMERCVUcrRTFO\nQWREQW9DU3pmOFRJczVBdTA0VFdwZ0UKuhijkZjfHrOrQ28WF0lsrh1YYcDjohJF\nHimoJrsMFf21bsWMPGsRXvvQWouMhhzDtp3ZzaR/jhwzqnNp6I2gWw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13j6l33g0ghk4vezn0qwfal2qmcgqwkv89ejwezpe3n47mw8yxyuslj6y7d",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHcHlmTVJ1d3ZRc09WMU5p\nbmd4TzZNVisyWm1PZFBmMXpBcmd6N3ZmL0JBCnBqZzZCNVFObHpZZzd3cXBuaEVR\nZjJCdTRLalhBTnpEN21NYzRQUnFrbjgKLS0tIDJIVDlFZzJuK1pnYklaZnRWOEgz\nNkxLNSsxbzR4cUo0TVVsajNLeXZvZEkKCqo8Hw+CoO+lpKXxI1+3Pkw6iNcaJlzU\n7HE78dhMH2C01Phn9BOFY3FATxo68wYxzLWUt90iGwtnxT1K509GGg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vla9w33lsp03s46p9p6gc2mvr844vthdqhc2hzau2ph6h60gmyqqh9sf57",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWnlkYUI3ZFIxR1dBZzNi\nNDRGT2xIZFhyWCs3SHk5Q0toWmZUc3F3RTFVCnZtZUFzNDdOMnlQWVlYVjJnYlJN\nV2xXM3F4N3RVTzVFZE5Zb1BkcjI1cUUKLS0tIHdiQTJTQlpJQlNycElCamN5MGth\nWnNKMnlEQTExbis3dktsWDliaU9IelUK/fxqRPnRbD+KCvYMI4m5K17cLI2/xEbL\nbsGdj8E0TAtzqRL4iBOQfb6xJC5AqcmHEhvFnnxEouNUXMsw5/1Ggg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1jy8mxcndkw6zd6q99tjgz3gsynn78x2lwtrff85u6ud9g9y9z5mspvhufl",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3Zi80ZHU0WnVjMlpycVov\nWE9UNldKRmdMR2xkNVNuQ0NPWHNzTUg4cEU0CmhjdGhEdG5GWkxKUUdRUzMzN0RL\nRHo1QkdSaDNxTy9RVDd5TGtpZUpaRmMKLS0tIG1TTFdrNC9MREd2K0NIdmNscjB5\nQlpGMVdmK2wvQnVxMXJkeTdYbXJtZ0EK12lVIHRp/GxD4F0oMsiOmy4RC5iJEkle\ngvTGPFJkiJJJe36vMx34WdKq++6fwma624E75S4P5qmiVIeadDihGw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age148huz6rc3q9xx5t873ncx75sja2sazlescwspxl7lsmxsqkz0apsy8cldp",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUYm5Ca0NId3AyRUwxRU1q\nR0NvSUk3YmJvOVRvbTVkVjZ0ZzVxaEFtcGpFCjg3V2ZhUk9RM09ZNVRGVEhUZHZ0\nekNid3NtUVZyTTlZSFU1QkQ0amtEcUkKLS0tIDlTdTBpdDE3VHkyVHhHekZDUEdP\nRUNpdm9ENHhCWCsxbk9aOVFmeFBwUzQKJzTxCMPaYYsmjoGyEbuimDWpq5Oq8oMx\n2LXkQHYdmBi090o4ocfkHiR1SS3w6XNI8IBcQK1flobXYejI9E5yKA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age197a33mlf5294amjx59hycctu6wm4l3cu3w7n9rv3fs9340ql64rqjzpr7s",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvR21LYis4SXFxcE1PeXQ3\nelpxRTJ3Y2svRnc1ZTkvVk9lTUhFSmVneWc4CnJMT05ZQnBySDBuZ2lqcnc3eHlv\neWdKUi81aWlhY3pySzhoSjdwUlhMN0kKLS0tIDRWWFR5Q0oyZ09GdlF1a0JmeVdl\nOTV4TUhWdVBVRFhxQlB0ajFSS1FnNHcKMq1FSE3OecwHopvkShKQYSFQihzFkMrG\nFRpPqWcUzaXpib8f4YQrYmLJiihGCpfovv5+NHEQB8BMEu7UNY/emw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1sqj8z3feqm2dk3gj8mxpfn5dpqnsmus862e8ayd0d4cdresqffdswcf9ru",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1YnJVMmpSNDlicUh6UEJR\nL1JUZVlxeUhmTGpUeXNtUmc2NmZGc3NObldVCitHOUgyOXFibnR3WUZRdjc3TExZ\nK0lxRUJCY3ozZExlNzRack5jTTR4aFkKLS0tIGVoOTRCNW5Yb2NVd09ZU0kzSlNV\nVWxuYjVCM3lvZHhQeU05R09WNWQwU2MKNM9VU6KE/0AUzww/qdMQoXMpZ9MT5rIK\nOvltRcVvQR1lZqiox4W1zYfw3JTlficQ31C+wSMHy4aBSlnik7hzxw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-10-24T06:58:19Z",
|
||||
"mac": "ENC[AES256_GCM,data:P5ipojcOVW0V/4J7Txj9v4RONAzqIIG71guYkqHZ/yJNrFIjVn+db3qLNbNmeKz73rbPdXYpZGM5dIwXiF9pzLAW+t3pYABGvnBT/l1cN1tYS4BCs+e6n0KqKho/Aust/QTDIuYkoAyRwD7HD/OXW8V5SJtiuaqAlX9gzDLILs8=,iv:oUxrQbPTgL/RfdGvw9rnx/mU4RklD2uet/3XRQH0pq4=,tag:wj3ehRASFcW1g6Yf8XxSKQ==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.1"
|
||||
}
|
||||
}
|
||||
"auth_password": "ENC[AES256_GCM,data:UD8l+CrofmN9g439uTOtCyP5378VX+f856dxuFDTzfCa8B+7,iv:6hgG+py3EC4cMLkhG72O5HJfbQF5Q+APq6wBsMQVRjw=,tag:KA4AupZKFdHEBzEBnd3/1A==,type:str]",
|
||||
"auth_id": "ENC[AES256_GCM,data:4cBXpVc=,iv:WPh6+xp02CMBohmxWu6UdNA3KMRSghbSQYuU0lZyUMo=,tag:+zU0EBEwLgqYC0NmW31Qtw==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1dzdf4rgep3ctk3dnrmrqtdgrchaa8nszfc4dp29gqwsst3z6jyrq57vfsj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3YW9haUtvVVRkZWVqa1Zv\nOERucllIenc3VFJkMzAvM1paTWxNaVA4MlhRCmZVNGpvdmhrUnJDYTMyWExNVVNW\nQWw2MDBPUnozTWpzTERiaExYVkJUd0kKLS0tIEFPRUhjZVdBTXZQdFFUQ0NnYU5P\nYlkvaUgzQjVORTNvTDFKYXJJYW1pTGMKW2rUNzNWsvQ9vzf+jwSBOC8OjVL30HDZ\nK8QC30Z4PUtKTk5HA7KcFfGVT8UbJc6Z4IRm6dIV6lczmctZiuAXLQ==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1rz75dqzfd6gulwh270ukmt5amcau6j8dpxgzx8fm6u8sjkyx9usq69y4s2",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMdGxOMkNFcnRWd2EzaGVV\nNGdxTDUzM1FnY21tUUtJOEhaM0RFU2ZZbXc0CkIzVXBNY0Z4dmlVRnpHZGt6dzY4\ncW80b0lCdCtJMnQ2aXJyclpiT1BlWG8KLS0tIE4vV2gwZjBVSmc0Y3ExZUdXQnJL\nMU9EOWNNRDJualAvUjNOWlZCMjdHSU0K33nP6rM7k9er+8gC2cozXF3M7WNAPb3y\ny5ecWeGnIJe1Q3BwpqXUmxWswE95VYq6g4RCJ2TbHIJWgK6HLJoamg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13x0f3glnz4jvqty2v92cxrrnjcna6ed4qegrhulw9jjy08zuy3aqzvrfc6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzM0kyMHZ2UEpaYzMzMFRo\nV3IvYVI0RTVUM29pSnhYUFBpUlVnM3BUcEZBClpCL1c1cmFaRzZDU2tQY2hJQzNx\nb2ZvdTRBMVNTS01XdTJiYnljMzhiUFkKLS0tIGFuR05CYTZhbVdZMERCVUcrRTFO\nQWREQW9DU3pmOFRJczVBdTA0VFdwZ0UKuhijkZjfHrOrQ28WF0lsrh1YYcDjohJF\nHimoJrsMFf21bsWMPGsRXvvQWouMhhzDtp3ZzaR/jhwzqnNp6I2gWw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13j6l33g0ghk4vezn0qwfal2qmcgqwkv89ejwezpe3n47mw8yxyuslj6y7d",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHcHlmTVJ1d3ZRc09WMU5p\nbmd4TzZNVisyWm1PZFBmMXpBcmd6N3ZmL0JBCnBqZzZCNVFObHpZZzd3cXBuaEVR\nZjJCdTRLalhBTnpEN21NYzRQUnFrbjgKLS0tIDJIVDlFZzJuK1pnYklaZnRWOEgz\nNkxLNSsxbzR4cUo0TVVsajNLeXZvZEkKCqo8Hw+CoO+lpKXxI1+3Pkw6iNcaJlzU\n7HE78dhMH2C01Phn9BOFY3FATxo68wYxzLWUt90iGwtnxT1K509GGg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vla9w33lsp03s46p9p6gc2mvr844vthdqhc2hzau2ph6h60gmyqqh9sf57",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWnlkYUI3ZFIxR1dBZzNi\nNDRGT2xIZFhyWCs3SHk5Q0toWmZUc3F3RTFVCnZtZUFzNDdOMnlQWVlYVjJnYlJN\nV2xXM3F4N3RVTzVFZE5Zb1BkcjI1cUUKLS0tIHdiQTJTQlpJQlNycElCamN5MGth\nWnNKMnlEQTExbis3dktsWDliaU9IelUK/fxqRPnRbD+KCvYMI4m5K17cLI2/xEbL\nbsGdj8E0TAtzqRL4iBOQfb6xJC5AqcmHEhvFnnxEouNUXMsw5/1Ggg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1jy8mxcndkw6zd6q99tjgz3gsynn78x2lwtrff85u6ud9g9y9z5mspvhufl",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3Zi80ZHU0WnVjMlpycVov\nWE9UNldKRmdMR2xkNVNuQ0NPWHNzTUg4cEU0CmhjdGhEdG5GWkxKUUdRUzMzN0RL\nRHo1QkdSaDNxTy9RVDd5TGtpZUpaRmMKLS0tIG1TTFdrNC9MREd2K0NIdmNscjB5\nQlpGMVdmK2wvQnVxMXJkeTdYbXJtZ0EK12lVIHRp/GxD4F0oMsiOmy4RC5iJEkle\ngvTGPFJkiJJJe36vMx34WdKq++6fwma624E75S4P5qmiVIeadDihGw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age148huz6rc3q9xx5t873ncx75sja2sazlescwspxl7lsmxsqkz0apsy8cldp",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUYm5Ca0NId3AyRUwxRU1q\nR0NvSUk3YmJvOVRvbTVkVjZ0ZzVxaEFtcGpFCjg3V2ZhUk9RM09ZNVRGVEhUZHZ0\nekNid3NtUVZyTTlZSFU1QkQ0amtEcUkKLS0tIDlTdTBpdDE3VHkyVHhHekZDUEdP\nRUNpdm9ENHhCWCsxbk9aOVFmeFBwUzQKJzTxCMPaYYsmjoGyEbuimDWpq5Oq8oMx\n2LXkQHYdmBi090o4ocfkHiR1SS3w6XNI8IBcQK1flobXYejI9E5yKA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age197a33mlf5294amjx59hycctu6wm4l3cu3w7n9rv3fs9340ql64rqjzpr7s",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvR21LYis4SXFxcE1PeXQ3\nelpxRTJ3Y2svRnc1ZTkvVk9lTUhFSmVneWc4CnJMT05ZQnBySDBuZ2lqcnc3eHlv\neWdKUi81aWlhY3pySzhoSjdwUlhMN0kKLS0tIDRWWFR5Q0oyZ09GdlF1a0JmeVdl\nOTV4TUhWdVBVRFhxQlB0ajFSS1FnNHcKMq1FSE3OecwHopvkShKQYSFQihzFkMrG\nFRpPqWcUzaXpib8f4YQrYmLJiihGCpfovv5+NHEQB8BMEu7UNY/emw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1sqj8z3feqm2dk3gj8mxpfn5dpqnsmus862e8ayd0d4cdresqffdswcf9ru",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1YnJVMmpSNDlicUh6UEJR\nL1JUZVlxeUhmTGpUeXNtUmc2NmZGc3NObldVCitHOUgyOXFibnR3WUZRdjc3TExZ\nK0lxRUJCY3ozZExlNzRack5jTTR4aFkKLS0tIGVoOTRCNW5Yb2NVd09ZU0kzSlNV\nVWxuYjVCM3lvZHhQeU05R09WNWQwU2MKNM9VU6KE/0AUzww/qdMQoXMpZ9MT5rIK\nOvltRcVvQR1lZqiox4W1zYfw3JTlficQ31C+wSMHy4aBSlnik7hzxw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-10-24T06:58:19Z",
|
||||
"mac": "ENC[AES256_GCM,data:P5ipojcOVW0V/4J7Txj9v4RONAzqIIG71guYkqHZ/yJNrFIjVn+db3qLNbNmeKz73rbPdXYpZGM5dIwXiF9pzLAW+t3pYABGvnBT/l1cN1tYS4BCs+e6n0KqKho/Aust/QTDIuYkoAyRwD7HD/OXW8V5SJtiuaqAlX9gzDLILs8=,iv:oUxrQbPTgL/RfdGvw9rnx/mU4RklD2uet/3XRQH0pq4=,tag:wj3ehRASFcW1g6Yf8XxSKQ==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.1"
|
||||
}
|
||||
}
|
||||
|
@@ -1,56 +1,56 @@
|
||||
{
|
||||
"git.uninsane.org": "ENC[AES256_GCM,data:g1oZA7s16sl6tBsUy+aAUChYBomgxht08dzghBakmJ/13YrM/Pf7WQ==,iv:v3CXUaLwIdEtg6ZWiCqqZ1JSkWOlnWnGSOzNVAx5gvs=,tag:jkQGgxRMBggokRNUdW2jLQ==,type:str]",
|
||||
"git.for.miras.pet": "ENC[AES256_GCM,data:9X8Aq+ts0BYK/Z9C5oxdbup9tbnT272Gsdbh/hiabNGa/wutMnIOeA==,iv:pmOnj2TFe1Q4S63i1Q5ukYEf5ntryA6g1YFPYsD50lw=,tag:v0F2XHhSVCBsicqEiDOlmw==,type:str]",
|
||||
"gitlab.com": "ENC[AES256_GCM,data:A2+dsAgvVJsqgGOHcPsw7F5bSTg8H3icd+g=,iv:v9QVy7vP/XEHw0lHBjedvWFrsGvyDlAEF+yFL1voiQc=,tag:0kqgQOIn90MBjiNRHjiRrg==,type:str]",
|
||||
"github.com": "ENC[AES256_GCM,data:fpY8KxwIYGvIWAHKH7cmwCO4j7fPx+625Buvhu4OdJIpcDXJrpjTsQ==,iv:4W2YvZ01XjzJUX3yXx9H+kxtylYRma4wA/YWL2W6kPc=,tag:WswVoBWgzjrpz9nPQfVV3w==,type:str]",
|
||||
"sr.ht": "ENC[AES256_GCM,data:fsYdw51hHbBytSnWv8LE0iAe8RCNSiBOQnkglJMrFh3ClBfLeyVCN7YLDp7JiiXtFlTzZ17OVO2gTkKxY7hEmDk5QeimaN8iZp1AuQKhNQOsEV9M6bRQgTeW0h7e0gcGr7kG,iv:SMWvQlnbIVs8o7YqlB9G0hWfq6F1Xhqb5jGi30Pe/Pg=,tag:UMAfeDLWFz7zGWvzwLMP3A==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1dzdf4rgep3ctk3dnrmrqtdgrchaa8nszfc4dp29gqwsst3z6jyrq57vfsj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5VzNHZnJwVmdKNnN6Qjc4\na21FT0hTR29PSE9PR05uZjRuTHR2TWZVK1Q4CmQ0c3lXcW90eVhtVlk0Q1NheWRm\nUnBLS3p4RXVUZ0dneXM1dFNRLzVlUGcKLS0tIG5uWE1NdSswU0ZodW8rdEg5ZDZw\nQ3J4T3ZHcjc4YmpsYmVnS2w1VzRKOGsKE3QwbGADwS/pbnQrtmaZ7w2oVEBB4pPk\n+ZMYWwEF80FF9iCRnvb9qotKRPDE4bE64xgv+eAP/fuKSvENb0Umjw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1rz75dqzfd6gulwh270ukmt5amcau6j8dpxgzx8fm6u8sjkyx9usq69y4s2",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3TlhYc2VieVZrdXQ5M01j\nYjNwMFJKSVQ3bkdxQTVYRmU1dHN2QUd0dDFNCjg2NnRLNVFYK3B0b1F0b0huLzMw\najFvL0E5S2ZuWWwydmxNZ2xmZFUxU2cKLS0tIEp2YzlqQmFwRysrb1N2WjVPbXRJ\nTkMvMkFRMlBMWjd4WjhKZy8vclFNRUUK62LABvyUbhlOrWP88CbCG9gTBrGPUNiZ\nz+/fheIYKQdvgZOWJsa/TsciaBPPdm+XF4Y+zc6Rzrd0qlZNZVSsXg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13x0f3glnz4jvqty2v92cxrrnjcna6ed4qegrhulw9jjy08zuy3aqzvrfc6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSUzFCaHMvUy9Wb0xDRU0z\nMzNXOGdPSmxjT0VBSFY1NzZoUGpJUHE1YVZrCk02cDRyd0FGOHlXZE9Md2J5djlE\nVE9PeHMyL25YSktlT0w1dk1mT1c5UWMKLS0tIHoyc2c5cEtOaWU2VFhtK2dUTW43\nelFYNG5XeFJscnlINFhLRWUrazcyRkkKql2yUeNuqA1yOAA7BsqSDTXw7tSc2Wt6\nD0ajblyUP+HxzvJILs0LiTruaiVw8LGYHV9a+oUuMV6UJGthf7w25Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13j6l33g0ghk4vezn0qwfal2qmcgqwkv89ejwezpe3n47mw8yxyuslj6y7d",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOVE3VUR4aUd4QWtTck5S\nR1lmTlJRck5ncFNZcjJ3RkNPL1JWTWVyMW5NCnQ1dmIvUXV4U1ZaN3lLa01uYUdr\nU3d4dEg4QkNqTFYrdXlKRk1XdWtReWMKLS0tIEpuTUZVUnVGOGdobTdaNGJhaFpC\nWWRPYXBFYzYvakc0NnI1ODl6QzZ2K0EKlX4Xa2DyeasnuDVTQ0MjcnQ8suQZaAuw\nvu29LJOCtOx+EdjFiMXtNMR6jw1HWFeUvhoR6/EkPMHX52Ai9rBLwA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vla9w33lsp03s46p9p6gc2mvr844vthdqhc2hzau2ph6h60gmyqqh9sf57",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCV1prUUxCeWlLMm0rTHI5\neW40U1ZoRll5d0JCUm9LSnVBWmZWRnc0NGlZCjlqYUc4bXZ1OWYxQnNFWFl6MEM2\nZ20rKzEySTVMUlo0VUtBYUdqd2hETU0KLS0tIFpBN3BZTW9mc3lRbHBPUEN3SzVo\nRFRUOUtseGl6YWpFOVZ0Tk9tVGNwNzAKNKdHEE1XwW4aqc4Vdj8qc/yqtB6JUJcB\nB5mD80Nff6QJzVWCSSZAxe6c6UET5eFFfZW7h9lJeFn2NOSmuM2adA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1jy8mxcndkw6zd6q99tjgz3gsynn78x2lwtrff85u6ud9g9y9z5mspvhufl",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3VDlVZXZvSHlWcDF5cDFQ\nUlF4TnAwV3BsbGkrNmgrdzdQTk93TE5mYWtvCkd2YzdaU2tQSk41SmN5N0dPRjlI\nNXVLWDNlQkkzb1Z4Y3AwZ3Q4Q3RzVjgKLS0tIDkzZEZIWDRKTlUvSXBkaUtHc3hp\nVUo4NitVSStOeE5vamJFTjNMdStFMzQKZKckoNsPO85FznhBAuH/9GGVzWyJjq/5\nF1WU+5PrqdvQ6cQWZ/AVGxhuxD0L7Uy7Rt1iheQ971ML+3L/iquD0w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age148huz6rc3q9xx5t873ncx75sja2sazlescwspxl7lsmxsqkz0apsy8cldp",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWejk3Wk56dWFKNnFqYk9m\nSTJEcHZxRkh5ZVZFMk5HcEo0YzRCYk5JYUJZCkEzRkJEZDBQOU5aeG55UDhuc0w0\nNFRlZXp3TnI5cVM4U3FiQitJREF6aTAKLS0tIGVucTNxRk9OQmd1cjdlZHBUa2ZV\najdXdEIzQWlWQmZkbnQzMzVPb0hCaGsKQvAUO3k8QFBWAki96WJum6jO1Yu2Uua4\nvJbDDCth5FhSIXdu5Gw1m0iiuSqcj+9huSC9zuX9w9vbqLxISmesFg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age197a33mlf5294amjx59hycctu6wm4l3cu3w7n9rv3fs9340ql64rqjzpr7s",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NndrQnZRbnAvUEhua2No\nRm5KL0NRRUhwbUd2ZXptL2dsK0xIK0xEQ0dvCklpWmEyWXptYmVnNksyY0NuSFR4\nWG1kbjlVTDJ3SzhCaEFad0pWeDVCS28KLS0tIHVDdmhiS0ZmMDYzTlhTb3BVcXR0\nS1ZVTGc3OHFZS3lZbXAzYTVCejFnRFEKITQHLZqOvAmoKjkQt8KOYWhTUE+DGy9r\nFdtHmTfv/4UKDpqv/WqkTIvi5AUWApWJ+5YCm2Fv0Y2sFXhBK3kF4Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1sqj8z3feqm2dk3gj8mxpfn5dpqnsmus862e8ayd0d4cdresqffdswcf9ru",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPek9CVk5pQW1EUUhabW5E\nTWFjdFdlVVFnZlcvQWlOTk5YZTVTRWdMMmtRCkJwWjlWREdjRUhEL2R4bFRBQ3Aw\nZjdJMCtVZDErZE5wcnloR2lvVnJHSDgKLS0tIDAwajE2YTA4UFo1SmJEVUtpN2hX\nMkkzYjZOVDYvSlRGT3RJTzdySlJleXMKor4NR2gIkfvDi25eKrzLki+biWf3dVZS\niCSBxy+tpbtiO9fK8LPrz9jJp1tBism7VTIF6WBuj97GjMGHIOz43Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-02-15T06:22:16Z",
|
||||
"mac": "ENC[AES256_GCM,data:rP+kqJ2pQHWwU4F0J9IFR2uR+yWesv/NdjHfU38Px9/rN3BWwGVd/mCVE7QiTgjxfzRFEBiBia4s8vWUzhLb0J0MDsZlf4P+sHTnm4hN41SwxNUarLS4m/0wJFjM80Bq4XqOEi/qEqHHPy40dOEAKIcadoAaZsd5vvXpgqPWx3s=,iv:FDIUYwfmrHtSn2Ng8VYTfAPMFw+q7jQDbFOmjf0Br10=,tag:ZrlCrupz0ewNXbFuoX1gdg==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.4"
|
||||
}
|
||||
}
|
||||
"git.uninsane.org": "ENC[AES256_GCM,data:g1oZA7s16sl6tBsUy+aAUChYBomgxht08dzghBakmJ/13YrM/Pf7WQ==,iv:v3CXUaLwIdEtg6ZWiCqqZ1JSkWOlnWnGSOzNVAx5gvs=,tag:jkQGgxRMBggokRNUdW2jLQ==,type:str]",
|
||||
"git.for.miras.pet": "ENC[AES256_GCM,data:9X8Aq+ts0BYK/Z9C5oxdbup9tbnT272Gsdbh/hiabNGa/wutMnIOeA==,iv:pmOnj2TFe1Q4S63i1Q5ukYEf5ntryA6g1YFPYsD50lw=,tag:v0F2XHhSVCBsicqEiDOlmw==,type:str]",
|
||||
"gitlab.com": "ENC[AES256_GCM,data:A2+dsAgvVJsqgGOHcPsw7F5bSTg8H3icd+g=,iv:v9QVy7vP/XEHw0lHBjedvWFrsGvyDlAEF+yFL1voiQc=,tag:0kqgQOIn90MBjiNRHjiRrg==,type:str]",
|
||||
"github.com": "ENC[AES256_GCM,data:fpY8KxwIYGvIWAHKH7cmwCO4j7fPx+625Buvhu4OdJIpcDXJrpjTsQ==,iv:4W2YvZ01XjzJUX3yXx9H+kxtylYRma4wA/YWL2W6kPc=,tag:WswVoBWgzjrpz9nPQfVV3w==,type:str]",
|
||||
"sr.ht": "ENC[AES256_GCM,data:fsYdw51hHbBytSnWv8LE0iAe8RCNSiBOQnkglJMrFh3ClBfLeyVCN7YLDp7JiiXtFlTzZ17OVO2gTkKxY7hEmDk5QeimaN8iZp1AuQKhNQOsEV9M6bRQgTeW0h7e0gcGr7kG,iv:SMWvQlnbIVs8o7YqlB9G0hWfq6F1Xhqb5jGi30Pe/Pg=,tag:UMAfeDLWFz7zGWvzwLMP3A==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1dzdf4rgep3ctk3dnrmrqtdgrchaa8nszfc4dp29gqwsst3z6jyrq57vfsj",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5VzNHZnJwVmdKNnN6Qjc4\na21FT0hTR29PSE9PR05uZjRuTHR2TWZVK1Q4CmQ0c3lXcW90eVhtVlk0Q1NheWRm\nUnBLS3p4RXVUZ0dneXM1dFNRLzVlUGcKLS0tIG5uWE1NdSswU0ZodW8rdEg5ZDZw\nQ3J4T3ZHcjc4YmpsYmVnS2w1VzRKOGsKE3QwbGADwS/pbnQrtmaZ7w2oVEBB4pPk\n+ZMYWwEF80FF9iCRnvb9qotKRPDE4bE64xgv+eAP/fuKSvENb0Umjw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1rz75dqzfd6gulwh270ukmt5amcau6j8dpxgzx8fm6u8sjkyx9usq69y4s2",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3TlhYc2VieVZrdXQ5M01j\nYjNwMFJKSVQ3bkdxQTVYRmU1dHN2QUd0dDFNCjg2NnRLNVFYK3B0b1F0b0huLzMw\najFvL0E5S2ZuWWwydmxNZ2xmZFUxU2cKLS0tIEp2YzlqQmFwRysrb1N2WjVPbXRJ\nTkMvMkFRMlBMWjd4WjhKZy8vclFNRUUK62LABvyUbhlOrWP88CbCG9gTBrGPUNiZ\nz+/fheIYKQdvgZOWJsa/TsciaBPPdm+XF4Y+zc6Rzrd0qlZNZVSsXg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13x0f3glnz4jvqty2v92cxrrnjcna6ed4qegrhulw9jjy08zuy3aqzvrfc6",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSUzFCaHMvUy9Wb0xDRU0z\nMzNXOGdPSmxjT0VBSFY1NzZoUGpJUHE1YVZrCk02cDRyd0FGOHlXZE9Md2J5djlE\nVE9PeHMyL25YSktlT0w1dk1mT1c5UWMKLS0tIHoyc2c5cEtOaWU2VFhtK2dUTW43\nelFYNG5XeFJscnlINFhLRWUrazcyRkkKql2yUeNuqA1yOAA7BsqSDTXw7tSc2Wt6\nD0ajblyUP+HxzvJILs0LiTruaiVw8LGYHV9a+oUuMV6UJGthf7w25Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age13j6l33g0ghk4vezn0qwfal2qmcgqwkv89ejwezpe3n47mw8yxyuslj6y7d",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsOVE3VUR4aUd4QWtTck5S\nR1lmTlJRck5ncFNZcjJ3RkNPL1JWTWVyMW5NCnQ1dmIvUXV4U1ZaN3lLa01uYUdr\nU3d4dEg4QkNqTFYrdXlKRk1XdWtReWMKLS0tIEpuTUZVUnVGOGdobTdaNGJhaFpC\nWWRPYXBFYzYvakc0NnI1ODl6QzZ2K0EKlX4Xa2DyeasnuDVTQ0MjcnQ8suQZaAuw\nvu29LJOCtOx+EdjFiMXtNMR6jw1HWFeUvhoR6/EkPMHX52Ai9rBLwA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1vla9w33lsp03s46p9p6gc2mvr844vthdqhc2hzau2ph6h60gmyqqh9sf57",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCV1prUUxCeWlLMm0rTHI5\neW40U1ZoRll5d0JCUm9LSnVBWmZWRnc0NGlZCjlqYUc4bXZ1OWYxQnNFWFl6MEM2\nZ20rKzEySTVMUlo0VUtBYUdqd2hETU0KLS0tIFpBN3BZTW9mc3lRbHBPUEN3SzVo\nRFRUOUtseGl6YWpFOVZ0Tk9tVGNwNzAKNKdHEE1XwW4aqc4Vdj8qc/yqtB6JUJcB\nB5mD80Nff6QJzVWCSSZAxe6c6UET5eFFfZW7h9lJeFn2NOSmuM2adA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1jy8mxcndkw6zd6q99tjgz3gsynn78x2lwtrff85u6ud9g9y9z5mspvhufl",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3VDlVZXZvSHlWcDF5cDFQ\nUlF4TnAwV3BsbGkrNmgrdzdQTk93TE5mYWtvCkd2YzdaU2tQSk41SmN5N0dPRjlI\nNXVLWDNlQkkzb1Z4Y3AwZ3Q4Q3RzVjgKLS0tIDkzZEZIWDRKTlUvSXBkaUtHc3hp\nVUo4NitVSStOeE5vamJFTjNMdStFMzQKZKckoNsPO85FznhBAuH/9GGVzWyJjq/5\nF1WU+5PrqdvQ6cQWZ/AVGxhuxD0L7Uy7Rt1iheQ971ML+3L/iquD0w==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age148huz6rc3q9xx5t873ncx75sja2sazlescwspxl7lsmxsqkz0apsy8cldp",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWejk3Wk56dWFKNnFqYk9m\nSTJEcHZxRkh5ZVZFMk5HcEo0YzRCYk5JYUJZCkEzRkJEZDBQOU5aeG55UDhuc0w0\nNFRlZXp3TnI5cVM4U3FiQitJREF6aTAKLS0tIGVucTNxRk9OQmd1cjdlZHBUa2ZV\najdXdEIzQWlWQmZkbnQzMzVPb0hCaGsKQvAUO3k8QFBWAki96WJum6jO1Yu2Uua4\nvJbDDCth5FhSIXdu5Gw1m0iiuSqcj+9huSC9zuX9w9vbqLxISmesFg==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age197a33mlf5294amjx59hycctu6wm4l3cu3w7n9rv3fs9340ql64rqjzpr7s",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NndrQnZRbnAvUEhua2No\nRm5KL0NRRUhwbUd2ZXptL2dsK0xIK0xEQ0dvCklpWmEyWXptYmVnNksyY0NuSFR4\nWG1kbjlVTDJ3SzhCaEFad0pWeDVCS28KLS0tIHVDdmhiS0ZmMDYzTlhTb3BVcXR0\nS1ZVTGc3OHFZS3lZbXAzYTVCejFnRFEKITQHLZqOvAmoKjkQt8KOYWhTUE+DGy9r\nFdtHmTfv/4UKDpqv/WqkTIvi5AUWApWJ+5YCm2Fv0Y2sFXhBK3kF4Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
},
|
||||
{
|
||||
"recipient": "age1sqj8z3feqm2dk3gj8mxpfn5dpqnsmus862e8ayd0d4cdresqffdswcf9ru",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPek9CVk5pQW1EUUhabW5E\nTWFjdFdlVVFnZlcvQWlOTk5YZTVTRWdMMmtRCkJwWjlWREdjRUhEL2R4bFRBQ3Aw\nZjdJMCtVZDErZE5wcnloR2lvVnJHSDgKLS0tIDAwajE2YTA4UFo1SmJEVUtpN2hX\nMkkzYjZOVDYvSlRGT3RJTzdySlJleXMKor4NR2gIkfvDi25eKrzLki+biWf3dVZS\niCSBxy+tpbtiO9fK8LPrz9jJp1tBism7VTIF6WBuj97GjMGHIOz43Q==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2025-02-15T06:22:16Z",
|
||||
"mac": "ENC[AES256_GCM,data:rP+kqJ2pQHWwU4F0J9IFR2uR+yWesv/NdjHfU38Px9/rN3BWwGVd/mCVE7QiTgjxfzRFEBiBia4s8vWUzhLb0J0MDsZlf4P+sHTnm4hN41SwxNUarLS4m/0wJFjM80Bq4XqOEi/qEqHHPy40dOEAKIcadoAaZsd5vvXpgqPWx3s=,iv:FDIUYwfmrHtSn2Ng8VYTfAPMFw+q7jQDbFOmjf0Br10=,tag:ZrlCrupz0ewNXbFuoX1gdg==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.9.4"
|
||||
}
|
||||
}
|
||||
|
@@ -38,7 +38,9 @@ let
|
||||
"vacustore"
|
||||
]
|
||||
))
|
||||
+ "\nbackup:::::::";
|
||||
+ ''
|
||||
|
||||
backup:::::::'';
|
||||
dkim_key = ''
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANn62hMdcFw4znAB
|
||||
|
@@ -9,30 +9,43 @@ import requests
|
||||
from typing import NamedTuple
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('host', type = str)
|
||||
parser.add_argument('--mailfrom', default = 'foo@example.com')
|
||||
parser.add_argument('--rcptto', default = 'awesome@vacu.store')
|
||||
parser.add_argument('--subject', default = 'Some test message')
|
||||
parser.add_argument('--header', action = 'append', default = [])
|
||||
parser.add_argument('--submission', default = False, action='store_true')
|
||||
parser.add_argument('--smtp-starttls', default = None, action='store_true')
|
||||
parser.add_argument('--imap-insecure', default = False, action = 'store_true')
|
||||
parser.add_argument('--imap-move-to')
|
||||
parser.add_argument('--imap-dir', default = None)
|
||||
parser.add_argument('--username')
|
||||
parser.add_argument('--password')
|
||||
parser.add_argument('--expect-refused',
|
||||
dest = 'expect',
|
||||
action = 'store_const',
|
||||
const = 'refused',
|
||||
default = 'received'
|
||||
parser.add_argument("host", type=str)
|
||||
parser.add_argument("--mailfrom", default="foo@example.com")
|
||||
parser.add_argument("--rcptto", default="awesome@vacu.store")
|
||||
parser.add_argument("--subject", default="Some test message")
|
||||
parser.add_argument("--header", action="append", default=[])
|
||||
parser.add_argument("--submission", default=False, action="store_true")
|
||||
parser.add_argument("--smtp-starttls", default=None, action="store_true")
|
||||
parser.add_argument("--imap-insecure", default=False, action="store_true")
|
||||
parser.add_argument("--imap-move-to")
|
||||
parser.add_argument("--imap-dir", default=None)
|
||||
parser.add_argument("--username")
|
||||
parser.add_argument("--password")
|
||||
parser.add_argument(
|
||||
"--expect-refused",
|
||||
dest="expect",
|
||||
action="store_const",
|
||||
const="refused",
|
||||
default="received",
|
||||
)
|
||||
parser.add_argument('--expect-flag', action = 'append', default = [])
|
||||
parser.add_argument('--expect-sent', dest = 'expect', action = 'store_const', const = 'sent')
|
||||
parser.add_argument('--expect-imap-error', dest = 'expect', action = 'store_const', const = 'imap_error')
|
||||
parser.add_argument('--expect-mailpit-received', dest = 'expect', action = 'store_const', const = 'mailpit_received')
|
||||
parser.add_argument('--expect-mailpit-not-received', dest = 'expect', action = 'store_const', const = 'mailpit_not_received')
|
||||
parser.add_argument('--mailpit-url')
|
||||
parser.add_argument("--expect-flag", action="append", default=[])
|
||||
parser.add_argument("--expect-sent", dest="expect", action="store_const", const="sent")
|
||||
parser.add_argument(
|
||||
"--expect-imap-error", dest="expect", action="store_const", const="imap_error"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--expect-mailpit-received",
|
||||
dest="expect",
|
||||
action="store_const",
|
||||
const="mailpit_received",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--expect-mailpit-not-received",
|
||||
dest="expect",
|
||||
action="store_const",
|
||||
const="mailpit_not_received",
|
||||
)
|
||||
parser.add_argument("--mailpit-url")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -49,7 +62,9 @@ password = args.password
|
||||
if password is None:
|
||||
password = username
|
||||
|
||||
if (username is None or password is None) and (args.submission or args.expect == 'received'):
|
||||
if (username is None or password is None) and (
|
||||
args.submission or args.expect == "received"
|
||||
):
|
||||
assert False, "Bad args"
|
||||
|
||||
if args.expect.startswith("mailpit_") and args.mailpit_url is None:
|
||||
@@ -57,21 +72,23 @@ if args.expect.startswith("mailpit_") and args.mailpit_url is None:
|
||||
|
||||
msg_magic = str(uuid.uuid4())
|
||||
|
||||
|
||||
def mk_ctx():
|
||||
ctx = ssl.create_default_context()
|
||||
ctx.check_hostname = False
|
||||
ctx.verify_mode = ssl.CERT_NONE
|
||||
return ctx
|
||||
|
||||
|
||||
try:
|
||||
smtp = None
|
||||
if args.submission:
|
||||
smtp = smtplib.SMTP_SSL(args.host, port=465, context = mk_ctx())
|
||||
smtp = smtplib.SMTP_SSL(args.host, port=465, context=mk_ctx())
|
||||
else:
|
||||
smtp = smtplib.SMTP(args.host, port=25)
|
||||
smtp.ehlo()
|
||||
if args.smtp_starttls:
|
||||
smtp.starttls(context = mk_ctx())
|
||||
smtp.starttls(context=mk_ctx())
|
||||
smtp.ehlo()
|
||||
if args.submission:
|
||||
smtp.login(username, password)
|
||||
@@ -79,11 +96,13 @@ try:
|
||||
smtp.sendmail(args.mailfrom, args.rcptto, f"{headers}\n\n{msg_magic}")
|
||||
smtp.close()
|
||||
except smtplib.SMTPRecipientsRefused:
|
||||
assert args.expect == 'refused', "Server rejected message as recipients refused"
|
||||
assert args.expect == "refused", "Server rejected message as recipients refused"
|
||||
except smtplib.SMTPSenderRefused:
|
||||
assert args.expect == 'refused', "Server rejected message as recipients refused"
|
||||
assert args.expect == "refused", "Server rejected message as recipients refused"
|
||||
else:
|
||||
assert (not args.expect == 'refused'), "Server was supposed to reject this message, but it didn't"
|
||||
assert (
|
||||
not args.expect == "refused"
|
||||
), "Server was supposed to reject this message, but it didn't"
|
||||
|
||||
if args.mailpit_url is not None:
|
||||
time.sleep(3)
|
||||
@@ -93,25 +112,32 @@ if args.mailpit_url is not None:
|
||||
if msg_magic in message_data["Snippet"]:
|
||||
found_message = True
|
||||
break
|
||||
if args.expect == 'mailpit_received':
|
||||
if args.expect == "mailpit_received":
|
||||
assert found_message, "Message not received by mailpit server"
|
||||
else:
|
||||
assert not found_message, "Message was received by the mailpit server when it wasn't supposed to be"
|
||||
assert (
|
||||
not found_message
|
||||
), "Message was received by the mailpit server when it wasn't supposed to be"
|
||||
|
||||
MessageInFolder = NamedTuple('MessageInFolder', [('message', imap_tools.message.MailMessage), ('folder', str)])
|
||||
MessageInFolder = NamedTuple(
|
||||
"MessageInFolder", [("message", imap_tools.message.MailMessage), ("folder", str)]
|
||||
)
|
||||
|
||||
if args.expect == 'received' or args.expect == 'imap_error':
|
||||
if args.expect == "received" or args.expect == "imap_error":
|
||||
time.sleep(5)
|
||||
print(f"looking for {msg_magic}")
|
||||
try:
|
||||
|
||||
def connection() -> imap_tools.MailBox:
|
||||
return imap_tools.MailBox(args.host, ssl_context = mk_ctx()).login(username, password)
|
||||
return imap_tools.MailBox(args.host, ssl_context=mk_ctx()).login(
|
||||
username, password
|
||||
)
|
||||
|
||||
def find_messages(mailbox: imap_tools.MailBox) -> list[MessageInFolder]:
|
||||
matching_messages = []
|
||||
directories = []
|
||||
for d in mailbox.folder.list():
|
||||
if '\\Noselect' not in d.flags:
|
||||
if "\\Noselect" not in d.flags:
|
||||
directories.append(d.name)
|
||||
# print(f"directories is {directories!r}")
|
||||
for imap_dir in directories:
|
||||
@@ -128,12 +154,12 @@ if args.expect == 'received' or args.expect == 'imap_error':
|
||||
print(f"flags: {msg.flags!r}")
|
||||
print(f"{msg_str}")
|
||||
if msg_magic == msg.text.strip():
|
||||
in_folder = MessageInFolder(message = msg, folder = imap_dir)
|
||||
in_folder = MessageInFolder(message=msg, folder=imap_dir)
|
||||
matching_messages.append(in_folder)
|
||||
return matching_messages
|
||||
|
||||
if args.imap_move_to is not None:
|
||||
with connection() as mailbox:
|
||||
with connection() as mailbox:
|
||||
print("prefind")
|
||||
prefind = find_messages(mailbox)
|
||||
assert len(prefind) > 0, "Could not find message to move anywhere"
|
||||
@@ -144,22 +170,32 @@ if args.expect == 'received' or args.expect == 'imap_error':
|
||||
res = mailbox.move(msg.uid, args.imap_move_to)
|
||||
assert res[1][1][1] is not None, "failed to move"
|
||||
print(f"done moving, res {res!r}")
|
||||
with connection() as mailbox:
|
||||
with connection() as mailbox:
|
||||
matching_messages = find_messages(mailbox)
|
||||
if args.expect == 'received':
|
||||
if args.expect == "received":
|
||||
# print(f"{matching_messages!r}")
|
||||
assert len(matching_messages) > 0, "Could not find the message in the mailbox"
|
||||
assert len(matching_messages) == 1, f"Multiple messages matching message magic {msg_magic}"
|
||||
assert (
|
||||
len(matching_messages) > 0
|
||||
), "Could not find the message in the mailbox"
|
||||
assert (
|
||||
len(matching_messages) == 1
|
||||
), f"Multiple messages matching message magic {msg_magic}"
|
||||
matching_mif = matching_messages[0]
|
||||
if args.imap_dir is not None:
|
||||
expected_dir = args.imap_dir
|
||||
actual_dir = matching_mif.folder
|
||||
assert expected_dir == actual_dir, f"Expected to find message in {expected_dir}, found it in {actual_dir} instead"
|
||||
assert (
|
||||
expected_dir == actual_dir
|
||||
), f"Expected to find message in {expected_dir}, found it in {actual_dir} instead"
|
||||
matching_message = matching_mif.message
|
||||
for expected_flag in args.expect_flag:
|
||||
assert expected_flag in matching_message.flags, f"Flag {expected_flag} not found, message flags: {matching_message.flags!r}"
|
||||
assert (
|
||||
expected_flag in matching_message.flags
|
||||
), f"Flag {expected_flag} not found, message flags: {matching_message.flags!r}"
|
||||
|
||||
except imaplib.IMAP4.error as e:
|
||||
assert args.expect == 'imap_error', f"IMAP error: {e}"
|
||||
assert args.expect == "imap_error", f"IMAP error: {e}"
|
||||
else:
|
||||
assert not args.expect == 'imap_error', "Expected an IMAP error, but didn't get one"
|
||||
assert (
|
||||
not args.expect == "imap_error"
|
||||
), "Expected an IMAP error, but didn't get one"
|
||||
|
@@ -2,22 +2,22 @@ dovecot-passwd: ENC[AES256_GCM,data:Ji41+n/7D90/O/LVM+3FDNACZ6jJPT6QYVIGWLujCheI
|
||||
dkim_key: ENC[AES256_GCM,data:nzujLrGttOL38d8mxglUcAQ9EO+sL2Gh75E4Wyt6siviFEpx5ZIpXkaC9XXmD2f6Ax4BHF8FTOB1cX0dLrRYp9gNOV007CsVUWpYf34H/J5bOUo1j+urYtbtA5Idu8FoUC3ENg5Ap4CId7jTtxQ9PlS9vTKQ2T2tIqmvXGE0t0aowUdJJdPfJLN1lMENY+/m9NxwArF06K/75BAX9LaxhNDzUHNwV9PK+htD9M1g0r7McbLtZpPut8tdkzOWGiUHIisPpXSTUk8LjrFY36DNngcXAyiRZtp6WrhINVABRKMVf92dYUQixpf6r7BkCkyRT60rAHz5UbWHI/saYHgXlH2OGK5hyZZ4JueAHU2Y7Hpvbw3UIG9jumdDcRda5W0WycJyGS4a5YZST907eDP4PuZayHOmp288Cuyc+kXOxvuCGjqiuZswokj4Ba4hIUUNJU1Ys4THYrf+j+iX0nKclGS+LXvqQI1cKUE3gBecxE2SW3BNzIOGh/ywO1kg2uZlUPpfGBr+Aupke/nULcGi2HVwX5EV47jpDyoqIEiVCy3OYSeQ2gkocIQ/y74fNMoud4kWmye8bAhprxVUHHes2TBjBb6QxQdmazjhAiCvgSI3p43QlSG2fqtQMcXMiANra1heRHHsOS8GKWk/ti9/k3/0YWycXcawYE8lpg/efpBPWkgWQ+NDUxcJBbWCKbkvA2DEfoSluwcGuxUjWGa27SKaCVX/LNAUDvXcw82F61XsTpoK2i0pme7pIZeF1bfbKyPxDnpWKoLoL2i2HchD1B5AEemr+eKh3kPGqpY3SNfqPFyUYN34Fea/gg/eM1Jw/ORWGNxMwg882a/NQLRzjjseQsPEI0r0o8Xba1KqGP1mMhursrOFVRz9xXG7l5oXhx0+GsscKDnP40CXJBMf6r2tEZobrR8NagV4/Mh4r2+zYw12KwwYZ5drmS1b0ftrLZLSugJopgLaQqYC3OAnmdW1MOkNoQSWv9Y5NaPERpMQ9BJcPcGM3W3+AyEz3zRSlFQFnjZO6kk37dFz1KVbbXkrFTXhDpGw/Z/RCMdzv6eyhPqcSSccisaOxDtlLQXy95G6tOcpJV7u7qu1LzQDehyZnBjasqMQVpCJw1Q9GRxnSBjpVKzN07dEkzXqcZHh67kPR/aoH8jzbfNq5YDQ6nxK0INcSyCzJe4w18JbY5Wq0F5U0OeYwYAwHoIV/nbMdptyyw==,iv:ol3dz4SomkwyN2s4tPWDCJEYdnMuZTvHppUA95Nz3+8=,tag:IlZBYvM8e3COjxZ/dxJT7Q==,type:str]
|
||||
dkim_pub: ENC[AES256_GCM,data:tigMKTZ5XiDViSez2WKfUPBkw9OtLKrEBrbp/I3tUk+mu7RR2YIaQEWfTH0EOzPMpDEIJ32pwlqicGQZdTf7WdpELcJZgbxKpWPWgTzjwHasgs38aJh2JIIoIuFwa1YgEuRGtSl7YT47WDhTTGbFFdvaKBlIe7vipgkFSxNX1NKGNgdkkcVczvlVgWKqbp05zzUlav1XEwBhd+3eTgPQFptYyvQbIFasiunrHBT8cbm+CQ/O8q90lUkoVrmQUu3XG6njDMa4pNULUJqsUogCyYgm/aDMdx7AN29daCbgj99g/hjnQrBFajJCzNyG36XrzQdZJGiG0AgG1oWAq98boNFxC5ux4eBDmT946FyxXFNwyZpu1p2naHkBlE01duCBS4PUuQFlw9tsCYOuL+xGR3paBafTcL6X67w=,iv:lXFMxiePwivoyQxuQu+hEHeuU0z85fJk9y7296oJNl8=,tag:0QknKaFPpNHo2v0feR+jAQ==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1eqv5759uknu7d46rqyyzsmgt43qumsge33yp2xygapprnt8zu3sqx6kt8w
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSb2MxUXhhQ3dzZlV1Vi9C
|
||||
U1kwVWM1ZFZQaVZ1cXpSV1hpVk94d1cwdFRJClE4QWpMVHczaG83UWtiakRhNitI
|
||||
ZlpjUTM3UFlFSTFYcUM1cnlUYzJVNVEKLS0tIEhjVE91cVZGcFpReGt1OXZuSzRH
|
||||
T3dqdEJxRmkvSStuK1NmRWJkN1psWWsKuNdc6DHXXEcn63CZv/5lE30MAagPfHO0
|
||||
GDOLTLCLDzNvKmd5i9dNuYBrD1JeyotNId6E4w/3oYxCFJ56SsH32Q==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-06-28T22:08:15Z"
|
||||
mac: ENC[AES256_GCM,data:G7ceHgkxOv1xinx2Oc5kWCDs5njnf/uUyHlOddzM8RBZTcBp4RVB6NJb3ERFpHlEBXtO5EXnXm2ggK9cfxH9BKL/4tZeFQDqT9QcwFvtynQbCcOmBi3ffrkt4uXKwOIpVZyT8bz8GYueLq/fu2fIHwjZ7Ll43Gn2Sp6gQuvFSuo=,iv:wg88Qpn5cIIr9tXUkc/WxfMDt/SHbA09CRCCv/FwUVU=,tag:QiG5ERsym5kl2g11LK0onw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1eqv5759uknu7d46rqyyzsmgt43qumsge33yp2xygapprnt8zu3sqx6kt8w
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSb2MxUXhhQ3dzZlV1Vi9C
|
||||
U1kwVWM1ZFZQaVZ1cXpSV1hpVk94d1cwdFRJClE4QWpMVHczaG83UWtiakRhNitI
|
||||
ZlpjUTM3UFlFSTFYcUM1cnlUYzJVNVEKLS0tIEhjVE91cVZGcFpReGt1OXZuSzRH
|
||||
T3dqdEJxRmkvSStuK1NmRWJkN1psWWsKuNdc6DHXXEcn63CZv/5lE30MAagPfHO0
|
||||
GDOLTLCLDzNvKmd5i9dNuYBrD1JeyotNId6E4w/3oYxCFJ56SsH32Q==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-06-28T22:08:15Z"
|
||||
mac: ENC[AES256_GCM,data:G7ceHgkxOv1xinx2Oc5kWCDs5njnf/uUyHlOddzM8RBZTcBp4RVB6NJb3ERFpHlEBXtO5EXnXm2ggK9cfxH9BKL/4tZeFQDqT9QcwFvtynQbCcOmBi3ffrkt4uXKwOIpVZyT8bz8GYueLq/fu2fIHwjZ7Ll43Gn2Sp6gQuvFSuo=,iv:wg88Qpn5cIIr9tXUkc/WxfMDt/SHbA09CRCCv/FwUVU=,tag:QiG5ERsym5kl2g11LK0onw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
|
1
tliam
1
tliam
@@ -26,4 +26,3 @@ if "${prefix[@]}" nix run "${flake_path}#checks.x86_64-linux.liam.driver" -- "$@
|
||||
else
|
||||
fail "liam-vm failed with exit code $?"
|
||||
fi
|
||||
|
||||
|
@@ -7,9 +7,7 @@
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"ahci"
|
||||
|
38
treefmt.nix
38
treefmt.nix
@@ -1,5 +1,41 @@
|
||||
{ ... }:
|
||||
let
|
||||
shellFiles = [
|
||||
"*.sh"
|
||||
"dcd"
|
||||
"dliam"
|
||||
"dmmm"
|
||||
"dnod"
|
||||
"dtrip"
|
||||
"sops"
|
||||
"tliam"
|
||||
];
|
||||
in
|
||||
{
|
||||
projectRootFile = "flake.nix";
|
||||
programs.nixfmt-rfc-style.enable = true;
|
||||
programs.nixfmt.enable = true;
|
||||
programs.nixfmt.strict = true;
|
||||
programs.shellcheck.enable = true;
|
||||
programs.shellcheck.includes = shellFiles;
|
||||
programs.shfmt.enable = true;
|
||||
programs.shfmt.includes = shellFiles;
|
||||
programs.deno.enable = true;
|
||||
programs.stylua.enable = true;
|
||||
programs.black.enable = true;
|
||||
settings.excludes = [
|
||||
"*.pdf"
|
||||
"*.patch"
|
||||
"*.units"
|
||||
|
||||
".gitignore"
|
||||
"flake.lock"
|
||||
|
||||
"mmm/firmware/all_firmware.tar.gz"
|
||||
"mmm/firmware/kernelcache.release.mac13g"
|
||||
|
||||
"secrets/radicle-private.key"
|
||||
|
||||
"tests/test_key"
|
||||
"tests/test_key.pub"
|
||||
];
|
||||
}
|
||||
|
@@ -44,11 +44,7 @@ in
|
||||
let
|
||||
outer_config = config;
|
||||
in
|
||||
{
|
||||
name,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ name, config, ... }:
|
||||
{
|
||||
options = {
|
||||
name = mkOption {
|
||||
@@ -115,9 +111,15 @@ in
|
||||
};
|
||||
|
||||
systemd.services.postgresql.postStart =
|
||||
"\n#START stuff from database.nix\n"
|
||||
''
|
||||
|
||||
#START stuff from database.nix
|
||||
''
|
||||
+ (mapLines (d: ''$PSQL -tAc 'ALTER DATABASE "${d.name}" OWNER TO "${d.user}";' '') databases)
|
||||
+ "\n#END stuff from database.nix\n";
|
||||
+ ''
|
||||
|
||||
#END stuff from database.nix
|
||||
'';
|
||||
systemd.services.postgresql.serviceConfig.ReadWritePaths = "/var/postgres";
|
||||
};
|
||||
}
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ inputs, lib, ... }:
|
||||
let
|
||||
megaHardDrives = [
|
||||
"ata-ST22000NM001E-3HM103_ZX201FM0"
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
|
@@ -9,9 +9,7 @@ in
|
||||
isSystemUser = true;
|
||||
group = "gallerygrab";
|
||||
};
|
||||
users.groups.gallerygrab = {
|
||||
inherit gid;
|
||||
};
|
||||
users.groups.gallerygrab = { inherit gid; };
|
||||
|
||||
systemd.tmpfiles.settings.vacu-container-gallerygrab = {
|
||||
"/trip/ffuts/archive/gallerygrab".d = {
|
||||
@@ -63,9 +61,7 @@ in
|
||||
group = "gallerygrab";
|
||||
home = "/var/gallerygrab";
|
||||
};
|
||||
users.groups.gallerygrab = {
|
||||
inherit gid;
|
||||
};
|
||||
users.groups.gallerygrab = { inherit gid; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -6,18 +6,7 @@
|
||||
}:
|
||||
let
|
||||
enableKeylog = false;
|
||||
cleanName =
|
||||
name:
|
||||
lib.replaceStrings
|
||||
[
|
||||
"-"
|
||||
" "
|
||||
]
|
||||
[
|
||||
"_"
|
||||
"_"
|
||||
]
|
||||
name;
|
||||
cleanName = name: lib.replaceStrings [ "-" " " ] [ "_" "_" ] name;
|
||||
aclName = config: "host_" + (cleanName config.name);
|
||||
backendName = config: "backend_" + (cleanName config.name);
|
||||
concatMap =
|
||||
@@ -92,10 +81,10 @@ in
|
||||
http-request return string "Shelvacu is awesome" content-type text/plain if { path / } { var(req.host) -m str "shelvacu.com" }
|
||||
http-request return string "Jean-luc is awesome" content-type text/plain if { path / } { var(req.host) -m str "jean-luc.org" }
|
||||
|
||||
${mapLines (c: " " + ''http-request allow if ${aclName c}'') proxied}
|
||||
${mapLines (c: " " + "http-request allow if ${aclName c}") proxied}
|
||||
http-request return status 404 string "not found" content-type text/plain
|
||||
|
||||
${mapLines (c: " " + ''use_backend ${backendName c} if ${aclName c}'') proxied}
|
||||
${mapLines (c: " " + "use_backend ${backendName c} if ${aclName c}") proxied}
|
||||
|
||||
${concatMap "\n\n" (c: ''
|
||||
backend ${backendName c}
|
||||
|
@@ -2,9 +2,9 @@
|
||||
let
|
||||
inherit (lib) mkOption types;
|
||||
outerConfig = config;
|
||||
ip4Segment = ''[0-9]{1,3}'';
|
||||
ip4Segment = "[0-9]{1,3}";
|
||||
ip4Address = types.addCheck (types.strMatching (
|
||||
lib.concatStringsSep ''\.'' [
|
||||
lib.concatStringsSep "\\." [
|
||||
ip4Segment
|
||||
ip4Segment
|
||||
ip4Segment
|
||||
@@ -12,7 +12,7 @@ let
|
||||
]
|
||||
)) (s: lib.all (p: (lib.toInt p) < 255) (lib.splitString "." s));
|
||||
# Note: This accepts plenty of strings that aren't valid ipv6 addresses, this is just to catch when you accidentally put an ipv4 or something else in
|
||||
ip6Address = types.strMatching ''([a-fA-F0-9]{4}::?){1,7}[a-fA-F0-9]{4}'';
|
||||
ip6Address = types.strMatching "([a-fA-F0-9]{4}::?){1,7}[a-fA-F0-9]{4}";
|
||||
ipAddress = types.either ip4Address ip6Address;
|
||||
in
|
||||
{
|
||||
@@ -41,9 +41,7 @@ in
|
||||
|
||||
port = mkOption { type = types.port; };
|
||||
|
||||
ipAddress = mkOption {
|
||||
type = ipAddress;
|
||||
};
|
||||
ipAddress = mkOption { type = ipAddress; };
|
||||
|
||||
domain = mkOption { type = types.str; };
|
||||
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./habitat-fwd.nix
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
{
|
||||
vacu.proxiedServices.dufs = {
|
||||
domain = "dav.shelvacu.com";
|
||||
|
@@ -34,11 +34,7 @@ in
|
||||
};
|
||||
|
||||
config =
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
common_settings = {
|
||||
APP_ENV = "production";
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{ config, inputs, ... }:
|
||||
let
|
||||
name = "jl-stats";
|
||||
contain = config.containers.${name};
|
||||
|
@@ -18,10 +18,7 @@
|
||||
restartIfChanged = true;
|
||||
|
||||
config =
|
||||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ lib, ... }:
|
||||
{
|
||||
system.stateVersion = "24.11";
|
||||
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ config, ... }:
|
||||
let
|
||||
webListenPort = 8443;
|
||||
webListenIP = "127.4.20.165";
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ config, ... }:
|
||||
let
|
||||
contain = config.containers.keycloak;
|
||||
settings = contain.config.services.keycloak.settings;
|
||||
@@ -26,10 +23,7 @@ in
|
||||
restartIfChanged = true;
|
||||
|
||||
config =
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
system.stateVersion = "23.11";
|
||||
networking.firewall.enable = false;
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ config, ... }:
|
||||
let
|
||||
contain = config.containers.llm;
|
||||
in
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./mira-auth.nix
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
let
|
||||
port = 8443;
|
||||
domain = "auth.for.miras.pet";
|
||||
@@ -24,11 +22,7 @@ in
|
||||
restartIfChanged = true;
|
||||
|
||||
config =
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
certtool = "${pkgs.gnutls.bin}/bin/certtool";
|
||||
template_text = ''
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
domain = "chat.for.miras.pet";
|
||||
port = 3169;
|
||||
@@ -74,9 +70,7 @@ in
|
||||
"POSTGRES_USER" = "zulip";
|
||||
};
|
||||
environmentFiles = [ (secrets_folder + "/postgres-secrets") ];
|
||||
volumes = [
|
||||
"mira-chat_postgresql-14:/var/lib/postgresql/data:rw"
|
||||
];
|
||||
volumes = [ "mira-chat_postgresql-14:/var/lib/postgresql/data:rw" ];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
"--network-alias=database"
|
||||
@@ -98,12 +92,8 @@ in
|
||||
"docker-network-mira-chat_default.service"
|
||||
"docker-volume-mira-chat_postgresql-14.service"
|
||||
];
|
||||
partOf = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
wantedBy = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
partOf = [ "docker-compose-mira-chat-root.target" ];
|
||||
wantedBy = [ "docker-compose-mira-chat-root.target" ];
|
||||
};
|
||||
virtualisation.oci-containers.containers."mira-chat-memcached" = {
|
||||
image = "memcached:alpine";
|
||||
@@ -115,11 +105,7 @@ in
|
||||
cmd = [
|
||||
"sh"
|
||||
"-euc"
|
||||
"echo 'mech_list: plain' > \"$SASL_CONF_PATH\"
|
||||
echo \"zulip@$HOSTNAME:$MEMCACHED_PASSWORD\" > \"$MEMCACHED_SASL_PWDB\"
|
||||
echo \"zulip@localhost:$MEMCACHED_PASSWORD\" >> \"$MEMCACHED_SASL_PWDB\"
|
||||
exec memcached -S
|
||||
"
|
||||
"echo 'mech_list: plain' > \"$SASL_CONF_PATH\"\n echo \"zulip@$HOSTNAME:$MEMCACHED_PASSWORD\" > \"$MEMCACHED_SASL_PWDB\"\n echo \"zulip@localhost:$MEMCACHED_PASSWORD\" >> \"$MEMCACHED_SASL_PWDB\"\n exec memcached -S\n "
|
||||
];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
@@ -134,18 +120,10 @@ in
|
||||
RestartSec = lib.mkOverride 90 "100ms";
|
||||
RestartSteps = lib.mkOverride 90 9;
|
||||
};
|
||||
after = [
|
||||
"docker-network-mira-chat_default.service"
|
||||
];
|
||||
requires = [
|
||||
"docker-network-mira-chat_default.service"
|
||||
];
|
||||
partOf = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
wantedBy = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
after = [ "docker-network-mira-chat_default.service" ];
|
||||
requires = [ "docker-network-mira-chat_default.service" ];
|
||||
partOf = [ "docker-compose-mira-chat-root.target" ];
|
||||
wantedBy = [ "docker-compose-mira-chat-root.target" ];
|
||||
};
|
||||
virtualisation.oci-containers.containers."mira-chat-rabbitmq" = {
|
||||
image = "rabbitmq:3.12.14";
|
||||
@@ -153,9 +131,7 @@ in
|
||||
"RABBITMQ_DEFAULT_USER" = "zulip";
|
||||
};
|
||||
environmentFiles = [ (secrets_folder + "/rabbitmq-secrets") ];
|
||||
volumes = [
|
||||
"mira-chat_rabbitmq:/var/lib/rabbitmq:rw"
|
||||
];
|
||||
volumes = [ "mira-chat_rabbitmq:/var/lib/rabbitmq:rw" ];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
"--network-alias=rabbitmq"
|
||||
@@ -177,25 +153,17 @@ in
|
||||
"docker-network-mira-chat_default.service"
|
||||
"docker-volume-mira-chat_rabbitmq.service"
|
||||
];
|
||||
partOf = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
wantedBy = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
partOf = [ "docker-compose-mira-chat-root.target" ];
|
||||
wantedBy = [ "docker-compose-mira-chat-root.target" ];
|
||||
};
|
||||
virtualisation.oci-containers.containers."mira-chat-redis" = {
|
||||
image = "redis:alpine";
|
||||
environmentFiles = [ (secrets_folder + "/redis-secrets") ];
|
||||
volumes = [
|
||||
"mira-chat_redis:/data:rw"
|
||||
];
|
||||
volumes = [ "mira-chat_redis:/data:rw" ];
|
||||
cmd = [
|
||||
"sh"
|
||||
"-euc"
|
||||
"echo \"requirepass '$REDIS_PASSWORD'\" > /etc/redis.conf
|
||||
exec redis-server /etc/redis.conf
|
||||
"
|
||||
"echo \"requirepass '$REDIS_PASSWORD'\" > /etc/redis.conf\n exec redis-server /etc/redis.conf\n "
|
||||
];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
@@ -218,12 +186,8 @@ in
|
||||
"docker-network-mira-chat_default.service"
|
||||
"docker-volume-mira-chat_redis.service"
|
||||
];
|
||||
partOf = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
wantedBy = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
partOf = [ "docker-compose-mira-chat-root.target" ];
|
||||
wantedBy = [ "docker-compose-mira-chat-root.target" ];
|
||||
};
|
||||
virtualisation.oci-containers.containers."mira-chat-zulip" = {
|
||||
image = "zulip/docker-zulip:9.4-0";
|
||||
@@ -262,12 +226,8 @@ in
|
||||
'';
|
||||
};
|
||||
environmentFiles = [ (secrets_folder + "/zulip-secrets") ];
|
||||
volumes = [
|
||||
"mira-chat_zulip:/data:rw"
|
||||
];
|
||||
ports = [
|
||||
"${toString port}:80/tcp"
|
||||
];
|
||||
volumes = [ "mira-chat_zulip:/data:rw" ];
|
||||
ports = [ "${toString port}:80/tcp" ];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
"--network-alias=zulip"
|
||||
@@ -289,12 +249,8 @@ in
|
||||
"docker-network-mira-chat_default.service"
|
||||
"docker-volume-mira-chat_zulip.service"
|
||||
];
|
||||
partOf = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
wantedBy = [
|
||||
"docker-compose-mira-chat-root.target"
|
||||
];
|
||||
partOf = [ "docker-compose-mira-chat-root.target" ];
|
||||
wantedBy = [ "docker-compose-mira-chat-root.target" ];
|
||||
};
|
||||
|
||||
# Networks
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ config, ... }:
|
||||
let
|
||||
container = config.containers.mira-git;
|
||||
domain = "git.for.miras.pet";
|
||||
|
@@ -1,7 +1,4 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ config, ... }:
|
||||
let
|
||||
oauth_name = "forgejo";
|
||||
git_container = config.containers.mira-git;
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
let
|
||||
nodePort = 6794;
|
||||
in
|
||||
@@ -30,10 +28,7 @@ in
|
||||
];
|
||||
|
||||
config =
|
||||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ lib, ... }:
|
||||
{
|
||||
system.stateVersion = "24.11";
|
||||
|
||||
|
@@ -1,6 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{ ... }:
|
||||
let
|
||||
proxiedCommon = {
|
||||
fromContainer = "static-stuff";
|
||||
|
@@ -40,9 +40,7 @@
|
||||
networking.useHostResolvConf = lib.mkForce false;
|
||||
services.resolved.enable = true;
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.yt-dlp
|
||||
];
|
||||
environment.systemPackages = [ pkgs.yt-dlp ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
45
wifi/add.py
45
wifi/add.py
@@ -4,58 +4,65 @@ import json
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
|
||||
DATA_PATH = Path('@dataFn@')
|
||||
DATA_PATH = Path("@dataFn@")
|
||||
DATA = json.loads(DATA_PATH.read_text())
|
||||
|
||||
SOPS_BIN = DATA["sopsBin"]
|
||||
|
||||
EMPTY_CONST = object()
|
||||
|
||||
|
||||
class EnumAction(argparse._StoreConstAction):
|
||||
def __init__(self,
|
||||
option_strings,
|
||||
dest,
|
||||
const=EMPTY_CONST,
|
||||
default=False,
|
||||
required=False,
|
||||
help=None):
|
||||
def __init__(
|
||||
self,
|
||||
option_strings,
|
||||
dest,
|
||||
const=EMPTY_CONST,
|
||||
default=False,
|
||||
required=False,
|
||||
help=None,
|
||||
):
|
||||
if const is EMPTY_CONST:
|
||||
#copying logic in _get_optional_kwargs
|
||||
# copying logic in _get_optional_kwargs
|
||||
long_option_strings = []
|
||||
for option_string in option_strings:
|
||||
# strings starting with two prefix characters are long options
|
||||
if len(option_string) > 1 and option_string[1] in '-':
|
||||
if len(option_string) > 1 and option_string[1] in "-":
|
||||
long_option_strings.append(option_string)
|
||||
|
||||
if long_option_strings:
|
||||
const_option_string = long_option_strings[0]
|
||||
else:
|
||||
const_option_string = option_strings[0]
|
||||
const = const_option_string.lstrip('-')
|
||||
const = const.replace('-', '_')
|
||||
const = const_option_string.lstrip("-")
|
||||
const = const.replace("-", "_")
|
||||
super(EnumAction, self).__init__(
|
||||
option_strings=option_strings,
|
||||
dest=dest,
|
||||
const=const,
|
||||
required=required,
|
||||
help=help,
|
||||
default=default)
|
||||
default=default,
|
||||
)
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog='Shel Wifi Manager',
|
||||
prog="Shel Wifi Manager",
|
||||
)
|
||||
|
||||
parser.add_argument('--add', action=EnumAction, dest='action')
|
||||
parser.add_argument('--edit', action=EnumAction, dest='action')
|
||||
parser.add_argument('ssid')
|
||||
parser.add_argument("--add", action=EnumAction, dest="action")
|
||||
parser.add_argument("--edit", action=EnumAction, dest="action")
|
||||
parser.add_argument("ssid")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
def die(msg:str):
|
||||
|
||||
def die(msg: str):
|
||||
sys.stderr.write(msg + "\n")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if args.action is None:
|
||||
die("specify an action")
|
||||
|
||||
wifi_data =
|
||||
wifi_data = "TODO"
|
||||
|
@@ -1,8 +1,4 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
sopsFile = ../secrets/misc/wifi.json;
|
||||
in
|
||||
|
Reference in New Issue
Block a user