1{ stdenv
2, lib
3, fetchzip
4, fetchFromGitHub
5, makeWrapper
6, substituteAll
7, perlPackages
8# Flags to enable processors
9# Currently, Markdown.pl does not work
10, usePandoc ? true
11, pandoc }:
12
13let
14 inherit (perlPackages) TextMarkdown;
15 # As bashblog supports various markdown processors
16 # we can set flags to enable a certain processor
17 markdownpl_path = "${perlPackages.TextMarkdown}/bin/Markdown.pl";
18 pandoc_path = "${pandoc}/bin/pandoc";
19
20in stdenv.mkDerivation rec {
21 pname = "bashblog";
22 version = "unstable-2022-03-26";
23
24 src = fetchFromGitHub {
25 owner = "cfenollosa";
26 repo = "bashblog";
27 rev = "c3d4cc1d905560ecfefce911c319469f7a7ff8a8";
28 sha256 = "sha256-THlP/JuaZzDq9QctidwLRiUVFxRhGNhRKleWbQiqsgg=";
29 };
30
31 nativeBuildInputs = [ makeWrapper ];
32
33 buildInputs = [ TextMarkdown ]
34 ++ lib.optionals usePandoc [ pandoc ];
35
36 patches = [
37 (substituteAll {
38 src = ./0001-Setting-markdown_bin.patch;
39 markdown_path = if usePandoc then pandoc_path else markdownpl_path;
40 })
41 ];
42
43 postPatch = ''
44 patchShebangs bb.sh
45 '';
46
47 installPhase = ''
48 runHook preInstall
49
50 mkdir -p $out/bin
51 install -Dm755 bb.sh $out/bin/bashblog
52
53 runHook postInstall
54 '';
55
56 meta = with lib; {
57 description = "A single Bash script to create blogs";
58 homepage = "https://github.com/cfenollosa/bashblog";
59 license = licenses.gpl3Only;
60 platforms = platforms.unix;
61 maintainers = with maintainers; [ wolfangaukang ];
62 };
63}