diff --git a/README.md b/README.md index 3b0a798..04514e6 100644 --- a/README.md +++ b/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) +``` diff --git a/common/assertions.nix b/common/assertions.nix index 3884726..bb699bc 100644 --- a/common/assertions.nix +++ b/common/assertions.nix @@ -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; diff --git a/common/defaultPackages.nix b/common/defaultPackages.nix index e5fb5df..0bbcb69 100644 --- a/common/defaultPackages.nix +++ b/common/defaultPackages.nix @@ -84,8 +84,6 @@ lib.mkMerge [ gnutls progress ]) - ++ [ - (config.vacu.units.finalPackage) - ]; + ++ [ config.vacu.units.finalPackage ]; } ] diff --git a/common/ffmpeg.nix b/common/ffmpeg.nix index f3b25b0..d72cb9d 100644 --- a/common/ffmpeg.nix +++ b/common/ffmpeg.nix @@ -1,8 +1,4 @@ -{ - pkgs, - lib, - ... -}: +{ pkgs, lib, ... }: { vacu.packages.ffmpeg-allvrything = { enable = lib.mkDefault false; diff --git a/common/git.nix b/common/git.nix index f8da134..471bf6e 100644 --- a/common/git.nix +++ b/common/git.nix @@ -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; }; }) ]; } diff --git a/common/hpn.nix b/common/hpn.nix index 2e9e89c..53487a9 100644 --- a/common/hpn.nix +++ b/common/hpn.nix @@ -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; }; } diff --git a/common/lib/default.nix b/common/lib/default.nix index 8794173..54dd5f0 100644 --- a/common/lib/default.nix +++ b/common/lib/default.nix @@ -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; diff --git a/common/lib/makeWrapper.nix b/common/lib/makeWrapper.nix index f5550bf..92bc0df 100644 --- a/common/lib/makeWrapper.nix +++ b/common/lib/makeWrapper.nix @@ -1,8 +1,4 @@ -{ - pkgs, - lib, - ... -}: +{ pkgs, lib, ... }: let inherit (lib) optionals diff --git a/common/lib/outputOf.nix b/common/lib/outputOf.nix index 4d08124..145822e 100644 --- a/common/lib/outputOf.nix +++ b/common/lib/outputOf.nix @@ -43,7 +43,5 @@ let if removeNewline then noNewline else res; in { - config.vacu.vaculib = { - inherit runCommandBare outputOf; - }; + config.vacu.vaculib = { inherit runCommandBare outputOf; }; } diff --git a/common/lib/strings.nix b/common/lib/strings.nix index 5ca39bd..0143826 100644 --- a/common/lib/strings.nix +++ b/common/lib/strings.nix @@ -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; }; } diff --git a/common/lix.nix b/common/lix.nix index aeb30ca..4907807 100644 --- a/common/lix.nix +++ b/common/lix.nix @@ -1,8 +1,4 @@ -{ - inputs, - vacuModuleType, - ... -}: +{ inputs, vacuModuleType, ... }: if vacuModuleType == "nixos" then { # imports = [ inputs.lix-module.nixosModules.default ]; diff --git a/common/nix-command-extensions/nix.sh b/common/nix-command-extensions/nix.sh index 7e7114b..6441965 100644 --- a/common/nix-command-extensions/nix.sh +++ b/common/nix-command-extensions/nix.sh @@ -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[@]}" diff --git a/common/package-set.nix b/common/package-set.nix index 61b4565..908202f 100644 --- a/common/package-set.nix +++ b/common/package-set.nix @@ -36,9 +36,7 @@ let if builtins.isString val then { name = val; - value = { - inherit enable; - }; + value = { inherit enable; }; } else { diff --git a/common/shell/default.nix b/common/shell/default.nix index ea8eafc..3b311c0 100644 --- a/common/shell/default.nix +++ b/common/shell/default.nix @@ -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 = { diff --git a/common/shell/ps1.nix b/common/shell/ps1.nix index ecf105e..a4aebfe 100644 --- a/common/shell/ps1.nix +++ b/common/shell/ps1.nix @@ -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 + " "; diff --git a/common/ssh.nix b/common/ssh.nix index cdf701e..84702f5 100644 --- a/common/ssh.nix +++ b/common/ssh.nix @@ -1,8 +1,4 @@ -{ - lib, - config, - ... -}: +{ lib, config, ... }: let inherit (lib) mkOption diff --git a/common/units-impl.nix b/common/units-impl.nix index e932ed8..997bd98 100644 --- a/common/units-impl.nix +++ b/common/units-impl.nix @@ -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 ); } ]; diff --git a/common/verify-system/default.nix b/common/verify-system/default.nix index 111ba82..d53294c 100644 --- a/common/verify-system/default.nix +++ b/common/verify-system/default.nix @@ -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; diff --git a/compute-deck/default.nix b/compute-deck/default.nix index 29c35b0..5738387 100644 --- a/compute-deck/default.nix +++ b/compute-deck/default.nix @@ -1,8 +1,4 @@ -{ - pkgs, - inputs, - ... -}: +{ pkgs, inputs, ... }: { imports = [ diff --git a/deterministic-certs.nix b/deterministic-certs.nix index 541c88e..e5fb9e9 100644 --- a/deterministic-certs.nix +++ b/deterministic-certs.nix @@ -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 diff --git a/dns/for.miras.pet.nix b/dns/for.miras.pet.nix index 69b27e7..afad0b9 100644 --- a/dns/for.miras.pet.nix +++ b/dns/for.miras.pet.nix @@ -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; diff --git a/dns/jean-luc.org.nix b/dns/jean-luc.org.nix index 005294c..ff63e3b 100644 --- a/dns/jean-luc.org.nix +++ b/dns/jean-luc.org.nix @@ -1,8 +1,4 @@ -{ - lib, - config, - ... -}: +{ lib, config, ... }: let inherit (lib) singleton; inherit (config.vacu) dnsData; diff --git a/dns/pwrhs.win.nix b/dns/pwrhs.win.nix index da47a21..ba3e89d 100644 --- a/dns/pwrhs.win.nix +++ b/dns/pwrhs.win.nix @@ -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."; diff --git a/dns/shelvacu.miras.pet.nix b/dns/shelvacu.miras.pet.nix index aaafcb9..b9b79c0 100644 --- a/dns/shelvacu.miras.pet.nix +++ b/dns/shelvacu.miras.pet.nix @@ -1,8 +1,4 @@ -{ - lib, - config, - ... -}: +{ lib, config, ... }: let inherit (lib) singleton; inherit (config.vacu) dnsData; diff --git a/flake.nix b/flake.nix index 17c9b1b..1708ec1 100644 --- a/flake.nix +++ b/flake.nix @@ -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 { }; diff --git a/fw/default.nix b/fw/default.nix index cea6a1b..88a8916 100644 --- a/fw/default.nix +++ b/fw/default.nix @@ -1,8 +1,4 @@ -{ - inputs, - pkgs, - ... -}: +{ inputs, pkgs, ... }: { imports = [ inputs.nixos-hardware.nixosModules.framework-16-7040-amd diff --git a/fw/orca-slicer.nix b/fw/orca-slicer.nix index 5621eb1..29462aa 100644 --- a/fw/orca-slicer.nix +++ b/fw/orca-slicer.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: +{ pkgs, ... }: { vacu.packages.orca-slicer = { enable = true; diff --git a/fw/radicle.nix b/fw/radicle.nix index 38ccdfc..bd6476a 100644 --- a/fw/radicle.nix +++ b/fw/radicle.nix @@ -1,7 +1,4 @@ -{ - config, - ... -}: +{ config, ... }: { sops.secrets.radicle-key = { sopsFile = ../secrets/radicle-private.key; diff --git a/fw/zfs.nix b/fw/zfs.nix index 69a6c8c..c5f4c90 100644 --- a/fw/zfs.nix +++ b/fw/zfs.nix @@ -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 diff --git a/installer.nix b/installer.nix index 5e40884..b3b8b75 100644 --- a/installer.nix +++ b/installer.nix @@ -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"; diff --git a/liam/mail.nix b/liam/mail.nix index 26f55f8..0a698e2 100644 --- a/liam/mail.nix +++ b/liam/mail.nix @@ -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 diff --git a/liam/sieve.nix b/liam/sieve.nix index be294ef..25d292b 100644 --- a/liam/sieve.nix +++ b/liam/sieve.nix @@ -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; diff --git a/lp0/default.nix b/lp0/default.nix index 752af06..7becf6a 100644 --- a/lp0/default.nix +++ b/lp0/default.nix @@ -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; diff --git a/nix-on-droid/default.nix b/nix-on-droid/default.nix index 790d875..15d0aad 100644 --- a/nix-on-droid/default.nix +++ b/nix-on-droid/default.nix @@ -1,12 +1,7 @@ -{ - lib, - ... -}: +{ lib, ... }: { - imports = [ - ./flake-registry.nix - ]; + imports = [ ./flake-registry.nix ]; vacu.shell.color = "white"; vacu.systemKind = "server"; diff --git a/packages/bcd/deps.json b/packages/bcd/deps.json index 6ea6c6d..31884ca 100644 --- a/packages/bcd/deps.json +++ b/packages/bcd/deps.json @@ -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=" - } - } } diff --git a/packages/haproxy-lua-http.nix b/packages/haproxy-lua-http.nix index d144cd9..39ebb40 100644 --- a/packages/haproxy-lua-http.nix +++ b/packages/haproxy-lua-http.nix @@ -1,7 +1,4 @@ -{ - fetchFromGitHub, - stdenv, -}: +{ fetchFromGitHub, stdenv }: let deriv = (stdenv.mkDerivation { diff --git a/packages/snmp-mibs-downloader.nix b/packages/snmp-mibs-downloader.nix index d6b943e..138d132 100644 --- a/packages/snmp-mibs-downloader.nix +++ b/packages/snmp-mibs-downloader.nix @@ -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") ) ) } diff --git a/scripts/dns/default.nix b/scripts/dns/default.nix index 6b14a6d..4e1d8d8 100644 --- a/scripts/dns/default.nix +++ b/scripts/dns/default.nix @@ -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; [ diff --git a/scripts/dns/script.py b/scripts/dns/script.py index f22bbfc..2a894c3 100644 --- a/scripts/dns/script.py +++ b/scripts/dns/script.py @@ -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 diff --git a/secrets/liam/main.yaml b/secrets/liam/main.yaml index a313591..3d42351 100644 --- a/secrets/liam/main.yaml +++ b/secrets/liam/main.yaml @@ -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 diff --git a/secrets/misc/cloudns.json b/secrets/misc/cloudns.json index ea1381d..7a56600 100644 --- a/secrets/misc/cloudns.json +++ b/secrets/misc/cloudns.json @@ -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" - } -} \ No newline at end of file + "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" + } +} diff --git a/secrets/misc/git-keys.json b/secrets/misc/git-keys.json index 5488295..e6dce9a 100644 --- a/secrets/misc/git-keys.json +++ b/secrets/misc/git-keys.json @@ -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" - } -} \ No newline at end of file + "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" + } +} diff --git a/tests/liam.nix b/tests/liam.nix index 16c4075..e6eccc3 100644 --- a/tests/liam.nix +++ b/tests/liam.nix @@ -38,7 +38,9 @@ let "vacustore" ] )) - + "\nbackup:::::::"; + + '' + + backup:::::::''; dkim_key = '' -----BEGIN PRIVATE KEY----- MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANn62hMdcFw4znAB diff --git a/tests/mailtest.py b/tests/mailtest.py index db9569d..1db82c6 100644 --- a/tests/mailtest.py +++ b/tests/mailtest.py @@ -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" diff --git a/tests/test_secrets/liam/main.yaml b/tests/test_secrets/liam/main.yaml index c9f4afd..76ce319 100644 --- a/tests/test_secrets/liam/main.yaml +++ b/tests/test_secrets/liam/main.yaml @@ -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 diff --git a/tliam b/tliam index 0a67f91..fd30f48 100755 --- a/tliam +++ b/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 - diff --git a/toptop/hardware-configuration.nix b/toptop/hardware-configuration.nix index 4e71a4d..69e7f36 100644 --- a/toptop/hardware-configuration.nix +++ b/toptop/hardware-configuration.nix @@ -7,9 +7,7 @@ }: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot.initrd.availableKernelModules = [ "ahci" diff --git a/treefmt.nix b/treefmt.nix index ef19a3c..f9402f7 100644 --- a/treefmt.nix +++ b/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" + ]; } diff --git a/triple-dezert/database.nix b/triple-dezert/database.nix index 110cf52..7edcf86 100644 --- a/triple-dezert/database.nix +++ b/triple-dezert/database.nix @@ -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"; }; } diff --git a/triple-dezert/disko.nix b/triple-dezert/disko.nix index df866a2..9f8b63f 100644 --- a/triple-dezert/disko.nix +++ b/triple-dezert/disko.nix @@ -1,8 +1,4 @@ -{ - inputs, - lib, - ... -}: +{ inputs, lib, ... }: let megaHardDrives = [ "ata-ST22000NM001E-3HM103_ZX201FM0" diff --git a/triple-dezert/docker.nix b/triple-dezert/docker.nix index 7709dc6..003244b 100644 --- a/triple-dezert/docker.nix +++ b/triple-dezert/docker.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { virtualisation.docker = { enable = true; diff --git a/triple-dezert/gallerygrab.nix b/triple-dezert/gallerygrab.nix index a2720e1..5367d7c 100644 --- a/triple-dezert/gallerygrab.nix +++ b/triple-dezert/gallerygrab.nix @@ -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; }; }; }; } diff --git a/triple-dezert/proxied/haproxy-config.nix b/triple-dezert/proxied/haproxy-config.nix index 0afb534..3a94bed 100644 --- a/triple-dezert/proxied/haproxy-config.nix +++ b/triple-dezert/proxied/haproxy-config.nix @@ -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} diff --git a/triple-dezert/proxied/options.nix b/triple-dezert/proxied/options.nix index e9ca483..c9c87b1 100644 --- a/triple-dezert/proxied/options.nix +++ b/triple-dezert/proxied/options.nix @@ -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; }; diff --git a/triple-dezert/proxied/services/default.nix b/triple-dezert/proxied/services/default.nix index ce2ea8f..01c4107 100644 --- a/triple-dezert/proxied/services/default.nix +++ b/triple-dezert/proxied/services/default.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { imports = [ ./habitat-fwd.nix diff --git a/triple-dezert/proxied/services/dufs.nix b/triple-dezert/proxied/services/dufs.nix index 4d1b404..f2be378 100644 --- a/triple-dezert/proxied/services/dufs.nix +++ b/triple-dezert/proxied/services/dufs.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { vacu.proxiedServices.dufs = { domain = "dav.shelvacu.com"; diff --git a/triple-dezert/proxied/services/firefly.nix b/triple-dezert/proxied/services/firefly.nix index d9f8e33..c042971 100644 --- a/triple-dezert/proxied/services/firefly.nix +++ b/triple-dezert/proxied/services/firefly.nix @@ -34,11 +34,7 @@ in }; config = - { - lib, - config, - ... - }: + { lib, config, ... }: let common_settings = { APP_ENV = "production"; diff --git a/triple-dezert/proxied/services/jl-stats.nix b/triple-dezert/proxied/services/jl-stats.nix index e16782d..1a16a39 100644 --- a/triple-dezert/proxied/services/jl-stats.nix +++ b/triple-dezert/proxied/services/jl-stats.nix @@ -1,8 +1,4 @@ -{ - config, - inputs, - ... -}: +{ config, inputs, ... }: let name = "jl-stats"; contain = config.containers.${name}; diff --git a/triple-dezert/proxied/services/jobs.nix b/triple-dezert/proxied/services/jobs.nix index 72ab858..9fcc3f1 100644 --- a/triple-dezert/proxied/services/jobs.nix +++ b/triple-dezert/proxied/services/jobs.nix @@ -18,10 +18,7 @@ restartIfChanged = true; config = - { - lib, - ... - }: + { lib, ... }: { system.stateVersion = "24.11"; diff --git a/triple-dezert/proxied/services/kanidm.nix b/triple-dezert/proxied/services/kanidm.nix index 5206d1e..7d29c0d 100644 --- a/triple-dezert/proxied/services/kanidm.nix +++ b/triple-dezert/proxied/services/kanidm.nix @@ -1,7 +1,4 @@ -{ - config, - ... -}: +{ config, ... }: let webListenPort = 8443; webListenIP = "127.4.20.165"; diff --git a/triple-dezert/proxied/services/keycloak.nix b/triple-dezert/proxied/services/keycloak.nix index b979c03..c45b5bd 100644 --- a/triple-dezert/proxied/services/keycloak.nix +++ b/triple-dezert/proxied/services/keycloak.nix @@ -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; diff --git a/triple-dezert/proxied/services/llm.nix b/triple-dezert/proxied/services/llm.nix index 5760e9a..01455ff 100644 --- a/triple-dezert/proxied/services/llm.nix +++ b/triple-dezert/proxied/services/llm.nix @@ -1,7 +1,4 @@ -{ - config, - ... -}: +{ config, ... }: let contain = config.containers.llm; in diff --git a/triple-dezert/proxied/services/mira/default.nix b/triple-dezert/proxied/services/mira/default.nix index da83643..afbf561 100644 --- a/triple-dezert/proxied/services/mira/default.nix +++ b/triple-dezert/proxied/services/mira/default.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { imports = [ ./mira-auth.nix diff --git a/triple-dezert/proxied/services/mira/mira-auth.nix b/triple-dezert/proxied/services/mira/mira-auth.nix index 1c294fe..86d7612 100644 --- a/triple-dezert/proxied/services/mira/mira-auth.nix +++ b/triple-dezert/proxied/services/mira/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 = '' diff --git a/triple-dezert/proxied/services/mira/mira-chat.nix b/triple-dezert/proxied/services/mira/mira-chat.nix index 3ca9853..8820c20 100644 --- a/triple-dezert/proxied/services/mira/mira-chat.nix +++ b/triple-dezert/proxied/services/mira/mira-chat.nix @@ -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 diff --git a/triple-dezert/proxied/services/mira/mira-git.nix b/triple-dezert/proxied/services/mira/mira-git.nix index dc7425e..f93de67 100644 --- a/triple-dezert/proxied/services/mira/mira-git.nix +++ b/triple-dezert/proxied/services/mira/mira-git.nix @@ -1,7 +1,4 @@ -{ - config, - ... -}: +{ config, ... }: let container = config.containers.mira-git; domain = "git.for.miras.pet"; diff --git a/triple-dezert/proxied/services/mira/mira-link-auth-git.nix b/triple-dezert/proxied/services/mira/mira-link-auth-git.nix index 1358500..fbea247 100644 --- a/triple-dezert/proxied/services/mira/mira-link-auth-git.nix +++ b/triple-dezert/proxied/services/mira/mira-link-auth-git.nix @@ -1,7 +1,4 @@ -{ - config, - ... -}: +{ config, ... }: let oauth_name = "forgejo"; git_container = config.containers.mira-git; diff --git a/triple-dezert/proxied/services/radicle.nix b/triple-dezert/proxied/services/radicle.nix index 6ff8b15..0d1ccbb 100644 --- a/triple-dezert/proxied/services/radicle.nix +++ b/triple-dezert/proxied/services/radicle.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: let nodePort = 6794; in @@ -30,10 +28,7 @@ in ]; config = - { - lib, - ... - }: + { lib, ... }: { system.stateVersion = "24.11"; diff --git a/triple-dezert/proxied/services/static-stuff.nix b/triple-dezert/proxied/services/static-stuff.nix index 242dfd8..ae9e557 100644 --- a/triple-dezert/proxied/services/static-stuff.nix +++ b/triple-dezert/proxied/services/static-stuff.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: let proxiedCommon = { fromContainer = "static-stuff"; diff --git a/triple-dezert/yt-archiver.nix b/triple-dezert/yt-archiver.nix index c1b48a8..0df89f7 100644 --- a/triple-dezert/yt-archiver.nix +++ b/triple-dezert/yt-archiver.nix @@ -40,9 +40,7 @@ networking.useHostResolvConf = lib.mkForce false; services.resolved.enable = true; - environment.systemPackages = [ - pkgs.yt-dlp - ]; + environment.systemPackages = [ pkgs.yt-dlp ]; }; }; } diff --git a/wifi/add.py b/wifi/add.py index f04f04f..2b7484f 100644 --- a/wifi/add.py +++ b/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" diff --git a/wifi/common.nix b/wifi/common.nix index 8af1179..620130f 100644 --- a/wifi/common.nix +++ b/wifi/common.nix @@ -1,8 +1,4 @@ -{ - lib, - pkgs, - ... -}: +{ lib, pkgs, ... }: let sopsFile = ../secrets/misc/wifi.json; in