From 4fd6205b881d40d0316503db2f5535bda943da54 Mon Sep 17 00:00:00 2001 From: Riley Apeldoorn Date: Sat, 2 Sep 2023 23:26:09 +0200 Subject: [PATCH] Add deemix + config --- flake.nix | 8 ++++---- secret/arl.age | Bin 0 -> 983 bytes secret/backblaze.age | Bin 820 -> 904 bytes secrets.nix | 2 ++ shared/core/nix.nix | 1 + shared/home/programs.nix | 5 ++++- shared/overlay.nix | 3 +++ shared/patch/dont_write_arl.patch | 18 ++++++++++++++++++ shared/secrets.nix | 5 +++++ system/lime/core.nix | 3 +++ 10 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 secret/arl.age create mode 100644 shared/patch/dont_write_arl.patch diff --git a/flake.nix b/flake.nix index f579618..4b3103c 100644 --- a/flake.nix +++ b/flake.nix @@ -13,15 +13,15 @@ oxalica.url = github:oxalica/rust-overlay; }; - outputs = args@{ home-manager, nixpkgs, agenix, nixos-hardware, oxalica, ... }: with nixpkgs; { + outputs = args@{ home-manager, nixpkgs, agenix, nixos-hardware, oxalica, ... }: with nixpkgs; rec { # Configurations for NixOS machines. nixosConfigurations = - let mkUserConfig = path: { + let mkUserConfig = path: { config, ... }: { imports = [ home-manager.nixosModules.home-manager ]; config = { home-manager.users."riley" = (import "${path}/home.nix"); - home-manager.extraSpecialArgs = args; + home-manager.extraSpecialArgs = args // { age = config.age; }; home-manager.useGlobalPkgs = true; }; }; @@ -66,7 +66,7 @@ # Configurations for non-NixOS machines. homeConfigurations = with home-manager.lib; { "dev-lt-63" = homeManagerConfiguration { - extraSpecialArgs = args; + extraSpecialArgs = args // { age = args.config.age; }; pkgs = import nixpkgs { system = "x86_64-linux"; }; modules = [ ./system/dev-lt-63/home.nix diff --git a/secret/arl.age b/secret/arl.age new file mode 100644 index 0000000000000000000000000000000000000000..71f92bef2094f118ecaac40f5542ac2a23b529b3 GIT binary patch literal 983 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 diff --git a/secrets.nix b/secrets.nix index 60f0b9f..5ffa2da 100644 --- a/secrets.nix +++ b/secrets.nix @@ -13,4 +13,6 @@ let strawberry = [ in { # Secrets for backup cloud storage provider "secret/backblaze.age".publicKeys = all; + # The ARL for my deezer account + "secret/arl.age".publicKeys = all; } \ No newline at end of file diff --git a/shared/core/nix.nix b/shared/core/nix.nix index 7ff1fe6..b2ae4d2 100644 --- a/shared/core/nix.nix +++ b/shared/core/nix.nix @@ -9,6 +9,7 @@ in with lib; { # TODO: Add strawberry as a build machine here config = { nixpkgs.config.allowUnfree = true; + nixpkgs.overlays = [ (import ../overlay.nix) ]; nix.extraOptions = '' experimental-features = nix-command flakes ''; diff --git a/shared/home/programs.nix b/shared/home/programs.nix index 7306ad0..a740298 100644 --- a/shared/home/programs.nix +++ b/shared/home/programs.nix @@ -3,13 +3,14 @@ # needed to do extra configuration for example, consider putting # the affected programs in their own modules. -{ pkgs, ... }: { +{ pkgs, age, ... }: { home.packages = (with pkgs; [ eva hyperfine du-dust pijul + python311Packages.deemix ]) ++ (import ../env.nix pkgs); # CLI for accessing my passwords @@ -44,4 +45,6 @@ }; }; + xdg.configFile."deemix/.arl".source = age.secrets."arl".path; + } diff --git a/shared/overlay.nix b/shared/overlay.nix index eaefb17..0e737b0 100644 --- a/shared/overlay.nix +++ b/shared/overlay.nix @@ -10,4 +10,7 @@ with (import ./lib.nix final); { prev.tor-browser-bundle-bin.override { useHardenedMalloc = false; }; + python311Packages.deemix = prev.python311Packages.deemix.overrideAttrs (old: { + patches = [./patch/dont_write_arl.patch]; + }); } diff --git a/shared/patch/dont_write_arl.patch b/shared/patch/dont_write_arl.patch new file mode 100644 index 0000000..d8b336c --- /dev/null +++ b/shared/patch/dont_write_arl.patch @@ -0,0 +1,18 @@ +diff --git a/deemix/__main__.py b/deemix/__main__.py +index 39a878a..74acf8d 100644 +--- a/deemix/__main__.py ++++ b/deemix/__main__.py +@@ -47,9 +47,10 @@ def download(url, bitrate, portable, path): + with open(configFolder / '.arl', 'r', encoding="utf-8") as f: + arl = f.readline().rstrip("\n").strip() + if not dz.login_via_arl(arl): arl = requestValidArl() +- else: arl = requestValidArl() +- with open(configFolder / '.arl', 'w', encoding="utf-8") as f: +- f.write(arl) ++ else: ++ arl = requestValidArl() ++ with open(configFolder / '.arl', 'w', encoding="utf-8") as f: ++ f.write(arl) + + plugins = {} + if Spotify: diff --git a/shared/secrets.nix b/shared/secrets.nix index 9d10595..7d89731 100644 --- a/shared/secrets.nix +++ b/shared/secrets.nix @@ -1,5 +1,10 @@ { age.secrets = { "backblaze".file = ../secret/backblaze.age; + "arl" = { + file = ../secret/arl.age; + owner = "riley"; + mode = "777"; # Fuck it we ball + }; }; } \ No newline at end of file diff --git a/system/lime/core.nix b/system/lime/core.nix index 90e01ee..991287d 100644 --- a/system/lime/core.nix +++ b/system/lime/core.nix @@ -26,5 +26,8 @@ home-manager.users."riley".home.stateVersion = "22.11"; + programs.adb.enable = true; + users.users."riley".extraGroups = ["adbusers"]; + }