From 6e61227199263919fa1dafe5ef1d976718053eac Mon Sep 17 00:00:00 2001 From: Izorkin Date: Tue, 12 Dec 2023 17:43:48 +0300 Subject: [PATCH] peertube: split peertube-cli utility --- nixos/modules/services/web-apps/peertube.nix | 8 +++----- pkgs/servers/peertube/default.nix | 10 +++++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/nixos/modules/services/web-apps/peertube.nix b/nixos/modules/services/web-apps/peertube.nix index 0093d2aff9c8..76b700398131 100644 --- a/nixos/modules/services/web-apps/peertube.nix +++ b/nixos/modules/services/web-apps/peertube.nix @@ -61,10 +61,6 @@ let eval -- "\$@" ''; - peertubeCli = pkgs.writeShellScriptBin "peertube-cli" '' - node ~/apps/peertube-cli/dist/peertube.js $@ - ''; - nginxCommonHeaders = lib.optionalString cfg.enableWebHttps '' add_header Strict-Transport-Security 'max-age=63072000; includeSubDomains'; '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 '' @@ -330,6 +326,8 @@ in { } ]; + environment.systemPackages = [ cfg.package.cli ]; + services.peertube.settings = lib.mkMerge [ { listen = { @@ -849,7 +847,7 @@ in { home = cfg.package; }; }) - (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ peertubeEnv peertubeCli pkgs.nodejs_18 pkgs.yarn pkgs.ffmpeg-headless ]) + (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ peertubeEnv pkgs.nodejs_18 pkgs.yarn pkgs.ffmpeg-headless ]) (lib.mkIf cfg.redis.enableUnixSocket {${config.services.peertube.user}.extraGroups = [ "redis-peertube" ];}) ]; diff --git a/pkgs/servers/peertube/default.nix b/pkgs/servers/peertube/default.nix index ca644d153486..d06a3a49b981 100644 --- a/pkgs/servers/peertube/default.nix +++ b/pkgs/servers/peertube/default.nix @@ -69,6 +69,8 @@ stdenv.mkDerivation rec { hash = "sha256-xsB71bnaPn/9/f1KHyU3TTwx+Q+1dLjWmNK2aVJgoRY="; }; + outputs = [ "out" "cli" ]; + nativeBuildInputs = [ brotli prefetch-yarn-deps jq which yarn ]; buildInputs = [ nodejs ]; @@ -107,7 +109,7 @@ stdenv.mkDerivation rec { # Build PeerTube client npm run build:client - # Build PeerTube tools + # Build PeerTube cli npm run build:peertube-cli patchShebangs ~/apps/peertube-cli/dist/peertube.js @@ -128,8 +130,6 @@ stdenv.mkDerivation rec { mv ~/node_modules $out/node_modules mkdir $out/client mv ~/client/{dist,node_modules,package.json,yarn.lock} $out/client - mkdir -p $out/apps/peertube-cli - mv ~/apps/peertube-cli/{dist,node_modules,package.json,yarn.lock} $out/apps/peertube-cli mkdir -p $out/packages/{core-utils,ffmpeg,models,node-utils,server-commands,typescript-utils} mv ~/packages/core-utils/{dist,package.json} $out/packages/core-utils mv ~/packages/ffmpeg/{dist,package.json} $out/packages/ffmpeg @@ -139,6 +139,10 @@ stdenv.mkDerivation rec { mv ~/packages/typescript-utils/{dist,package.json} $out/packages/typescript-utils mv ~/{config,support,CREDITS.md,FAQ.md,LICENSE,README.md,package.json,yarn.lock} $out + mkdir -p $cli/bin + mv ~/apps/peertube-cli/{dist,node_modules,package.json,yarn.lock} $cli + ln -s $cli/dist/peertube.js $cli/bin/peertube-cli + # Create static gzip and brotli files find $out/client/dist -type f -regextype posix-extended -iregex '.*\.(css|eot|html|js|json|svg|webmanifest|xlf)' | while read file; do gzip -9 -n -c $file > $file.gz