xc: tweak, add update script, add sanity tests

Signed-off-by: lucasew <lucas59356@gmail.com>

+29 -5
+9
pkgs/by-name/xc/xc/example.md
··· 1 + # Tasks 2 + 3 + ## example 4 + 5 + Tests if xc works 6 + 7 + ```sh 8 + touch ./test 9 + ```
+20 -5
pkgs/by-name/xc/xc/package.nix
··· 2 2 lib, 3 3 buildGoModule, 4 4 fetchFromGitHub, 5 + gitUpdater, 6 + versionCheckHook, 5 7 }: 6 8 7 9 buildGoModule rec { ··· 11 13 src = fetchFromGitHub { 12 14 owner = "joerdav"; 13 15 repo = pname; 14 - rev = "v${version}"; 16 + tag = "v${version}"; 15 17 sha256 = "sha256-vTyCS85xbJnAgbasWD6LFxij9EezzlJ1pyvCJptqmOU="; 16 18 }; 17 19 ··· 23 25 "-X=main.version=${version}" 24 26 ]; 25 27 26 - meta = with lib; { 28 + nativeInstallCheckInputs = [ versionCheckHook ]; 29 + doInstallCheck = true; 30 + postInstallCheck = '' 31 + cp ${./example.md} example.md 32 + $out/bin/xc -file ./example.md example 33 + if ! [[ -f test ]] then 34 + echo "example.md didn't do anything" >&2 35 + return 1 36 + fi 37 + ''; 38 + 39 + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; 40 + 41 + meta = { 27 42 description = "Markdown defined task runner"; 28 43 mainProgram = "xc"; 29 44 homepage = "https://xcfile.dev/"; 30 - changelog = "https://github.com/joerdav/xc/releases/tag/${src.rev}"; 31 - license = licenses.mit; 32 - maintainers = with maintainers; [ 45 + changelog = "https://github.com/joerdav/xc/releases/tag/${src.tag}"; 46 + license = lib.licenses.mit; 47 + maintainers = with lib.maintainers; [ 33 48 figsoda 34 49 joerdav 35 50 ];