mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-04-13 06:57:30 +00:00
rmfakecloud: build the web ui
Previously rmfakecloud was built without the web ui making it show 404 when attempting to use it. Build it similar to how other projects using yarn are built in a separate package and make it optional.
This commit is contained in:
parent
08fe70356e
commit
b3b5eced13
@ -1,4 +1,4 @@
|
||||
{ lib, fetchFromGitHub, buildGoModule }:
|
||||
{ lib, fetchFromGitHub, buildGoModule, callPackage, enableWebui ? true }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "rmfakecloud";
|
||||
@ -13,8 +13,12 @@ buildGoModule rec {
|
||||
|
||||
vendorSha256 = "sha256-NwDaPpjkQogXE37RGS3zEALlp3NuXP9RW//vbwM6y0A=";
|
||||
|
||||
postPatch = ''
|
||||
# skip including the JS SPA, which is difficult to build
|
||||
ui = callPackage ./webui.nix { inherit version src; };
|
||||
|
||||
postPatch = if enableWebui then ''
|
||||
mkdir -p ui/build
|
||||
cp -r ${ui}/* ui/build
|
||||
'' else ''
|
||||
sed -i '/go:/d' ui/assets.go
|
||||
'';
|
||||
|
||||
|
37
pkgs/servers/rmfakecloud/webui.nix
Normal file
37
pkgs/servers/rmfakecloud/webui.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ version, src, stdenv, lib, fetchFromGitHub, fetchYarnDeps, fixup_yarn_lock, yarn, nodejs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit version src;
|
||||
|
||||
pname = "rmfakecloud-webui";
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/ui/yarn.lock";
|
||||
sha256 = "sha256-lKA3W7gXT2Dnux+sIXCluG5HxkGQgHPnCjgV/a4pjY0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ fixup_yarn_lock yarn nodejs ];
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
cd ui
|
||||
fixup_yarn_lock yarn.lock
|
||||
yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
|
||||
yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
|
||||
patchShebangs node_modules
|
||||
export PATH=$PWD/node_modules/.bin:$PATH
|
||||
./node_modules/.bin/react-scripts build
|
||||
mkdir -p $out
|
||||
cd ..
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp -r ui/build/* $out
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Only the webui files for rmfakecloud";
|
||||
homepage = "https://ddvk.github.io/rmfakecloud/";
|
||||
license = licenses.agpl3Only;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user