feat: add poor mans version of clan vars
This commit is contained in:
parent
13ca5cadd4
commit
a5de9aea37
4 changed files with 41 additions and 2 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
set unstable := true
|
set unstable := true
|
||||||
set quiet := true
|
set quiet := true
|
||||||
|
|
||||||
base_path := invocation_directory() / "systems/x86_64-linux"
|
base_path := justfile_directory() + "/systems/x86_64-linux"
|
||||||
|
|
||||||
_default:
|
_default:
|
||||||
just --list vars
|
just --list vars
|
||||||
|
|
@ -25,7 +25,7 @@ edit machine:
|
||||||
|
|
||||||
[doc('Get var by {key} from {machine}')]
|
[doc('Get var by {key} from {machine}')]
|
||||||
get machine key:
|
get machine key:
|
||||||
sops decrypt {{ base_path }}/{{ machine }}/secrets.yml | yq ".$(echo "{{ key }}" | sed -E 's/\//./g')"
|
sops decrypt {{ base_path }}/{{ machine }}/secrets.yml | yq ".$(echo "{{ key }}" | sed -E 's/\//./g') // \"\""
|
||||||
|
|
||||||
[doc('Remove var by {key} for {machine}')]
|
[doc('Remove var by {key} for {machine}')]
|
||||||
remove machine key:
|
remove machine key:
|
||||||
|
|
@ -36,6 +36,20 @@ remove machine key:
|
||||||
|
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|
||||||
|
[doc('Remove var by {key} for {machine}')]
|
||||||
|
[script]
|
||||||
|
generate machine:
|
||||||
|
for key in $(nix eval --apply 'builtins.attrNames' --json ..#nixosConfigurations.{{ machine }}.config.sops.secrets | jq -r '.[]'); do
|
||||||
|
# Skip if there's no script
|
||||||
|
[ -f "{{ justfile_directory() }}/script/$key" ] || continue
|
||||||
|
|
||||||
|
# Skip if we already have a value
|
||||||
|
[ $(just vars get {{ machine }} "$key" | jq -r) ] && continue
|
||||||
|
|
||||||
|
echo "Executing script for $key"
|
||||||
|
just vars set {{ machine }} "$key" "$(cd -- "$(dirname "{{ justfile_directory() }}/script/$key")" && source "./$(basename $key)")"
|
||||||
|
done
|
||||||
|
|
||||||
[script]
|
[script]
|
||||||
check:
|
check:
|
||||||
cd ..
|
cd ..
|
||||||
|
|
|
||||||
19
script/qbittorrent/hash.py
Normal file
19
script/qbittorrent/hash.py
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
import base64
|
||||||
|
import hashlib
|
||||||
|
import sys
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
password = sys.argv[1]
|
||||||
|
salt = uuid.uuid4()
|
||||||
|
salt_bytes = salt.bytes
|
||||||
|
|
||||||
|
password = str.encode(password)
|
||||||
|
hashed_password = hashlib.pbkdf2_hmac("sha512", password, salt_bytes, 100000, dklen=64)
|
||||||
|
b64_salt = base64.b64encode(salt_bytes).decode("utf-8")
|
||||||
|
b64_password = base64.b64encode(hashed_password).decode("utf-8")
|
||||||
|
password_string = "@ByteArray({salt}:{password})".format(
|
||||||
|
salt=b64_salt, password=b64_password
|
||||||
|
)
|
||||||
|
print(password_string)
|
||||||
3
script/qbittorrent/password
Normal file
3
script/qbittorrent/password
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pwgen -s 128 1
|
||||||
3
script/qbittorrent/password_hash
Normal file
3
script/qbittorrent/password_hash
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
python ./hash.py "$(just vars get ulmo qbittorrent/password | jq -r)"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue