Merge pull request #300051 from HannesGitH/add-vdhcoapp
This commit is contained in:
commit
31c03c01a2
4 changed files with 175 additions and 0 deletions
|
@ -7806,6 +7806,12 @@
|
||||||
github = "HannahMR";
|
github = "HannahMR";
|
||||||
githubId = 9088467;
|
githubId = 9088467;
|
||||||
};
|
};
|
||||||
|
hannesgith = {
|
||||||
|
email = "nix@h-h.win";
|
||||||
|
github = "hannesgith";
|
||||||
|
githubId = 33062605;
|
||||||
|
name = "Hannes Hattenbach";
|
||||||
|
};
|
||||||
hansjoergschurr = {
|
hansjoergschurr = {
|
||||||
email = "commits@schurr.at";
|
email = "commits@schurr.at";
|
||||||
github = "hansjoergschurr";
|
github = "hansjoergschurr";
|
||||||
|
|
46
pkgs/by-name/vd/vdhcoapp/ffmpeg-filepicker.patch
Normal file
46
pkgs/by-name/vd/vdhcoapp/ffmpeg-filepicker.patch
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
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")) {
|
40
pkgs/by-name/vd/vdhcoapp/filepicker.nix
Normal file
40
pkgs/by-name/vd/vdhcoapp/filepicker.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{ 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
pkgs/by-name/vd/vdhcoapp/package.nix
Normal file
83
pkgs/by-name/vd/vdhcoapp/package.nix
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
{ 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";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue