-
-
Notifications
You must be signed in to change notification settings - Fork 246
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(nix): move eza, trycmd packages
Signed-off-by: Christina Sørensen <ces@fem.gg>
- Loading branch information
Showing
3 changed files
with
163 additions
and
152 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# SPDX-FileCopyrightText: 2024 Christina Sørensen | ||
# SPDX-License-Identifier: EUPL-1.2 | ||
{ | ||
pkgs, | ||
naersk', | ||
buildInputs, | ||
... | ||
}: | ||
|
||
naersk'.buildPackage rec { | ||
pname = "eza"; | ||
version = "git"; | ||
|
||
src = ../.; | ||
doCheck = true; | ||
|
||
inherit buildInputs; | ||
nativeBuildInputs = with pkgs; [ | ||
cmake | ||
pkg-config | ||
installShellFiles | ||
pandoc | ||
]; | ||
|
||
buildNoDefaultFeatures = true; | ||
buildFeatures = "git"; | ||
|
||
postInstall = '' | ||
for page in eza.1 eza_colors.5 eza_colors-explanation.5; do | ||
sed "s/\$version/${version}/g" "man/$page.md" | | ||
pandoc --standalone -f markdown -t man >"man/$page" | ||
done | ||
installManPage man/eza.1 man/eza_colors.5 man/eza_colors-explanation.5 | ||
installShellCompletion \ | ||
--bash completions/bash/eza \ | ||
--fish completions/fish/eza.fish \ | ||
--zsh completions/zsh/_eza | ||
''; | ||
|
||
meta = with pkgs.lib; { | ||
description = "A modern, maintained replacement for ls"; | ||
longDescription = '' | ||
eza is a modern replacement for ls. It uses colours for information by | ||
default, helping you distinguish between many types of files, such as | ||
whether you are the owner, or in the owning group. It also has extra | ||
features not present in the original ls, such as viewing the Git status | ||
for a directory, or recursing into directories with a tree view. eza is | ||
written in Rust, so it’s small, fast, and portable. | ||
''; | ||
homepage = "/~https://github.com/eza-community/eza"; | ||
license = licenses.mit; | ||
mainProgram = "eza"; | ||
maintainers = with maintainers; [ cafkafk ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# SPDX-FileCopyrightText: 2024 Christina Sørensen | ||
# SPDX-License-Identifier: EUPL-1.2 | ||
{ | ||
pkgs, | ||
naersk', | ||
buildInputs, | ||
... | ||
}: | ||
|
||
{ | ||
trycmd = naersk'.buildPackage { | ||
src = ../.; | ||
mode = "test"; | ||
doCheck = true; | ||
# No reason to wait for release build | ||
release = false; | ||
# buildPhase files differ between dep and main phase | ||
singleStep = true; | ||
# generate testing files | ||
buildPhase = '' | ||
bash devtools/dir-generator.sh tests/test_dir && echo "Dir generated" | ||
bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir | ||
''; | ||
cargoTestOptions = opts: opts ++ [ "--features nix" ]; | ||
inherit buildInputs; | ||
nativeBuildInputs = with pkgs; [ git ]; | ||
}; | ||
|
||
# TODO: add conditionally to checks. | ||
# Run `nix build .#trycmd` to run integration tests | ||
trycmd-local = naersk'.buildPackage { | ||
src = ../.; | ||
mode = "test"; | ||
doCheck = true; | ||
# No reason to wait for release build | ||
release = false; | ||
# buildPhase files differ between dep and main phase | ||
singleStep = true; | ||
# set itests files creation date to unix epoch | ||
buildPhase = '' | ||
bash devtools/dir-generator.sh tests/test_dir | ||
bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir | ||
touch --date=@0 tests/itest/* | ||
touch --date=@0 tests/ptests/*; | ||
fd -e stdout -e stderr -H -t file -X sed -i 's/[CWD]\//\/build\/source\//g' | ||
''; | ||
cargoTestOptions = | ||
opts: | ||
opts | ||
++ [ | ||
"--features nix" | ||
"--features nix-local" | ||
"--features powertest" | ||
]; | ||
inherit buildInputs; | ||
nativeBuildInputs = with pkgs; [ git ]; | ||
}; | ||
|
||
# Run `nix build .#trydump` to dump testing files | ||
trydump = naersk'.buildPackage { | ||
src = ../.; | ||
mode = "test"; | ||
doCheck = true; | ||
# No reason to wait for release build | ||
release = false; | ||
# buildPhase files differ between dep and main phase | ||
singleStep = true; | ||
# set itests files creation date to unix epoch | ||
buildPhase = '' | ||
bash devtools/dir-generator.sh tests/test_dir | ||
bash devtools/generate-timestamp-test-dir.sh tests/timestamp_test_dir | ||
touch --date=@0 tests/itest/*; | ||
rm tests/cmd/*.stdout || echo; | ||
rm tests/cmd/*.stderr || echo; | ||
touch --date=@0 tests/ptests/*; | ||
rm tests/ptests/*.stdout || echo; | ||
rm tests/ptests/*.stderr || echo; | ||
''; | ||
cargoTestOptions = | ||
opts: | ||
opts | ||
++ [ | ||
"--features nix" | ||
"--features nix-local" | ||
"--features powertest" | ||
#"-F trycmd/debug" | ||
]; | ||
TRYCMD = "dump"; | ||
postInstall = '' | ||
fd -e stdout -e stderr -H -t file -X sed -i 's/\/build\/source\//[CWD]\//g' | ||
cp dump $out -r | ||
''; | ||
inherit buildInputs; | ||
nativeBuildInputs = with pkgs; [ | ||
fd | ||
gnused | ||
git | ||
]; | ||
}; | ||
} |