mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-03 04:13:01 +00:00
ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
72 lines
1.9 KiB
Nix
72 lines
1.9 KiB
Nix
{ lib, buildGoModule, buildNpmPackage, fetchFromGitHub, moreutils, jq, git }:
|
|
let
|
|
# finalAttrs when 🥺 (buildGoModule does not support them)
|
|
# https://github.com/NixOS/nixpkgs/issues/273815
|
|
version = "1.6.1";
|
|
src = fetchFromGitHub {
|
|
owner = "thomiceli";
|
|
repo = "opengist";
|
|
rev = "v${version}";
|
|
hash = "sha256-rJ8oiH08kSSFNgPHKGo68Oi1i3L1SEJyHuzoxKMOZME=";
|
|
};
|
|
|
|
frontend = buildNpmPackage {
|
|
pname = "opengist-frontend";
|
|
inherit version src;
|
|
|
|
nativeBuildInputs = [ moreutils jq ];
|
|
|
|
# npm complains of "invalid package". shrug. we can give it a version.
|
|
preBuild = ''
|
|
jq '.version = "${version}"' package.json | sponge package.json
|
|
'';
|
|
|
|
# copy pasta from the Makefile upstream, seems to be a workaround of sass
|
|
# issues, unsure why it is not done in vite:
|
|
# https://github.com/thomiceli/opengist/blob/05eccfa8e728335514a40476cd8116cfd1ca61dd/Makefile#L16-L19
|
|
postBuild = ''
|
|
EMBED=1 npx postcss 'public/assets/embed-*.css' -c public/postcss.config.js --replace
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -R public $out
|
|
'';
|
|
|
|
npmDepsHash = "sha256-Sy321tIQOOrypk+EOGGixEzrPdhA9U8Hak+DOS+d00A=";
|
|
};
|
|
in
|
|
buildGoModule {
|
|
pname = "opengist";
|
|
inherit version src;
|
|
vendorHash = "sha256-IorqXJKzUTUL5zfKRipZaJtRlwVOmTwolJXFG/34Ais=";
|
|
tags = [
|
|
"fs_embed"
|
|
];
|
|
|
|
# required for tests
|
|
nativeCheckInputs = [
|
|
git
|
|
];
|
|
|
|
# required for tests to not try to write into $HOME and fail
|
|
preCheck = ''
|
|
export OG_OPENGIST_HOME=$(mktemp -d)
|
|
'';
|
|
|
|
postPatch = ''
|
|
cp -R ${frontend}/public/{manifest.json,assets} public/
|
|
'';
|
|
|
|
passthru.frontend = frontend;
|
|
|
|
meta = {
|
|
description = "Self-hosted pastebin powered by Git";
|
|
mainProgram = "opengist";
|
|
homepage = "https://github.com/thomiceli/opengist";
|
|
license = lib.licenses.agpl3Only;
|
|
maintainers = with lib.maintainers; [ lf- ];
|
|
platforms = lib.platforms.unix;
|
|
};
|
|
}
|