Compare commits
2 commits
62ed33c82c
...
d2237c0a12
Author | SHA1 | Date | |
---|---|---|---|
d2237c0a12 | |||
a45c032180 |
13 changed files with 366 additions and 392 deletions
|
@ -13,4 +13,3 @@ jobs:
|
||||||
run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true
|
run: nix-fast-build --no-nom --systems "x86_64-linux aarch64-linux" --attic-cache "nixfleet" --skip-cached --result-file result.json || true
|
||||||
- name: Report checks
|
- name: Report checks
|
||||||
run: report-checks
|
run: report-checks
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
name: update-flake-lock
|
name: update-flake-lock
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 15 * * *' # daily at 15:00
|
- cron: "0 15 * * *" # daily at 15:00
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lockfile:
|
lockfile:
|
||||||
|
@ -32,4 +32,4 @@ jobs:
|
||||||
--title "Update flake's lockfile" \
|
--title "Update flake's lockfile" \
|
||||||
--description "Check the commit description for inputs deltas" \
|
--description "Check the commit description for inputs deltas" \
|
||||||
--assignees aciceri \
|
--assignees aciceri \
|
||||||
|| echo "PR already existing"
|
|| echo "PR already existing"
|
||||||
|
|
|
@ -19,7 +19,21 @@
|
||||||
flakeCheck = true;
|
flakeCheck = true;
|
||||||
programs = {
|
programs = {
|
||||||
nixfmt.enable = true;
|
nixfmt.enable = true;
|
||||||
|
prettier.enable = true;
|
||||||
|
black.enable = true;
|
||||||
|
shfmt.enable = true;
|
||||||
};
|
};
|
||||||
|
settings.global.excludes = [
|
||||||
|
"*.age"
|
||||||
|
"*.svg"
|
||||||
|
"*.png"
|
||||||
|
"*.jpg"
|
||||||
|
"*.bin"
|
||||||
|
"*.el"
|
||||||
|
"*.org"
|
||||||
|
".envrc"
|
||||||
|
"*.conf"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
pre-commit.settings = {
|
pre-commit.settings = {
|
||||||
|
|
|
@ -1,187 +1,193 @@
|
||||||
:root { /* Catppuccin Colors */
|
:root {
|
||||||
--bg: #1e1e2e;
|
/* Catppuccin Colors */
|
||||||
--currentline: #302D41;
|
--bg: #1e1e2e;
|
||||||
--fg: #d9e0ee;
|
--currentline: #302d41;
|
||||||
--comment: #575268;
|
--fg: #d9e0ee;
|
||||||
--flamingo: #f2cdcd;
|
--comment: #575268;
|
||||||
--mauve: #ddb6f2;
|
--flamingo: #f2cdcd;
|
||||||
--pink: #f5c2e7;
|
--mauve: #ddb6f2;
|
||||||
--maroon: #e8a2af;
|
--pink: #f5c2e7;
|
||||||
--red: #f28fad;
|
--maroon: #e8a2af;
|
||||||
--peach: #f8bd96;
|
--red: #f28fad;
|
||||||
--yellow: #fae3b0;
|
--peach: #f8bd96;
|
||||||
--green: #abe9b3;
|
--yellow: #fae3b0;
|
||||||
--teal: #b5e8e0;
|
--green: #abe9b3;
|
||||||
--blue: #96cdfb;
|
--teal: #b5e8e0;
|
||||||
--sky: #89dceb;
|
--blue: #96cdfb;
|
||||||
--lavender: #c9cbff;
|
--sky: #89dceb;
|
||||||
--rosewater: #f5e0dc;
|
--lavender: #c9cbff;
|
||||||
--font: monospace; /*"FiraCode Nerd Font Mono";*/
|
--rosewater: #f5e0dc;
|
||||||
|
--font: monospace; /*"FiraCode Nerd Font Mono";*/
|
||||||
|
|
||||||
/* vimium theme uses colors: flamingo, peach, rosewater, green, blue, lavender */
|
/* vimium theme uses colors: flamingo, peach, rosewater, green, blue, lavender */
|
||||||
--tridactyl-fg: var(--fg);
|
--tridactyl-fg: var(--fg);
|
||||||
--tridactyl-bg: var(--bg);
|
--tridactyl-bg: var(--bg);
|
||||||
--tridactyl-url-fg: var(--rosewater);
|
--tridactyl-url-fg: var(--rosewater);
|
||||||
--tridactyl-url-bg: var(--bg);
|
--tridactyl-url-bg: var(--bg);
|
||||||
--tridactyl-highlight-box-bg: var(--currentline);
|
--tridactyl-highlight-box-bg: var(--currentline);
|
||||||
--tridactyl-highlight-box-fg: var(--fg);
|
--tridactyl-highlight-box-fg: var(--fg);
|
||||||
--tridactyl-of-fg: var(--fg);
|
--tridactyl-of-fg: var(--fg);
|
||||||
--tridactyl-of-bg: var(--currentline);
|
--tridactyl-of-bg: var(--currentline);
|
||||||
--tridactyl-cmdl-fg: var(--bg);
|
--tridactyl-cmdl-fg: var(--bg);
|
||||||
--tridactyl-cmdl-font-family: var(--font);
|
--tridactyl-cmdl-font-family: var(--font);
|
||||||
--tridactyl-cmplt-font-family: var(--font);
|
--tridactyl-cmplt-font-family: var(--font);
|
||||||
--tridactyl-hintspan-font-family: var(--font);
|
--tridactyl-hintspan-font-family: var(--font);
|
||||||
|
|
||||||
/* Hint character tags */
|
/* Hint character tags */
|
||||||
--tridactyl-hintspan-fg: var(--bg) !important;
|
--tridactyl-hintspan-fg: var(--bg) !important;
|
||||||
--tridactyl-hintspan-bg: var(--green) !important;
|
--tridactyl-hintspan-bg: var(--green) !important;
|
||||||
|
|
||||||
/* Element Highlights */
|
/* Element Highlights */
|
||||||
--tridactyl-hint-active-fg: none;
|
--tridactyl-hint-active-fg: none;
|
||||||
--tridactyl-hint-active-bg: none;
|
--tridactyl-hint-active-bg: none;
|
||||||
--tridactyl-hint-active-outline: none;
|
--tridactyl-hint-active-outline: none;
|
||||||
--tridactyl-hint-bg: none;
|
--tridactyl-hint-bg: none;
|
||||||
--tridactyl-hint-outline: none;
|
--tridactyl-hint-outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#command-line-holder {
|
#command-line-holder {
|
||||||
order: 1;
|
order: 1;
|
||||||
border: 2px solid var(--lavender);
|
border: 2px solid var(--lavender);
|
||||||
background: var(--tridactyl-bg);
|
background: var(--tridactyl-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
#tridactyl-input {
|
#tridactyl-input {
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
color: var(--tridactyl-fg);
|
color: var(--tridactyl-fg);
|
||||||
width: 90%;
|
width: 90%;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
background: var(--tridactyl-bg);
|
background: var(--tridactyl-bg);
|
||||||
padding-left: unset;
|
padding-left: unset;
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions table {
|
#completions table {
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
font-weight: 200;
|
font-weight: 200;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
padding: 1rem 0;
|
padding: 1rem 0;
|
||||||
/* padding-top: 1rem; */
|
/* padding-top: 1rem; */
|
||||||
/* padding-bottom: 1rem; */
|
/* padding-bottom: 1rem; */
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions > div {
|
#completions > div {
|
||||||
max-height: calc(20 * var(--option-height));
|
max-height: calc(20 * var(--option-height));
|
||||||
min-height: calc(10 * var(--option-height));
|
min-height: calc(10 * var(--option-height));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* COMPLETIONS */
|
/* COMPLETIONS */
|
||||||
|
|
||||||
#completions {
|
#completions {
|
||||||
--option-height: 1.4em;
|
--option-height: 1.4em;
|
||||||
color: var(--tridactyl-fg);
|
color: var(--tridactyl-fg);
|
||||||
background: var(--tridactyl-bg);
|
background: var(--tridactyl-bg);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: unset;
|
font-size: unset;
|
||||||
font-weight: 200;
|
font-weight: 200;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-top: unset;
|
border-top: unset;
|
||||||
order: 2;
|
order: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Olie doesn't know how CSS inheritance works */
|
/* Olie doesn't know how CSS inheritance works */
|
||||||
#completions .HistoryCompletionSource {
|
#completions .HistoryCompletionSource {
|
||||||
max-height: unset;
|
max-height: unset;
|
||||||
min-height: unset;
|
min-height: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions .HistoryCompletionSource table {
|
#completions .HistoryCompletionSource table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
font-size: 9pt;
|
font-size: 9pt;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* redundancy 2: redundancy 2: more redundancy */
|
/* redundancy 2: redundancy 2: more redundancy */
|
||||||
#completions .BmarkCompletionSource {
|
#completions .BmarkCompletionSource {
|
||||||
max-height: unset;
|
max-height: unset;
|
||||||
min-height: unset;
|
min-height: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions table tr td.prefix,#completions table tr td.privatewindow,#completions table tr td.container,#completions table tr td.icon {
|
#completions table tr td.prefix,
|
||||||
display: none;
|
#completions table tr td.privatewindow,
|
||||||
|
#completions table tr td.container,
|
||||||
|
#completions table tr td.icon {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions .BufferCompletionSource table {
|
#completions .BufferCompletionSource table {
|
||||||
width: unset;
|
width: unset;
|
||||||
font-size: unset;
|
font-size: unset;
|
||||||
border-spacing: unset;
|
border-spacing: unset;
|
||||||
table-layout: unset;
|
table-layout: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions table tr .title, #completions table tr td.excmd {
|
#completions table tr .title,
|
||||||
width: 50%;
|
#completions table tr td.excmd {
|
||||||
padding-left: 1rem;
|
width: 50%;
|
||||||
color: var(--blue);
|
padding-left: 1rem;
|
||||||
|
color: var(--blue);
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions table tr .content, #completions table tr td.documentation {
|
#completions table tr .content,
|
||||||
|
#completions table tr td.documentation {
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions table tr {
|
#completions table tr {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions table tr td {
|
#completions table tr td {
|
||||||
padding: .5rem 0;
|
padding: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions .sectionHeader {
|
#completions .sectionHeader {
|
||||||
background: unset;
|
background: unset;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-bottom: unset;
|
border-bottom: unset;
|
||||||
padding: 1rem 1rem 0 !important;
|
padding: 1rem 1rem 0 !important;
|
||||||
padding-left: unset;
|
padding-left: unset;
|
||||||
padding-bottom: 0.2rem;
|
padding-bottom: 0.2rem;
|
||||||
color: var(--peach);
|
color: var(--peach);
|
||||||
}
|
}
|
||||||
|
|
||||||
#cmdline_iframe {
|
#cmdline_iframe {
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
bottom: unset;
|
bottom: unset;
|
||||||
top: 25% !important;
|
top: 25% !important;
|
||||||
left: 10% !important;
|
left: 10% !important;
|
||||||
z-index: 2147483647 !important;
|
z-index: 2147483647 !important;
|
||||||
width: 80% !important;
|
width: 80% !important;
|
||||||
box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important;
|
box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.TridactylStatusIndicator {
|
.TridactylStatusIndicator {
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
bottom: 0 !important;
|
bottom: 0 !important;
|
||||||
background: var(--tridactyl-bg) !important;
|
background: var(--tridactyl-bg) !important;
|
||||||
border: unset !important;
|
border: unset !important;
|
||||||
border: 1px var(--purple) solid !important;
|
border: 1px var(--purple) solid !important;
|
||||||
font-size: 12pt !important;
|
font-size: 12pt !important;
|
||||||
/*font-weight: 200 !important;*/
|
/*font-weight: 200 !important;*/
|
||||||
padding: 0.8ex !important;
|
padding: 0.8ex !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions .focused {
|
#completions .focused {
|
||||||
background: var(--currentline);
|
background: var(--currentline);
|
||||||
/* color: var(--blue); */
|
/* color: var(--blue); */
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
#completions .focused td.title {
|
#completions .focused td.title {
|
||||||
color: var(--pink);
|
color: var(--pink);
|
||||||
}
|
}
|
||||||
|
|
||||||
#completions .focused .url {
|
#completions .focused .url {
|
||||||
background: var(--currentline);
|
background: var(--currentline);
|
||||||
color: var(--green);
|
color: var(--green);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,24 @@
|
||||||
|
|
||||||
/* * Do not remove the @namespace line -- it's required for correct functioning */
|
/* * Do not remove the @namespace line -- it's required for correct functioning */
|
||||||
/* set default namespace to XUL */
|
/* set default namespace to XUL */
|
||||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||||
|
|
||||||
/* Remove Back button when there's nothing to go Back to */
|
/* Remove Back button when there's nothing to go Back to */
|
||||||
#back-button[disabled="true"] { display: none; }
|
#back-button[disabled="true"] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove Forward button when there's nothing to go Forward to */
|
/* Remove Forward button when there's nothing to go Forward to */
|
||||||
#forward-button[disabled="true"] { display: none; }
|
#forward-button[disabled="true"] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove Home button (never use it) */
|
/* Remove Home button (never use it) */
|
||||||
#home-button { display: none; }
|
#home-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.titlebar-spacer {
|
.titlebar-spacer {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remove import bookmarks button */
|
/* Remove import bookmarks button */
|
||||||
|
@ -27,7 +32,8 @@ toolbarbutton.bookmark-item:not(.subviewbutton) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remove whitespace in toolbar */
|
/* Remove whitespace in toolbar */
|
||||||
#nav-bar toolbarpaletteitem[id^="wrapper-customizableui-special-spring"], #nav-bar toolbarspring {
|
#nav-bar toolbarpaletteitem[id^="wrapper-customizableui-special-spring"],
|
||||||
|
#nav-bar toolbarspring {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,8 +59,8 @@ toolbarbutton.bookmark-item:not(.subviewbutton) {
|
||||||
}
|
}
|
||||||
|
|
||||||
.titlebar-restore {
|
.titlebar-restore {
|
||||||
appearance: auto !important;
|
appearance: auto !important;
|
||||||
-moz-default-appearance: -moz-window-button-restore !important;
|
-moz-default-appearance: -moz-window-button-restore !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.titlebar-close {
|
.titlebar-close {
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
font-family: Fira Code;
|
font-family: Fira Code;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
|
@ -23,7 +22,8 @@ window#waybar {
|
||||||
box-shadow: inset 0 -5px red;
|
box-shadow: inset 0 -5px red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.focused, #workspaces button:hover {
|
#workspaces button.focused,
|
||||||
|
#workspaces button:hover {
|
||||||
box-shadow: inset 0 -5px white;
|
box-shadow: inset 0 -5px white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,16 @@ window#waybar {
|
||||||
/* color: @unfocused_borders; */
|
/* color: @unfocused_borders; */
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio, #network, #cpu, #memory, #disk, #temperature, #battery, #language, #clock, #tray {
|
#pulseaudio,
|
||||||
|
#network,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#battery,
|
||||||
|
#language,
|
||||||
|
#clock,
|
||||||
|
#tray {
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
# $ nix-env -qaP | grep wget
|
|
||||||
environment.systemPackages =
|
|
||||||
[ pkgs.vim
|
|
||||||
];
|
|
||||||
|
|
||||||
# # Auto upgrade nix package and the daemon service.
|
|
||||||
# services.nix-daemon.enable = true;
|
|
||||||
# # nix.package = pkgs.nix;
|
|
||||||
|
|
||||||
# # Necessary for using flakes on this system.
|
|
||||||
# nix.settings.experimental-features = "nix-command flakes";
|
|
||||||
|
|
||||||
# # Create /etc/zshrc that loads the nix-darwin environment.
|
|
||||||
# programs.zsh.enable = true; # default shell on catalina
|
|
||||||
# # programs.fish.enable = true;
|
|
||||||
|
|
||||||
# # # Set Git commit hash for darwin-version.
|
|
||||||
# # system.configurationRevision = self.rev or self.dirtyRev or null;
|
|
||||||
|
|
||||||
# # Used for backwards compatibility, please read the changelog before changing.
|
|
||||||
# # $ darwin-rebuild changelog
|
|
||||||
# system.stateVersion = 4;
|
|
||||||
|
|
||||||
# # The platform the configuration will be used on.
|
|
||||||
}
|
|
|
@ -4,83 +4,154 @@
|
||||||
|
|
||||||
@import url("cgit.css");
|
@import url("cgit.css");
|
||||||
|
|
||||||
* { line-height: 1.25em; }
|
* {
|
||||||
|
line-height: 1.25em;
|
||||||
|
}
|
||||||
|
|
||||||
div#cgit {
|
div#cgit {
|
||||||
max-width: 117ch;
|
max-width: 117ch;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
-moz-tab-size: 4;
|
-moz-tab-size: 4;
|
||||||
tab-size: 4;
|
tab-size: 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#cgit table#header td.sub {
|
div#cgit table#header td.sub {
|
||||||
border-top: none;
|
border-top: none;
|
||||||
}
|
}
|
||||||
div#cgit table#header td.sub.right {
|
div#cgit table#header td.sub.right {
|
||||||
padding-right: 1em;
|
padding-right: 1em;
|
||||||
}
|
}
|
||||||
div#cgit table.tabs {
|
div#cgit table.tabs {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
div#cgit div.content {
|
div#cgit div.content {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
div#cgit table.list th a {
|
div#cgit table.list th a {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
div#cgit table.list tr:nth-child(even) {
|
div#cgit table.list tr:nth-child(even) {
|
||||||
background: inherit;
|
background: inherit;
|
||||||
}
|
}
|
||||||
div#cgit table.list tr:hover {
|
div#cgit table.list tr:hover {
|
||||||
background: inherit;
|
background: inherit;
|
||||||
}
|
}
|
||||||
div#cgit table.list tr.nohover-highlight:hover:nth-child(even) {
|
div#cgit table.list tr.nohover-highlight:hover:nth-child(even) {
|
||||||
background: inherit;
|
background: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#cgit table.blob td.linenumbers a:target {
|
div#cgit table.blob td.linenumbers a:target {
|
||||||
color: goldenrod;
|
color: goldenrod;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#cgit div#summary {
|
div#cgit div#summary {
|
||||||
max-width: 80ch;
|
max-width: 80ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* for hilex(1) */
|
/* for hilex(1) */
|
||||||
div#cgit pre .Ke { color: dimgray; }
|
div#cgit pre .Ke {
|
||||||
div#cgit pre .Ma { color: green; }
|
color: dimgray;
|
||||||
div#cgit pre .Co { color: navy; }
|
}
|
||||||
div#cgit pre .St { color: teal; }
|
div#cgit pre .Ma {
|
||||||
div#cgit pre .Fo { color: teal; font-weight: bold; }
|
color: green;
|
||||||
div#cgit pre .Su { color: olive; }
|
}
|
||||||
|
div#cgit pre .Co {
|
||||||
|
color: navy;
|
||||||
|
}
|
||||||
|
div#cgit pre .St {
|
||||||
|
color: teal;
|
||||||
|
}
|
||||||
|
div#cgit pre .Fo {
|
||||||
|
color: teal;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
div#cgit pre .Su {
|
||||||
|
color: olive;
|
||||||
|
}
|
||||||
|
|
||||||
/* for htagml(1) */
|
/* for htagml(1) */
|
||||||
div#cgit pre a.tag { color: inherit; text-decoration: underline; }
|
div#cgit pre a.tag {
|
||||||
div#cgit pre a.tag:target { color: goldenrod; outline: none; }
|
color: inherit;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
div#cgit pre a.tag:target {
|
||||||
|
color: goldenrod;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
/* for mandoc(1) */
|
/* for mandoc(1) */
|
||||||
table.head, table.foot { width: 100%; }
|
table.head,
|
||||||
td.head-rtitle, td.foot-os { text-align: right; }
|
table.foot {
|
||||||
td.head-vol { text-align: center; }
|
width: 100%;
|
||||||
div.Pp { margin: 1ex 0ex; }
|
}
|
||||||
div.Nd, div.Bf, div.Op { display: inline; }
|
td.head-rtitle,
|
||||||
span.Pa, span.Ad { font-style: italic; }
|
td.foot-os {
|
||||||
span.Ms { font-weight: bold; }
|
text-align: right;
|
||||||
dl.Bl-diag > dt { font-weight: bold; }
|
}
|
||||||
code.Nm, code.Fl, code.Cm, code.Ic, code.In, code.Fd, code.Fn,
|
td.head-vol {
|
||||||
code.Cd { font-weight: bold; font-family: inherit; }
|
text-align: center;
|
||||||
|
}
|
||||||
|
div.Pp {
|
||||||
|
margin: 1ex 0ex;
|
||||||
|
}
|
||||||
|
div.Nd,
|
||||||
|
div.Bf,
|
||||||
|
div.Op {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
span.Pa,
|
||||||
|
span.Ad {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
span.Ms {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
dl.Bl-diag > dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
code.Nm,
|
||||||
|
code.Fl,
|
||||||
|
code.Cm,
|
||||||
|
code.Ic,
|
||||||
|
code.In,
|
||||||
|
code.Fd,
|
||||||
|
code.Fn,
|
||||||
|
code.Cd {
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
h1.Sh { font-size: 1.5em; }
|
h1.Sh {
|
||||||
table.Nm td:first-child { padding-right: 1ch; }
|
font-size: 1.5em;
|
||||||
code.Fl { white-space: nowrap; }
|
}
|
||||||
span.RsT { font-style: italic; }
|
table.Nm td:first-child {
|
||||||
dl.Bl-tag:not(.Bl-compact) > dt { margin-top: 1em; }
|
padding-right: 1ch;
|
||||||
ul.Bl-bullet:not(.Bl-compact) > li { margin-top: 1em; }
|
}
|
||||||
div.Bd-indent { margin-left: 4ch; }
|
code.Fl {
|
||||||
table.Bl-column { width: 100%; }
|
white-space: nowrap;
|
||||||
table.foot { margin-top: 1em; }
|
}
|
||||||
|
span.RsT {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
dl.Bl-tag:not(.Bl-compact) > dt {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
ul.Bl-bullet:not(.Bl-compact) > li {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
div.Bd-indent {
|
||||||
|
margin-left: 4ch;
|
||||||
|
}
|
||||||
|
table.Bl-column {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
table.foot {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
div#cgit a.permalink { color: inherit; }
|
div#cgit a.permalink {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
host=${1-picard}
|
host=${1-picard}
|
||||||
|
|
||||||
nixos-rebuild switch \
|
nixos-rebuild switch \
|
||||||
--flake ".#${host}" \
|
--flake ".#${host}" \
|
||||||
--target-host "root@${host}.fleet" \
|
--target-host "root@${host}.fleet" \
|
||||||
--build-host "root@${host}.fleet" \
|
--build-host "root@${host}.fleet" \
|
||||||
--option warn-dirty false \
|
--option warn-dirty false \
|
||||||
--fast \
|
--fast \
|
||||||
"${@:2}"
|
"${@:2}"
|
||||||
|
|
|
@ -13,24 +13,21 @@ class MaildirHandler(FileSystemEventHandler):
|
||||||
def on_created(self, event):
|
def on_created(self, event):
|
||||||
if not event.is_directory:
|
if not event.is_directory:
|
||||||
print(f"New email found: {event.src_path}")
|
print(f"New email found: {event.src_path}")
|
||||||
with open(event.src_path, 'r') as email_file:
|
with open(event.src_path, "r") as email_file:
|
||||||
msg = message_from_file(email_file)
|
msg = message_from_file(email_file)
|
||||||
print(f'{msg["From"]}: {msg["Subject"]}')
|
print(f'{msg["From"]}: {msg["Subject"]}')
|
||||||
self.notifier.send(
|
self.notifier.send(
|
||||||
title=msg["From"],
|
title=msg["From"],
|
||||||
message=msg["Subject"],
|
message=msg["Subject"],
|
||||||
sound=DEFAULT_SOUND,
|
sound=DEFAULT_SOUND,
|
||||||
icon=Icon(name="mail-message-new"),
|
icon=Icon(name="mail-message-new"),
|
||||||
timeout=20
|
timeout=20,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
maildir_new = os.path.expanduser(os.environ.get("INBOX_NEW"))
|
maildir_new = os.path.expanduser(os.environ.get("INBOX_NEW"))
|
||||||
notifier = DesktopNotifierSync(
|
notifier = DesktopNotifierSync(app_name="Mails", notification_limit=10)
|
||||||
app_name="Mails",
|
|
||||||
notification_limit=10
|
|
||||||
)
|
|
||||||
|
|
||||||
event_handler = MaildirHandler(notifier)
|
event_handler = MaildirHandler(notifier)
|
||||||
observer = Observer()
|
observer = Observer()
|
||||||
|
|
|
@ -4,18 +4,20 @@ from pyforgejo.models.create_status_option import CreateStatusOption
|
||||||
import json
|
import json
|
||||||
from os import environ
|
from os import environ
|
||||||
|
|
||||||
client = AuthenticatedClient(base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"])
|
client = AuthenticatedClient(
|
||||||
|
base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"]
|
||||||
|
)
|
||||||
|
|
||||||
with open('result.json', 'r') as file:
|
with open("result.json", "r") as file:
|
||||||
data = json.load(file)
|
data = json.load(file)
|
||||||
|
|
||||||
print("Reporting statuses acording to the following result.json")
|
print("Reporting statuses acording to the following result.json")
|
||||||
print(json.dumps(data, indent=2))
|
print(json.dumps(data, indent=2))
|
||||||
|
|
||||||
for result in data['results']:
|
for result in data["results"]:
|
||||||
attr = result['attr']
|
attr = result["attr"]
|
||||||
success = result['success']
|
success = result["success"]
|
||||||
type = result['type']
|
type = result["type"]
|
||||||
print(f"Report status success={success} for {type} {attr}")
|
print(f"Report status success={success} for {type} {attr}")
|
||||||
response = repo_create_status.sync_detailed(
|
response = repo_create_status.sync_detailed(
|
||||||
owner="aciceri",
|
owner="aciceri",
|
||||||
|
@ -26,8 +28,10 @@ for result in data['results']:
|
||||||
context=type,
|
context=type,
|
||||||
description=attr,
|
description=attr,
|
||||||
target_url="https://git.aciceri.dev", # FIXME
|
target_url="https://git.aciceri.dev", # FIXME
|
||||||
state="success" if success else "failure" # may be pending,success,failure,error_message
|
state=(
|
||||||
)
|
"success" if success else "failure"
|
||||||
|
), # may be pending,success,failure,error_message
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
print("Done reporting statuses")
|
print("Done reporting statuses")
|
||||||
|
|
|
@ -66,8 +66,19 @@ class GarminCollector:
|
||||||
def collect(self):
|
def collect(self):
|
||||||
try:
|
try:
|
||||||
body = self.api.get_daily_weigh_ins(today.isoformat())["totalAverage"]
|
body = self.api.get_daily_weigh_ins(today.isoformat())["totalAverage"]
|
||||||
metric_gauge = GaugeMetricFamily("body_composition", "Body composition and weight", labels=["metric"])
|
metric_gauge = GaugeMetricFamily(
|
||||||
for k in ["weight", "bmi", "bodyFat", "bodyWater", "boneMass", "muscleMass", "physiqueRating", "visceralFat"]:
|
"body_composition", "Body composition and weight", labels=["metric"]
|
||||||
|
)
|
||||||
|
for k in [
|
||||||
|
"weight",
|
||||||
|
"bmi",
|
||||||
|
"bodyFat",
|
||||||
|
"bodyWater",
|
||||||
|
"boneMass",
|
||||||
|
"muscleMass",
|
||||||
|
"physiqueRating",
|
||||||
|
"visceralFat",
|
||||||
|
]:
|
||||||
metric_gauge.add_metric([k], body[k])
|
metric_gauge.add_metric([k], body[k])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Something went wrong while fetching body composition data\n{e}")
|
print(f"Something went wrong while fetching body composition data\n{e}")
|
||||||
|
@ -79,4 +90,4 @@ if __name__ == "__main__":
|
||||||
registry = CollectorRegistry()
|
registry = CollectorRegistry()
|
||||||
registry.register(GarminCollector())
|
registry.register(GarminCollector())
|
||||||
|
|
||||||
push_to_gateway(gateway_address, job='garmin', registry=registry)
|
push_to_gateway(gateway_address, job="garmin", registry=registry)
|
||||||
|
|
|
@ -653,25 +653,11 @@
|
||||||
},
|
},
|
||||||
"targets": {
|
"targets": {
|
||||||
"default": {
|
"default": {
|
||||||
"aiohttp": [
|
"aiohttp": ["aiosignal", "attrs", "frozenlist", "multidict", "yarl"],
|
||||||
"aiosignal",
|
"aiosignal": ["frozenlist"],
|
||||||
"attrs",
|
"alembic": ["mako", "sqlalchemy", "typing-extensions"],
|
||||||
"frozenlist",
|
|
||||||
"multidict",
|
|
||||||
"yarl"
|
|
||||||
],
|
|
||||||
"aiosignal": [
|
|
||||||
"frozenlist"
|
|
||||||
],
|
|
||||||
"alembic": [
|
|
||||||
"mako",
|
|
||||||
"sqlalchemy",
|
|
||||||
"typing-extensions"
|
|
||||||
],
|
|
||||||
"annotated-types": [],
|
"annotated-types": [],
|
||||||
"ansible": [
|
"ansible": ["ansible-core"],
|
||||||
"ansible-core"
|
|
||||||
],
|
|
||||||
"ansible-core": [
|
"ansible-core": [
|
||||||
"cryptography",
|
"cryptography",
|
||||||
"jinja2",
|
"jinja2",
|
||||||
|
@ -679,45 +665,27 @@
|
||||||
"pyyaml",
|
"pyyaml",
|
||||||
"resolvelib"
|
"resolvelib"
|
||||||
],
|
],
|
||||||
"anyio": [
|
"anyio": ["idna", "sniffio"],
|
||||||
"idna",
|
|
||||||
"sniffio"
|
|
||||||
],
|
|
||||||
"argcomplete": [],
|
"argcomplete": [],
|
||||||
"attrs": [],
|
"attrs": [],
|
||||||
"beautifulsoup4": [
|
"beautifulsoup4": ["soupsieve"],
|
||||||
"soupsieve"
|
"build": ["packaging", "pyproject-hooks"],
|
||||||
],
|
|
||||||
"build": [
|
|
||||||
"packaging",
|
|
||||||
"pyproject-hooks"
|
|
||||||
],
|
|
||||||
"certifi": [],
|
"certifi": [],
|
||||||
"cffi": [
|
"cffi": ["pycparser"],
|
||||||
"pycparser"
|
|
||||||
],
|
|
||||||
"chardet": [],
|
"chardet": [],
|
||||||
"charset-normalizer": [],
|
"charset-normalizer": [],
|
||||||
"click": [],
|
"click": [],
|
||||||
"colorclass": [],
|
"colorclass": [],
|
||||||
"compressed-rtf": [],
|
"compressed-rtf": [],
|
||||||
"cryptography": [
|
"cryptography": ["cffi"],
|
||||||
"cffi"
|
"dataclasses-json": ["marshmallow", "typing-inspect"],
|
||||||
],
|
|
||||||
"dataclasses-json": [
|
|
||||||
"marshmallow",
|
|
||||||
"typing-inspect"
|
|
||||||
],
|
|
||||||
"distro": [],
|
"distro": [],
|
||||||
"dnspython": [],
|
"dnspython": [],
|
||||||
"docutils": [],
|
"docutils": [],
|
||||||
"docx2txt": [],
|
"docx2txt": [],
|
||||||
"easygui": [],
|
"easygui": [],
|
||||||
"ebcdic": [],
|
"ebcdic": [],
|
||||||
"email-validator": [
|
"email-validator": ["dnspython", "idna"],
|
||||||
"dnspython",
|
|
||||||
"idna"
|
|
||||||
],
|
|
||||||
"et-xmlfile": [],
|
"et-xmlfile": [],
|
||||||
"extract-msg": [
|
"extract-msg": [
|
||||||
"beautifulsoup4",
|
"beautifulsoup4",
|
||||||
|
@ -731,25 +699,12 @@
|
||||||
"frozenlist": [],
|
"frozenlist": [],
|
||||||
"greenlet": [],
|
"greenlet": [],
|
||||||
"h11": [],
|
"h11": [],
|
||||||
"httpcore": [
|
"httpcore": ["certifi", "h11"],
|
||||||
"certifi",
|
"httpx": ["anyio", "certifi", "httpcore", "idna", "sniffio"],
|
||||||
"h11"
|
|
||||||
],
|
|
||||||
"httpx": [
|
|
||||||
"anyio",
|
|
||||||
"certifi",
|
|
||||||
"httpcore",
|
|
||||||
"idna",
|
|
||||||
"sniffio"
|
|
||||||
],
|
|
||||||
"idna": [],
|
"idna": [],
|
||||||
"iniconfig": [],
|
"iniconfig": [],
|
||||||
"jinja2": [
|
"jinja2": ["markupsafe"],
|
||||||
"markupsafe"
|
"jsonpatch": ["jsonpointer"],
|
||||||
],
|
|
||||||
"jsonpatch": [
|
|
||||||
"jsonpointer"
|
|
||||||
],
|
|
||||||
"jsonpointer": [],
|
"jsonpointer": [],
|
||||||
"langchain": [
|
"langchain": [
|
||||||
"aiohttp",
|
"aiohttp",
|
||||||
|
@ -785,42 +740,21 @@
|
||||||
"pyyaml",
|
"pyyaml",
|
||||||
"tenacity"
|
"tenacity"
|
||||||
],
|
],
|
||||||
"langchain-openai": [
|
"langchain-openai": ["langchain-core", "openai", "tiktoken"],
|
||||||
"langchain-core",
|
"langchain-text-splitters": ["langchain-core"],
|
||||||
"openai",
|
"langsmith": ["orjson", "pydantic", "requests"],
|
||||||
"tiktoken"
|
|
||||||
],
|
|
||||||
"langchain-text-splitters": [
|
|
||||||
"langchain-core"
|
|
||||||
],
|
|
||||||
"langsmith": [
|
|
||||||
"orjson",
|
|
||||||
"pydantic",
|
|
||||||
"requests"
|
|
||||||
],
|
|
||||||
"lark": [],
|
"lark": [],
|
||||||
"lxml": [],
|
"lxml": [],
|
||||||
"mako": [
|
"mako": ["markupsafe"],
|
||||||
"markupsafe"
|
"markdown-it-py": ["mdurl"],
|
||||||
],
|
|
||||||
"markdown-it-py": [
|
|
||||||
"mdurl"
|
|
||||||
],
|
|
||||||
"markupsafe": [],
|
"markupsafe": [],
|
||||||
"marshmallow": [
|
"marshmallow": ["packaging"],
|
||||||
"packaging"
|
|
||||||
],
|
|
||||||
"mdurl": [],
|
"mdurl": [],
|
||||||
"msoffcrypto-tool": [
|
"msoffcrypto-tool": ["cryptography", "olefile"],
|
||||||
"cryptography",
|
|
||||||
"olefile"
|
|
||||||
],
|
|
||||||
"multidict": [],
|
"multidict": [],
|
||||||
"mypy-extensions": [],
|
"mypy-extensions": [],
|
||||||
"names": [],
|
"names": [],
|
||||||
"numexpr": [
|
"numexpr": ["numpy"],
|
||||||
"numpy"
|
|
||||||
],
|
|
||||||
"numpy": [],
|
"numpy": [],
|
||||||
"olefile": [],
|
"olefile": [],
|
||||||
"oletools": [
|
"oletools": [
|
||||||
|
@ -840,16 +774,11 @@
|
||||||
"tqdm",
|
"tqdm",
|
||||||
"typing-extensions"
|
"typing-extensions"
|
||||||
],
|
],
|
||||||
"openpyxl": [
|
"openpyxl": ["et-xmlfile"],
|
||||||
"et-xmlfile"
|
|
||||||
],
|
|
||||||
"orjson": [],
|
"orjson": [],
|
||||||
"packaging": [],
|
"packaging": [],
|
||||||
"pcodedmp": [],
|
"pcodedmp": [],
|
||||||
"pdfminer-six": [
|
"pdfminer-six": ["charset-normalizer", "cryptography"],
|
||||||
"charset-normalizer",
|
|
||||||
"cryptography"
|
|
||||||
],
|
|
||||||
"pillow": [],
|
"pillow": [],
|
||||||
"pip": [],
|
"pip": [],
|
||||||
"pip-tools": [
|
"pip-tools": [
|
||||||
|
@ -861,68 +790,31 @@
|
||||||
"wheel"
|
"wheel"
|
||||||
],
|
],
|
||||||
"pluggy": [],
|
"pluggy": [],
|
||||||
"prompt-toolkit": [
|
"prompt-toolkit": ["wcwidth"],
|
||||||
"wcwidth"
|
|
||||||
],
|
|
||||||
"pycparser": [],
|
"pycparser": [],
|
||||||
"pydantic": [
|
"pydantic": ["annotated-types", "pydantic-core", "typing-extensions"],
|
||||||
"annotated-types",
|
"pydantic-core": ["typing-extensions"],
|
||||||
"pydantic-core",
|
|
||||||
"typing-extensions"
|
|
||||||
],
|
|
||||||
"pydantic-core": [
|
|
||||||
"typing-extensions"
|
|
||||||
],
|
|
||||||
"pygments": [],
|
"pygments": [],
|
||||||
"pyparsing": [],
|
"pyparsing": [],
|
||||||
"pyperclip": [],
|
"pyperclip": [],
|
||||||
"pyproject-hooks": [],
|
"pyproject-hooks": [],
|
||||||
"pytest": [
|
"pytest": ["iniconfig", "packaging", "pluggy"],
|
||||||
"iniconfig",
|
"pytest-datadir": ["pytest"],
|
||||||
"packaging",
|
"python-frontmatter": ["pyyaml"],
|
||||||
"pluggy"
|
"python-pptx": ["lxml", "pillow", "xlsxwriter"],
|
||||||
],
|
|
||||||
"pytest-datadir": [
|
|
||||||
"pytest"
|
|
||||||
],
|
|
||||||
"python-frontmatter": [
|
|
||||||
"pyyaml"
|
|
||||||
],
|
|
||||||
"python-pptx": [
|
|
||||||
"lxml",
|
|
||||||
"pillow",
|
|
||||||
"xlsxwriter"
|
|
||||||
],
|
|
||||||
"pyyaml": [],
|
"pyyaml": [],
|
||||||
"red-black-tree-mod": [],
|
"red-black-tree-mod": [],
|
||||||
"regex": [],
|
"regex": [],
|
||||||
"requests": [
|
"requests": ["certifi", "charset-normalizer", "idna", "urllib3"],
|
||||||
"certifi",
|
|
||||||
"charset-normalizer",
|
|
||||||
"idna",
|
|
||||||
"urllib3"
|
|
||||||
],
|
|
||||||
"resolvelib": [],
|
"resolvelib": [],
|
||||||
"rich": [
|
"rich": ["markdown-it-py", "pygments"],
|
||||||
"markdown-it-py",
|
"rtfde": ["lark", "oletools"],
|
||||||
"pygments"
|
|
||||||
],
|
|
||||||
"rtfde": [
|
|
||||||
"lark",
|
|
||||||
"oletools"
|
|
||||||
],
|
|
||||||
"setuptools": [],
|
"setuptools": [],
|
||||||
"six": [],
|
"six": [],
|
||||||
"sniffio": [],
|
"sniffio": [],
|
||||||
"soupsieve": [],
|
"soupsieve": [],
|
||||||
"speechrecognition": [
|
"speechrecognition": ["requests", "typing-extensions"],
|
||||||
"requests",
|
"sqlalchemy": ["greenlet", "typing-extensions"],
|
||||||
"typing-extensions"
|
|
||||||
],
|
|
||||||
"sqlalchemy": [
|
|
||||||
"greenlet",
|
|
||||||
"typing-extensions"
|
|
||||||
],
|
|
||||||
"tenacity": [],
|
"tenacity": [],
|
||||||
"textract": [
|
"textract": [
|
||||||
"argcomplete",
|
"argcomplete",
|
||||||
|
@ -937,29 +829,20 @@
|
||||||
"speechrecognition",
|
"speechrecognition",
|
||||||
"xlrd"
|
"xlrd"
|
||||||
],
|
],
|
||||||
"tiktoken": [
|
"tiktoken": ["regex", "requests"],
|
||||||
"regex",
|
|
||||||
"requests"
|
|
||||||
],
|
|
||||||
"tqdm": [],
|
"tqdm": [],
|
||||||
"typing-extensions": [],
|
"typing-extensions": [],
|
||||||
"typing-inspect": [
|
"typing-inspect": ["mypy-extensions", "typing-extensions"],
|
||||||
"mypy-extensions",
|
|
||||||
"typing-extensions"
|
|
||||||
],
|
|
||||||
"tzlocal": [],
|
"tzlocal": [],
|
||||||
"urllib3": [],
|
"urllib3": [],
|
||||||
"wcwidth": [],
|
"wcwidth": [],
|
||||||
"wheel": [],
|
"wheel": [],
|
||||||
"xlrd": [],
|
"xlrd": [],
|
||||||
"xlsxwriter": [],
|
"xlsxwriter": [],
|
||||||
"yarl": [
|
"yarl": ["idna", "multidict"]
|
||||||
"idna",
|
|
||||||
"multidict"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"dev": {}
|
"dev": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"invalidationHash": "a27986828c1132303158dcfbfb7a64c0e01d82c698db3ac241b87bd30305aa83"
|
"invalidationHash": "a27986828c1132303158dcfbfb7a64c0e01d82c698db3ac241b87bd30305aa83"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue