Commit 6df1c4b3 authored by Alexandru Tocar's avatar Alexandru Tocar
Browse files

creek: init at 0.4.2

parent a8cf7ad7
Loading
Loading
Loading
Loading
+110 −0
Original line number Diff line number Diff line
# generated by zon2nix (https://github.com/Cloudef/zig2nix)
{
  lib,
  linkFarm,
  fetchurl,
  fetchgit,
  runCommandLocal,
  zig,
  name ? "zig-packages",
}:
let
  unpackZigArtifact =
    {
      name,
      artifact,
    }:
    runCommandLocal name { nativeBuildInputs = [ zig ]; } ''
      hash="$(zig fetch --global-cache-dir "$TMPDIR" ${artifact})"
      mv "$TMPDIR/p/$hash" "$out"
      chmod 755 "$out"
    '';

  fetchZig =
    {
      name,
      url,
      hash,
    }:
    let
      artifact = fetchurl { inherit url hash; };
    in
    unpackZigArtifact { inherit name artifact; };

  fetchGitZig =
    {
      name,
      url,
      hash,
    }:
    let
      parts = lib.splitString "#" url;
      url_base = builtins.elemAt parts 0;
      url_without_query = builtins.elemAt (lib.splitString "?" url_base) 0;
      rev_base = builtins.elemAt parts 1;
      rev =
        if builtins.match "^[a-fA-F0-9]{40}$" rev_base != null then rev_base else "refs/heads/${rev_base}";
    in
    fetchgit {
      inherit name rev hash;
      url = url_without_query;
      deepClone = false;
    };

  fetchZigArtifact =
    {
      name,
      url,
      hash,
    }:
    let
      parts = lib.splitString "://" url;
      proto = builtins.elemAt parts 0;
      path = builtins.elemAt parts 1;
      fetcher = {
        "git+http" = fetchGitZig {
          inherit name hash;
          url = "http://${path}";
        };
        "git+https" = fetchGitZig {
          inherit name hash;
          url = "https://${path}";
        };
        http = fetchZig {
          inherit name hash;
          url = "http://${path}";
        };
        https = fetchZig {
          inherit name hash;
          url = "https://${path}";
        };
      };
    in
    fetcher.${proto};
in
linkFarm name [
  {
    name = "12209db20ce873af176138b76632931def33a10539387cba745db72933c43d274d56";
    path = fetchZigArtifact {
      name = "zig-pixman";
      url = "https://codeberg.org/ifreund/zig-pixman/archive/v0.2.0.tar.gz";
      hash = "sha256-CYgFIOR9H5q8UUpFglaixOocCMT6FGpcKQQBUVWpDKQ=";
    };
  }
  {
    name = "1220687c8c47a48ba285d26a05600f8700d37fc637e223ced3aa8324f3650bf52242";
    path = fetchZigArtifact {
      name = "zig-wayland";
      url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.2.0.tar.gz";
      hash = "sha256-gxzkHLCq2NqX3l4nEly92ARU5dqP1SqnjpGMDgx4TXA=";
    };
  }
  {
    name = "1220a4029ee3ee70d3175c69878e2b70dccd000c4324bc74ba800d8a143b7250fb38";
    path = fetchZigArtifact {
      name = "zig-fcft";
      url = "https://git.sr.ht/~novakane/zig-fcft/archive/1.1.0.tar.gz";
      hash = "sha256-osL/zsXqa8tC/Qvzf0/wXeNCzw02F2viCo+d8Gh2S7U=";
    };
  }
]
+58 −0
Original line number Diff line number Diff line
{
  callPackage,
  lib,
  zig_0_13,
  stdenv,
  fetchFromGitHub,
  fcft,
  pixman,
  pkg-config,
  wayland,
  wayland-scanner,
  wayland-protocols,
}:
let
  zig = zig_0_13;
in
stdenv.mkDerivation (finalAttrs: {
  pname = "creek";
  version = "0.4.2";

  src = fetchFromGitHub {
    owner = "nmeum";
    repo = "creek";
    tag = "v${finalAttrs.version}";
    hash = "sha256-3Q690DEMgPqURTHKzJwH5iVyTLvgYqNpxuwAEV+/Lyw=";
  };

  nativeBuildInputs = [
    zig.hook
    pkg-config
    wayland
    wayland-scanner
  ];

  buildInputs = [
    fcft
    pixman
    wayland-protocols
  ];

  deps = callPackage ./build.zig.zon.nix {
    inherit zig;
  };

  zigBuildFlags = [
    "--system"
    "${finalAttrs.deps}"
  ];

  meta = {
    homepage = "https://git.8pit.net/creek";
    description = "Malleable and minimalist status bar for the River compositor";
    license = lib.licenses.mit;
    maintainers = with lib.maintainers; [ alexandrutocar ];
    mainProgram = "creek";
    platforms = lib.platforms.linux;
  };
})