summaryrefslogtreecommitdiff
path: root/hm/soft/czkawka-v11.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hm/soft/czkawka-v11.nix')
-rw-r--r--hm/soft/czkawka-v11.nix97
1 files changed, 97 insertions, 0 deletions
diff --git a/hm/soft/czkawka-v11.nix b/hm/soft/czkawka-v11.nix
new file mode 100644
index 0000000..781da99
--- /dev/null
+++ b/hm/soft/czkawka-v11.nix
@@ -0,0 +1,97 @@
+{
+ lib,
+ atk,
+ cairo,
+ callPackage,
+ fetchFromGitHub,
+ gdk-pixbuf,
+ glib,
+ gobject-introspection,
+ gtk4,
+ pango,
+ pkg-config,
+ rustPlatform,
+ stdenv,
+ testers,
+ wrapGAppsHook4,
+ xvfb-run,
+ versionCheckHook,
+}:
+
+let
+ self = rustPlatform.buildRustPackage {
+ pname = "czkawka";
+ version = "11.0.1";
+
+ src = fetchFromGitHub {
+ owner = "qarmin";
+ repo = "czkawka";
+ tag = self.version;
+ hash = "sha256-ke6N3vuKPGolfh6XpAg3/9dtwd09eX53fN2klUwwNwQ=";
+ };
+
+ cargoHash = "sha256-fx2ZH4I2WYCdMgNoKQuBBEJrPjmgTRPeVM2L+TWYn54=";
+
+ nativeBuildInputs = [
+ gobject-introspection
+ pkg-config
+ wrapGAppsHook4
+ ];
+
+ buildInputs = [
+ atk
+ cairo
+ gdk-pixbuf
+ glib
+ gtk4
+ pango
+ ];
+
+ nativeCheckInputs = [ xvfb-run ];
+
+ strictDeps = true;
+
+ doCheck = stdenv.hostPlatform.isLinux && (stdenv.hostPlatform == stdenv.buildPlatform);
+
+ checkPhase = ''
+ runHook preCheck
+ xvfb-run cargo test
+ runHook postCheck
+ '';
+
+ postInstall = ''
+ install -Dm444 -t $out/share/applications data/com.github.qarmin.czkawka.desktop
+ install -Dm444 -t $out/share/icons/hicolor/scalable/apps data/icons/com.github.qarmin.czkawka.svg
+ install -Dm444 -t $out/share/icons/hicolor/scalable/apps data/icons/com.github.qarmin.czkawka-symbolic.svg
+ install -Dm444 -t $out/share/metainfo data/com.github.qarmin.czkawka.metainfo.xml
+ '';
+
+ nativeInstallCheckInputs = [ versionCheckHook ];
+ versionCheckProgram = "${placeholder "out"}/bin/czkawka_cli";
+ doInstallCheck = true;
+
+ passthru = {
+ tests.version = testers.testVersion {
+ package = self;
+ command = "czkawka_cli --version";
+ };
+ # Ensure you have a wrapper.nix in the same folder if using this
+ wrapper = callPackage ./wrapper.nix {
+ czkawka = self;
+ };
+ };
+
+ meta = {
+ homepage = "https://github.com/qarmin/czkawka";
+ description = "Simple, fast and easy to use app to remove unnecessary files from your computer";
+ changelog = "https://github.com/qarmin/czkawka/raw/${self.version}/Changelog.md";
+ license = with lib.licenses; [ mit ];
+ mainProgram = "czkawka_gui";
+ maintainers = with lib.maintainers; [
+ yanganto
+ _0x4A6F
+ ];
+ };
+ };
+in
+self