Merge remote-tracking branch 'lass/master'

This commit is contained in:
makefu 2022-01-28 23:18:53 +01:00
commit 554ded629c
No known key found for this signature in database
GPG Key ID: 36F7711F3FC0F225
4 changed files with 119 additions and 65 deletions

View File

@ -123,6 +123,7 @@ in
"zaatar.kmein.r"
"grocy.kmein.r"
"moodle.kmein.r"
"radio.kmein.r"
];
tinc.pubkey = ''
-----BEGIN RSA PUBLIC KEY-----

View File

@ -1,114 +1,157 @@
{ writers }:
writers.writePython3Bin "krebsdance" {} ''
writers.writePython3Bin "krebsdance" { flakeIgnore = [ "E501" ]; } ''
import argparse
import random
import itertools
claws = [
dict(
up='(\\/)',
down='(/\\)',
left='(\\\\)',
right='(//)',
up="(\\/)",
down="(/\\)",
left="(\\\\)",
right="(//)",
),
dict(
up='(V)',
down='(A)',
left='>)=',
right='=(<',
up="(V)",
down="(A)",
left=">)=",
right="=(<",
),
dict(
up='(U)',
down='(n)',
left=')==',
right='==(',
up="(U)",
down="(n)",
left=")==",
right="==(",
),
]
eyes = [
'°',
'*',
'^',
'ö',
'o',
'O',
'X',
'x',
'U',
'u',
"°",
"*",
"^",
"ö",
"o",
"O",
"X",
"x",
"U",
"u",
]
bodies = [
dict(
left='(',
right=')',
left="(",
right=")",
),
dict(
left='{',
right='}',
left="{",
right="}",
),
dict(
left='[',
right=']',
left="[",
right="]",
),
dict(
left='<',
right='>',
left="<",
right=">",
),
dict(
left='|',
right='|',
left="|",
right="|",
),
]
mouths = [
',,,,',
',mm,',
'_mm_',
'-mm-',
';;;;',
';mm;',
':mm:',
'::::',
':ww:',
':<>:',
",,,,",
",mm,",
"_mm_",
"-mm-",
";;;;",
";mm;",
":mm:",
"::::",
":ww:",
":<>:",
]
def all_krebses():
for mouth, body, eye, claw in itertools.product(mouths, bodies, eyes, claws):
yield f'{claw["up"]} {body["left"]}{eye}{mouth}{eye}{body["right"]} {claw["up"]}'
def escape_graph(text):
return text.replace("\\", "\\\\")
def krebs_graph() -> str:
return "\n".join(itertools.chain(
["digraph {"],
[escape_graph(f'"{krebs}"->"{generate(seed=krebs)}"') for krebs in all_krebses()],
"}",
))
def generate(*, seed: str, dancing: bool = False) -> str:
if seed:
random.seed(seed)
clawstyle = random.choice(claws)
body = random.choice(bodies)
eye = random.choice(eyes)
mouth = random.choice(mouths)
if dancing:
return "\n".join(
[
f'{clawstyle["down"]} {body["left"]}{eye}{mouth}{eye}{body["right"]}{clawstyle["up"]}',
f'{clawstyle["left"]}{body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["right"]}',
f'{clawstyle["right"]} {body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["left"]}',
f'{clawstyle["down"]}{body["left"]}{eye}{mouth}{eye}{body["right"]}{clawstyle["down"]}',
]
)
else:
return f'{clawstyle["up"]} {body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["up"]}'
def fixpoints():
for krebs in all_krebses():
if generate(seed=krebs) == krebs:
yield krebs
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'seed',
nargs='?',
help='random seed to use for generating the krebs variant',
"seed",
nargs="?",
help="random seed to use for generating the krebs variant",
)
parser.add_argument(
'--dance', '-d',
dest='dance',
help='if the krebs should dance',
"--dance",
"-d",
dest="dance",
help="if the krebs should dance",
default=False,
action='store_true',
action="store_true",
)
parser.add_argument(
"--mode",
"-m",
dest="mode",
choices=["graphviz", "plain"],
default="plain",
)
args = parser.parse_args()
if args.seed:
random.seed(args.seed)
clawstyle = random.choice(claws)
body = random.choice(bodies)
eye = random.choice(eyes)
mouth = random.choice(mouths)
if args.dance:
print(f'{clawstyle["down"]} {body["left"]}{eye}{mouth}{eye}{body["right"]}{clawstyle["up"]}') # noqa
print(f' {clawstyle["left"]}{body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["right"]}') # noqa
print(f'{clawstyle["right"]} {body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["left"]}') # noqa
print(f' {clawstyle["down"]}{body["left"]}{eye}{mouth}{eye}{body["right"]}{clawstyle["down"]}') # noqa
else:
print(f'{clawstyle["up"]} {body["left"]}{eye}{mouth}{eye}{body["right"]} {clawstyle["up"]}') # noqa
if args.mode == "plain":
print(generate(seed=args.seed, dancing=args.dance))
elif args.mode == "graphviz":
print(krebs_graph())
if __name__ == '__main__':
if __name__ == "__main__":
main()
''

View File

@ -26,6 +26,7 @@ with import <stockholm/lib>;
<stockholm/lass/2configs/sync/sync.nix>
<stockholm/lass/2configs/sync/decsync.nix>
<stockholm/lass/2configs/sync/weechat.nix>
<stockholm/lass/2configs/sync/the_playlist.nix>
#<stockholm/lass/2configs/c-base.nix>
<stockholm/lass/2configs/br.nix>
<stockholm/lass/2configs/ableton.nix>

View File

@ -0,0 +1,9 @@
{
services.syncthing.folders.the_playlist = {
path = "/home/lass/tmp/the_playlist";
devices = [ "mors" "phone" "prism" ];
};
lass.acl."/home/lass/tmp/the_playlist"."u:syncthing:X".parents = true;
lass.acl."/home/lass/tmp/the_playlist"."u:syncthing:rwX" = {};
lass.acl."/home/lass/tmp/the_playlist"."u:lass:rwX" = {};
}