diff --git a/README.md b/README.md deleted file mode 100644 index 64e9b7e..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Leitstelle config management - -To deploy, run `./deploy.sh switch `, where the host is nuc or bemmer. diff --git a/common/default.nix b/common/default.nix index 73f681d..f8638ea 100644 --- a/common/default.nix +++ b/common/default.nix @@ -38,7 +38,6 @@ vim wget jq - lsof ]; programs.bash.shellAliases = { diff --git a/deploy.sh b/deploy.sh index 46240ad..065eb2b 100755 --- a/deploy.sh +++ b/deploy.sh @@ -6,7 +6,7 @@ cd "$(dirname "$0")" if ! command -v nix-build &> /dev/null then echo "Nix installation could not be found. Please follow the instructions linked below." - echo "https://nixos.org/manual/nix/unstable/installation/installing-binary.html" + echo "https://nixos.org/manual/nix/unstable/installation/installing-binary.html#multi-user-installation" exit fi @@ -24,12 +24,13 @@ fi echo "deploying $host to $target" sleep 1 +tmp=$(mktemp -d) +trap 'rm -rf "$tmp"' EXIT +sources="$tmp/sources" +cp -r $(nix-build nix/sources-dir.nix --no-out-link) $tmp/sources + set -x -system_drv=$( - nix-instantiate "" -A config.system.build.toplevel \ - -I "$(nix-build nix/sources-dir.nix --no-out-link)" \ - -I "nixos-config=$PWD/hosts/$host/configuration.nix" -) +system_drv=$(nix-instantiate "" -A config.system.build.toplevel -I $sources -I "nixos-config=$PWD/hosts/$host/configuration.nix") nix-copy-closure --to $target $system_drv system=$(ssh $target "nix-store --realise $system_drv") ssh $target "sudo nix-env -p /nix/var/nix/profiles/system -i $system && sudo /nix/var/nix/profiles/system/bin/switch-to-configuration $mode" diff --git a/modules/spotifyd.nix b/modules/spotifyd.nix deleted file mode 100644 index 2e72596..0000000 --- a/modules/spotifyd.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let - cfg = config.services.spotifyd; - toml = pkgs.formats.toml {}; - warnConfig = - if cfg.config != "" - then lib.trace "Using the stringly typed .config attribute is discouraged. Use the TOML typed .settings attribute instead." - else id; - spotifydConf = - if cfg.settings != {} - then toml.generate "spotify.conf" cfg.settings - else warnConfig (pkgs.writeText "spotifyd.conf" cfg.config); -in -{ - options = { - services.spotifyd = { - enable = mkEnableOption "spotifyd, a Spotify playing daemon"; - - config = mkOption { - default = ""; - type = types.lines; - description = '' - (Deprecated) Configuration for Spotifyd. For syntax and directives, see - . - ''; - }; - - settings = mkOption { - default = {}; - type = toml.type; - example = { global.bitrate = 320; }; - description = '' - Configuration for Spotifyd. For syntax and directives, see - . - ''; - }; - }; - }; - - config = mkIf cfg.enable { - assertions = [ - { - assertion = cfg.config == "" || cfg.settings == {}; - message = "At most one of the .config attribute and the .settings attribute may be set"; - } - ]; - - systemd.services.spotifyd = { - wantedBy = [ "multi-user.target" ]; - after = [ "network-online.target" "sound.target" ]; - description = "spotifyd, a Spotify playing daemon"; - environment.SHELL = "/bin/sh"; - serviceConfig = { - ExecStart = "${pkgs.spotifyd}/bin/spotifyd --no-daemon --config-path ${spotifydConf}"; - Restart = "always"; - RestartSec = 12; - DynamicUser = true; - CacheDirectory = "spotifyd"; - SupplementaryGroups = ["audio"]; - }; - }; - }; - - meta.maintainers = [ maintainers.anderslundstedt ]; -} \ No newline at end of file diff --git a/nix/sources-dir.nix b/nix/sources-dir.nix index e5fa9bf..223fc00 100644 --- a/nix/sources-dir.nix +++ b/nix/sources-dir.nix @@ -9,6 +9,6 @@ in lib.concatStringsSep "\n" ([ "mkdir $out" ] - ++ lib.mapAttrsToList (name: source: "cp -r --reflink=auto ${source.outPath} $out/${name}") sources + ++ lib.mapAttrsToList (name: source: "ln -s ${source.outPath} $out/${name}") sources ) ) diff --git a/nix/sources.json b/nix/sources.json index 2b7fc09..f739c0f 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -5,10 +5,10 @@ "homepage": "https://github.com/nmattia/niv", "owner": "nmattia", "repo": "niv", - "rev": "5830a4dd348d77e39a0f3c4c762ff2663b602d4c", - "sha256": "1d3lsrqvci4qz2hwjrcnd8h5vfkg8aypq3sjd4g3izbc8frwz5sm", + "rev": "e0ca65c81a2d7a4d82a189f1e23a48d59ad42070", + "sha256": "1pq9nh1d8nn3xvbdny8fafzw87mj7gsmp6pxkdl65w2g18rmcmzx", "type": "tarball", - "url": "https://github.com/nmattia/niv/archive/5830a4dd348d77e39a0f3c4c762ff2663b602d4c.tar.gz", + "url": "https://github.com/nmattia/niv/archive/e0ca65c81a2d7a4d82a189f1e23a48d59ad42070.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "nixos-hardware": { @@ -17,10 +17,10 @@ "homepage": "", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "2a7063461c3751d83869a2a0a8ebc59e34bec5b2", - "sha256": "173ms858wni43l2p7vqjarm2bnjdhpii0zgn46750nyfff1f2184", + "rev": "3aabf78bfcae62f5f99474f2ebbbe418f1c6e54f", + "sha256": "10g240brgjz7qi20adwajxwqrqb5zxc79ii1mc20fasgqlf2a8sx", "type": "tarball", - "url": "https://github.com/NixOS/nixos-hardware/archive/2a7063461c3751d83869a2a0a8ebc59e34bec5b2.tar.gz", + "url": "https://github.com/NixOS/nixos-hardware/archive/3aabf78bfcae62f5f99474f2ebbbe418f1c6e54f.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "nixpkgs": { @@ -29,10 +29,10 @@ "homepage": "", "owner": "NixOS", "repo": "nixpkgs", - "rev": "581d2d6c9cd5c289002203581d8aa0861963a933", - "sha256": "1qpmqj075pppa6ihmkacf491lhq7rpxlcm8cm6h18raardsr3irr", + "rev": "34ad3ffe08adfca17fcb4e4a47bb5f3b113687be", + "sha256": "02li241rz5668nfyp88zfjilxf0mr9yansa93fbl38hjwkhf3ix6", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/581d2d6c9cd5c289002203581d8aa0861963a933.tar.gz", + "url": "https://github.com/NixOS/nixpkgs/archive/34ad3ffe08adfca17fcb4e4a47bb5f3b113687be.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } } diff --git a/shared-services/spotifyd.nix b/shared-services/spotifyd.nix index c3ce6c4..801c835 100644 --- a/shared-services/spotifyd.nix +++ b/shared-services/spotifyd.nix @@ -1,36 +1,11 @@ -{ config, pkgs, ... }: +{ config, ... }: { - disabledModules = [ "services/audio/spotifyd.nix" ]; - imports = [ ../modules/spotifyd.nix ]; - - services.spotifyd = { enable = true; - settings.global = { - bitrate = 320; - zeroconf_port = 18572; - }; + settings.zeroconf_port = 18572; }; - networking.firewall.allowedTCPPorts = [ 4070 config.services.spotifyd.settings.global.zeroconf_port ]; + networking.firewall.allowedTCPPorts = [ 4070 config.services.spotifyd.settings.zeroconf_port ]; networking.firewall.allowedUDPPorts = [ 5353 ]; - - systemd.services.restart-spotifyd = { - serviceConfig.Type = "oneshot"; - script = '' - ${pkgs.systemd}/bin/systemctl restart spotifyd.service - ${pkgs.systemd}/bin/systemctl restart pulseaudio.service - ''; - }; - - systemd.timers.restart-spotifyd = { - wantedBy = [ "timers.target" ]; - partOf = [ "restart-spotifyd.service" ]; - timerConfig = { - OnCalendar = "*-*-* 07:00:00"; - Persistent = "True"; - Unit = "restart-spotifyd.service"; - }; - }; }