1{
2 lib,
3 fetchFromGitHub,
4 buildDartApplication,
5 kdePackages,
6}:
7
8let
9 version = "1.8.1";
10
11 src = fetchFromGitHub {
12 owner = "Merrit";
13 repo = "vscode-runner";
14 rev = "v${version}";
15 hash = "sha256-ZzAQeSUFbHp2Bwiwsq8kgQqqNlr6hfXuz7PNAOSiBhU=";
16 };
17in
18buildDartApplication {
19 pname = "vscode-runner";
20 inherit version src;
21
22 vendorHash = "sha256-jS4jH00uxZIX81sZQIi+s42ofmXpD4/tPMRV2heaM2U=";
23
24 pubspecLock = lib.importJSON ./pubspec.lock.json;
25
26 dartEntryPoints = {
27 "bin/vscode_runner" = "bin/vscode_runner.dart";
28 };
29
30 postInstall = ''
31 substituteInPlace ./package/codes.merritt.vscode_runner.service \
32 --replace-fail "Exec=" "Exec=$out/bin/vscode_runner"
33 install -D \
34 ./package/codes.merritt.vscode_runner.service \
35 $out/share/dbus-1/services/codes.merritt.vscode_runner.service
36
37 install -D \
38 ./package/plasma-runner-vscode_runner.desktop \
39 $out/share/krunner/dbusplugins/plasma-runner-vscode_runner.desktop
40 '';
41
42 passthru.updateScript = ./update.sh;
43
44 meta = {
45 description = "KRunner plugin for quickly opening recent VSCode workspaces";
46 homepage = "https://github.com/Merrit/vscode-runner";
47 changelog = "https://github.com/Merrit/vscode-runner/blob/${src.rev}/CHANGELOG.md";
48 license = lib.licenses.gpl3Only;
49 sourceProvenance = [ lib.sourceTypes.fromSource ];
50 maintainers = [ lib.maintainers.pinage404 ];
51 mainProgram = "vscode_runner";
52 inherit (kdePackages.krunner.meta) platforms;
53 };
54}