diff options
author | Jade Lovelace <software@lfcode.ca> | 2024-02-27 22:55:53 -0800 |
---|---|---|
committer | Jade Lovelace <software@lfcode.ca> | 2024-03-01 13:48:17 -0800 |
commit | a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d (patch) | |
tree | 3958551ba1bc86c7e45995c62784be7fcf47c6ba /pkgs/by-name/op | |
parent | f9798440511a644ba4ca23db6b6df15d11553b24 (diff) | |
download | nixlib-a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d.tar nixlib-a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d.tar.gz nixlib-a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d.tar.bz2 nixlib-a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d.tar.lz nixlib-a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d.tar.xz nixlib-a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d.tar.zst nixlib-a9bebf8eb55f3fdd7d5fdb661ed0140fd12f111d.zip |
opengist: init at 1.6.1
This is a clone of github gist, with 100% more open source and 100% more self hosted.
Diffstat (limited to 'pkgs/by-name/op')
-rw-r--r-- | pkgs/by-name/op/opengist/package.nix | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/pkgs/by-name/op/opengist/package.nix b/pkgs/by-name/op/opengist/package.nix new file mode 100644 index 000000000000..fb9efcd7b076 --- /dev/null +++ b/pkgs/by-name/op/opengist/package.nix @@ -0,0 +1,70 @@ +{ 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"; + homepage = "https://github.com/thomiceli/opengist"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ lf- ]; + platforms = lib.platforms.unix; + }; +} |