Commit 65380e03 authored by Hannes's avatar Hannes
Browse files

vdhcoapp: init at 2.0.19

parent 2b654f7f
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
diff --git a/src/converter.js b/src/converter.js
index af7b4c3..20da407 100644
--- a/src/converter.js
+++ b/src/converter.js
@@ -1,4 +1,4 @@
-import open from 'open';
+const open = import('open');
 
 const os = require("os");
 const path = require('path');
@@ -9,9 +9,9 @@ const rpc = require('./weh-rpc');
 
 const exec_dir = path.dirname(process.execPath);
 
-const ffmpeg = findExecutableFullPath("ffmpeg", exec_dir);
-const ffprobe = findExecutableFullPath("ffprobe", exec_dir);
-const filepicker = findExecutableFullPath("filepicker", exec_dir);
+const ffmpeg = "@ffmpeg@/bin/ffmpeg";
+const ffprobe = "@ffmpeg@/bin/ffprobe";
+const filepicker = "@filepicker@";
 
 if (!fileExistsSync(ffmpeg)) {
   logger.error("ffmpeg not found. Install ffmpeg and make sure it's in your path.");
diff --git a/src/main.js b/src/main.js
index 47b92de..e2e9402 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,4 +1,4 @@
-const config = require('config.json');
+const config = require('./config.json');
 const converter = require('./converter');
 const os = require("os");
 
diff --git a/src/native-autoinstall.js b/src/native-autoinstall.js
index 556a22b..c729568 100644
--- a/src/native-autoinstall.js
+++ b/src/native-autoinstall.js
@@ -1,7 +1,7 @@
 const os = require("os");
 const path = require("path");
 const { spawn, exec } = require('child_process');
-const config = require('config.json');
+const config = require('./config.json');
 
 let fs;
 if (process.versions.node.startsWith("10")) {
 No newline at end of file
+40 −0
Original line number Diff line number Diff line
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, atk
, gtk3
, glib
}:

rustPlatform.buildRustPackage rec {
  pname = "filepicker";
  version = "1.0.1";

  src = fetchFromGitHub {
    owner = "paulrouget";
    repo = "static-filepicker";
    rev = "v${version}";
    hash = "sha256-7sRzf3SA9RSBf4O36olXgka8c6Bufdb0qsuTofVe55s=";
  };

  cargoHash = "sha256-aal7ppFkCpNc+QTS4Qklsb9WfJ65QqG6p1eOskiX+/Q=";

  buildInputs = [
    atk
    gtk3
    glib
  ];

  nativeBuildInputs = [
    pkg-config
  ];

  meta = with lib; {
    description = "File picker used by VDHCoApp";
    homepage = "https://github.com/paulrouget/static-filepicker";
    license = licenses.gpl2;
    mainProgram = "filepicker";
    maintainers = with maintainers; [ hannesgith ];
  };
}
+83 −0
Original line number Diff line number Diff line
{ lib
, fetchFromGitHub
, buildNpmPackage
, nodejs
, ffmpeg
, callPackage
, substituteAll
, makeWrapper
, toml2json
, jq
}:
buildNpmPackage rec {
  pname = "vdhcoapp";
  version = "2.0.19";

  src = fetchFromGitHub {
    owner = "aclap-dev";
    repo = "vdhcoapp";
    rev = "v${version}";
    hash = "sha256-8xeZvqpRq71aShVogiwlVD3gQoPGseNOmz5E3KbsZxU=";
  };

  sourceRoot = "${src.name}/app";
  npmDepsHash = "sha256-E032U2XZdyTER6ROkBosOTn7bweDXHl8voC3BQEz8Wg=";
  dontNpmBuild = true;

  nativeBuildInputs = [
    makeWrapper
    toml2json
    jq
  ];

  patches = [
    (substituteAll {
      src = ./ffmpeg-filepicker.patch;
      inherit ffmpeg;
      filepicker = lib.getExe (callPackage ./filepicker.nix {});
    })
  ];

  postPatch = ''
    # Cannot use patch, setting placeholder here
    substituteInPlace src/native-autoinstall.js \
      --replace process.execPath "\"${placeholder "out"}/bin/vdhcoapp\""
  '';

  preBuild = ''
    toml2json --pretty ../config.toml > src/config.json
  '';

  installPhase = ''
    runHook preInstall
    mkdir -p $out/opt/vdhcoapp
    cp -r . "$out/opt/vdhcoapp"

    makeWrapper ${nodejs}/bin/node $out/bin/vdhcoapp \
      --add-flags $out/opt/vdhcoapp/src/main.js

    generateManifest() {
      type=$1
      outputFolder=$2
      mkdir -p $outputFolder
      manifestName=$(jq -r '.meta.id' src/config.json).json
      jq '.store.'$type'.manifest * (.meta | with_entries(select (.key == "description")) * {"name": .id}) * {"path" : "${placeholder "out"}/bin/vdhcoapp"}' src/config.json > $outputFolder/$manifestName
    }

    generateManifest google $out/etc/opt/chrome/native-messaging-hosts
    generateManifest google $out/etc/chromium/native-messaging-hosts
    generateManifest mozilla $out/lib/mozilla/native-messaging-hosts
    generateManifest google $out/etc/opt/edge/native-messaging-hosts

    runHook postInstall
  '';

  meta = with lib; {
    description = "Companion application for the Video DownloadHelper browser add-on";
    homepage = "https://www.downloadhelper.net/";
    license = licenses.gpl2;
    platforms = lib.platforms.linux;
    maintainers = with maintainers; [ hannesgith ];
    mainProgram = "vdhcoapp";
  };
}