Package the frontend in electron
This commit is contained in:
parent
f8bfec63d6
commit
7673a9edcc
|
@ -0,0 +1,80 @@
|
|||
{ stdenv, fetchgit
|
||||
, makeWrapper, makeDesktopItem, mkYarnPackage, callPackage
|
||||
, electron_12
|
||||
}:
|
||||
|
||||
let
|
||||
executableName = "vikunja-desktop";
|
||||
version = "unstable";
|
||||
src = fetchgit {
|
||||
url = "https://kolaente.dev/vikunja/desktop.git";
|
||||
rev = "de323087956a8a1978fa52fe5603c0fdc4ba2406";
|
||||
sha256 = "0000000000000000000000000000000000000000000000000000";
|
||||
};
|
||||
electron = electron_12;
|
||||
vikunja-frontend = callPackage ../vikunja-frontend {};
|
||||
|
||||
in mkYarnPackage rec {
|
||||
name = "vikunja-desktop-${version}";
|
||||
inherit version src;
|
||||
|
||||
# packageJSON = ./vikunja-desktop-package.json;
|
||||
# yarnNix = ./vikunja-desktop-yarndeps.nix;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
# resources
|
||||
mkdir -p "$out/share/vikunja"
|
||||
ln -s '${vikunja-frontend}' "$out/share/vikunja/webapp"
|
||||
cp -r './deps/vikunja-desktop' "$out/share/vikunja/electron"
|
||||
cp -r './deps/vikunja-desktop/res/img' "$out/share/vikunja"
|
||||
rm "$out/share/vikunja/electron/node_modules"
|
||||
cp -r './node_modules' "$out/share/vikunja/electron"
|
||||
|
||||
|
||||
# executable wrapper
|
||||
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
|
||||
--add-flags "$out/share/vikunja/electron"
|
||||
'';
|
||||
|
||||
# Do not attempt generating a tarball for vikunja-web again.
|
||||
# note: `doDist = false;` does not work.
|
||||
distPhase = ''
|
||||
true
|
||||
'';
|
||||
|
||||
# The desktop item properties should be kept in sync with data from upstream:
|
||||
# https://github.com/vector-im/riot-desktop/blob/develop/package.json
|
||||
# desktopItem = makeDesktopItem {
|
||||
# name = "vikunja-desktop";
|
||||
# exec = executableName;
|
||||
# icon = "vikunja";
|
||||
# desktopName = "Element (Riot)";
|
||||
# genericName = "Matrix Client";
|
||||
# comment = meta.description;
|
||||
# categories = "Network;InstantMessaging;Chat;";
|
||||
# extraEntries = ''
|
||||
# StartupWMClass=vikunja
|
||||
# '';
|
||||
# };
|
||||
|
||||
# icons
|
||||
# for icon in $out/share/vikunja/electron/build/icons/*.png; do
|
||||
# mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
|
||||
# ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/vikunja.png"
|
||||
# done
|
||||
|
||||
# desktop item
|
||||
# mkdir -p "$out/share"
|
||||
# ln -s "${desktopItem}/share/applications" "$out/share/applications"
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Desktop App of the Vikunja to-do list app";
|
||||
homepage = "https://vikunja.io/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ kolaente ];
|
||||
inherit (electron.meta) platforms;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
{ stdenv, fetchgit
|
||||
, makeWrapper, makeDesktopItem, mkYarnPackage, callPackage
|
||||
, electron_12
|
||||
}:
|
||||
|
||||
let
|
||||
executableName = "vikunja-desktop";
|
||||
version = "unstable";
|
||||
src = fetchgit {
|
||||
url = "https://kolaente.dev/vikunja/desktop.git";
|
||||
rev = "de323087956a8a1978fa52fe5603c0fdc4ba2406";
|
||||
sha256 = "1lxqc3faxcs8ipx9ig0x84kvdqcknzsras233i5jll4i9k5s1s12";
|
||||
};
|
||||
electron = electron_12;
|
||||
vikunja-frontend = callPackage ../frontend {};
|
||||
|
||||
in mkYarnPackage rec {
|
||||
name = "vikunja-desktop-${version}";
|
||||
inherit version src;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
# resources
|
||||
mkdir -p "$out/share/vikunja"
|
||||
cp -r './deps/vikunja-desktop' "$out/share/vikunja/electron"
|
||||
rm "$out/share/vikunja/electron/node_modules"
|
||||
cp -r './node_modules' "$out/share/vikunja/electron"
|
||||
ln -s '${vikunja-frontend}' "$out/share/vikunja/electron/frontend"
|
||||
|
||||
# icons
|
||||
for icon in $out/share/vikunja/electron/build/icons/*.png; do
|
||||
mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
|
||||
ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/vikunja.png"
|
||||
done
|
||||
|
||||
# desktop item
|
||||
mkdir -p "$out/share"
|
||||
ln -s "${desktopItem}/share/applications" "$out/share/applications"
|
||||
|
||||
# executable wrapper
|
||||
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
|
||||
--add-flags "$out/share/vikunja/electron"
|
||||
'';
|
||||
|
||||
# Do not attempt generating a tarball for vikunja-frontend again.
|
||||
# note: `doDist = false;` does not work.
|
||||
distPhase = ''
|
||||
true
|
||||
'';
|
||||
|
||||
# The desktop item properties should be kept in sync with data from upstream:
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "vikunja-desktop";
|
||||
exec = executableName;
|
||||
icon = "vikunja";
|
||||
desktopName = "Vikunja Desktop";
|
||||
genericName = "To-Do list app";
|
||||
comment = meta.description;
|
||||
categories = "ProjectManagement;Office;";
|
||||
extraEntries = ''
|
||||
StartupWMClass=vikunja
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Desktop App of the Vikunja to-do list app";
|
||||
homepage = "https://vikunja.io/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ kolaente ];
|
||||
inherit (electron.meta) platforms;
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue