diff options
author | Anderson Torres <torres.anderson.85@protonmail.com> | 2023-09-18 14:24:35 -0300 |
---|---|---|
committer | Anderson Torres <torres.anderson.85@protonmail.com> | 2023-09-19 00:02:22 -0300 |
commit | c3f4c7f54ce38f1bf69d2a557c4c37c036436073 (patch) | |
tree | e861bae240f40cd4d8595dadae2f4871e33a8e03 /pkgs/by-name/el | |
parent | 88a627e01273c4301e3ab533a5e85fea51d5ecd9 (diff) |
elvish: refactor
- move installCheck to passthru.tests - migrate to by-name
Diffstat (limited to 'pkgs/by-name/el')
-rw-r--r-- | pkgs/by-name/el/elvish/package.nix | 53 | ||||
-rw-r--r-- | pkgs/by-name/el/elvish/tests/expect-version.elv | 8 | ||||
-rw-r--r-- | pkgs/by-name/el/elvish/tests/expect-version.nix | 25 |
3 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/by-name/el/elvish/package.nix b/pkgs/by-name/el/elvish/package.nix new file mode 100644 index 0000000000000..0069dad4f0c69 --- /dev/null +++ b/pkgs/by-name/el/elvish/package.nix @@ -0,0 +1,53 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, callPackage +}: + +let + pname = "elvish"; + version = "0.19.2"; +in +buildGoModule { + inherit pname version; + + src = fetchFromGitHub { + owner = "elves"; + repo = "elvish"; + rev = "v${version}"; + hash = "sha256-eCPJXCgmMvrJ2yVqYgXHXJWb6Ec0sutc91LNs4yRBYk="; + }; + + vendorHash = "sha256-VMI20IP1jVkUK3rJm35szaFDfZGEEingUEL/xfVJ1cc="; + + subPackages = [ "cmd/elvish" ]; + + ldflags = [ + "-s" + "-w" + "-X src.elv.sh/pkg/buildinfo.Version==${version}" + ]; + + strictDeps = true; + + doCheck = false; + + passthru = { + shellPath = "/bin/elvish"; + tests = { + expectVersion = callPackage ./tests/expect-version.nix { }; + }; + }; + + meta = { + homepage = "https://elv.sh/"; + description = "A friendly and expressive command shell"; + longDescription = '' + Elvish is a friendly interactive shell and an expressive programming + language. It runs on Linux, BSDs, macOS and Windows. Despite its pre-1.0 + status, it is already suitable for most daily interactive use. + ''; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ AndersonTorres ]; + }; +} diff --git a/pkgs/by-name/el/elvish/tests/expect-version.elv b/pkgs/by-name/el/elvish/tests/expect-version.elv new file mode 100644 index 0000000000000..72f8c081f61bc --- /dev/null +++ b/pkgs/by-name/el/elvish/tests/expect-version.elv @@ -0,0 +1,8 @@ +fn expect {|key expected| + var actual = $buildinfo[$key] + if (not-eq $actual $expected) { + fail '$buildinfo['$key']: expected '(to-string $expected)', got '(to-string $actual) + } +} + +expect version @version@ diff --git a/pkgs/by-name/el/elvish/tests/expect-version.nix b/pkgs/by-name/el/elvish/tests/expect-version.nix new file mode 100644 index 0000000000000..406f2131199d3 --- /dev/null +++ b/pkgs/by-name/el/elvish/tests/expect-version.nix @@ -0,0 +1,25 @@ +{ lib +, stdenv +, elvish +, substituteAll +}: + +stdenv.mkDerivation { + pname = "elvish-simple-test"; + inherit (elvish) version; + + nativeBuildInputs = [ elvish ]; + + dontInstall = true; + + buildCommand = '' + elvish ${substituteAll { + src = ./expect-version.elv; + inherit (elvish) version; + }} + + touch $out + ''; + + meta.timeout = 10; +} |