From 4e78f846b649c5743c8725586866f5506bf69bc1 Mon Sep 17 00:00:00 2001
From: Katharina Fey <kookie@spacekookie.de>
Date: Sat, 23 Nov 2019 12:56:57 +0100
Subject: [PATCH] wally-cli: init at 1.1.1

---
 pkgs/development/tools/wally-cli/default.nix | 34 ++++++++++
 pkgs/development/tools/wally-cli/deps.nix    | 66 ++++++++++++++++++++
 pkgs/top-level/all-packages.nix              |  2 +
 3 files changed, 102 insertions(+)
 create mode 100644 pkgs/development/tools/wally-cli/default.nix
 create mode 100644 pkgs/development/tools/wally-cli/deps.nix

diff --git a/pkgs/development/tools/wally-cli/default.nix b/pkgs/development/tools/wally-cli/default.nix
new file mode 100644
index 000000000000..b7333e456442
--- /dev/null
+++ b/pkgs/development/tools/wally-cli/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoPackage, fetchFromGitHub, pkg-config, libusb1 }:
+
+buildGoPackage rec {
+  pname = "wally-cli";
+  version = "1.1.1";
+
+  goPackagePath = "github.com/zsa/wally";
+  subPackages = [ "cli" ];
+
+  nativeBuildInputs = [
+    pkg-config
+    libusb1
+  ];
+
+  src = fetchFromGitHub {
+    owner = "zsa";
+    repo = "wally";
+    rev = "68960e452ee0f6c7142f5008d4b1cdc6284d3de7";
+    sha256 = "122m5v7s5wqlshyk2salmd848lqs4rrz54d2ap11ay61kijm0bs2";
+  };
+
+  postInstall = ''
+    mv $bin/bin/cli $bin/bin/wally
+  '';
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "A tool to flash firmware to mechanical keyboards";
+    homepage = https://ergodox-ez.com/pages/wally-planck;
+    license = licenses.mit;
+    maintainers = [ maintainers.spacekookie ];
+  };
+}
diff --git a/pkgs/development/tools/wally-cli/deps.nix b/pkgs/development/tools/wally-cli/deps.nix
new file mode 100644
index 000000000000..8edac40c0d57
--- /dev/null
+++ b/pkgs/development/tools/wally-cli/deps.nix
@@ -0,0 +1,66 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+  {
+    goPackagePath = "github.com/caarlos0/spin";
+    fetch = {
+      type = "git";
+      url = "https://github.com/caarlos0/spin";
+      rev = "950231d3237faf48da965375e65a00c224bcb4dc";
+      sha256 = "1yz987f86qwx2avyp1bmi5y35h8bbfgp3z1fipqpjlvfq8m7lf8w";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/gousb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/gousb";
+      rev = "18f4c1d8a750878c4f86ac3d7319b8aa462a79f9";
+      sha256 = "1i7ffkq395x0v1186j9bhfgy67wlq6s840xkyx8wn87w55yd05rh";
+    };
+  }
+  {
+    goPackagePath = "github.com/logrusorgru/aurora";
+    fetch = {
+      type = "git";
+      url = "https://github.com/logrusorgru/aurora";
+      rev = "66b7ad493a23a2523bac50571522bbfe5b90a835";
+      sha256 = "06allslr29qdapv5j3fpyw9xklmb9fmya5jzybmakz9mwczm76nq";
+    };
+  }
+  {
+    goPackagePath = "github.com/marcinbor85/gohex";
+    fetch = {
+      type = "git";
+      url = "https://github.com/marcinbor85/gohex";
+      rev = "7a43cd876e46e0f6ddc553f10f91731a78e6e949";
+      sha256 = "1nzy1hk7blawq4skycj330ac3kfwh0xr6xd7s3y09hsxfzcv4p9v";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "f93a0d58d5fd95e53f82782d07bb0c79d23e1290";
+      sha256 = "1sq97q71vgwnbg1fphsmqrzkbfn6mjal6d8a3qgwv4nbgppwaz25";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "f068ffe820e46336f56dfca7777430582d6e507b";
+      sha256 = "14qvaq9wcrm7mgyra4h9jl8ssfcxyygi1hraq3cmf118961m90zn";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/cheggaaa/pb.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/cheggaaa/pb.v1";
+      rev = "f907f6f5dd81f77c2bbc1cde92e4c5a04720cb11";
+      sha256 = "13a66cqbpdif804qj12z9ad8r24va9q41gfk71qbc4zg1wsxs3rh";
+    };
+  }
+]
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index bd7c138f2f19..da5054d40ba1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14105,6 +14105,8 @@ in
     stdenv = gcc6Stdenv; # upstream code incompatible with gcc7
   };
 
+  wally-cli = callPackage ../development/tools/wally-cli { };
+
   wavpack = callPackage ../development/libraries/wavpack { };
 
   wayland = callPackage ../development/libraries/wayland { };