summary refs log tree commit diff
path: root/pkgs/tools/dotool
diff options
context:
space:
mode:
authorMostly Void <7rat13@gmail.com>2023-05-06 19:37:09 +0530
committerMostly Void <7rat13@gmail.com>2023-07-09 13:04:49 +0200
commiteca89b077f22a5ebd4837bf4fd0f90b49476d6b6 (patch)
tree0e8821be238e993d7118d6048096b9d6e8630525 /pkgs/tools/dotool
parent75b4d0ff2bd8568375944e7e6049c2446cd4ebc4 (diff)
downloadnixpkgs-eca89b077f22a5ebd4837bf4fd0f90b49476d6b6.tar
nixpkgs-eca89b077f22a5ebd4837bf4fd0f90b49476d6b6.tar.gz
nixpkgs-eca89b077f22a5ebd4837bf4fd0f90b49476d6b6.tar.bz2
nixpkgs-eca89b077f22a5ebd4837bf4fd0f90b49476d6b6.tar.lz
nixpkgs-eca89b077f22a5ebd4837bf4fd0f90b49476d6b6.tar.xz
nixpkgs-eca89b077f22a5ebd4837bf4fd0f90b49476d6b6.tar.zst
nixpkgs-eca89b077f22a5ebd4837bf4fd0f90b49476d6b6.zip
dotool: init at 1.3
Diffstat (limited to 'pkgs/tools/dotool')
-rw-r--r--pkgs/tools/dotool/default.nix46
-rw-r--r--pkgs/tools/dotool/fix-paths.patch33
2 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/tools/dotool/default.nix b/pkgs/tools/dotool/default.nix
new file mode 100644
index 00000000000..61d0667b35a
--- /dev/null
+++ b/pkgs/tools/dotool/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildGoModule
+, fetchFromSourcehut
+, libxkbcommon
+, pkg-config
+}:
+
+buildGoModule rec {
+  pname = "dotool";
+  version = "1.3";
+
+  src = fetchFromSourcehut {
+    owner = "~geb";
+    repo = "dotool";
+    rev = version;
+    hash = "sha256-z0fQ+qenHjtoriYSD2sOjEvfLVtZcMJbvnjKZFRSsMA=";
+  };
+
+  vendorHash = "sha256-v0uoG9mNaemzhQAiG85RequGjkSllPd4UK2SrLjfm7A=";
+
+  # uses nix store path for the dotool binary
+  # also replaces /bin/echo with echo
+  patches = [ ./fix-paths.patch ];
+
+  postPatch = ''
+    substituteInPlace ./dotoold --replace "@dotool@" "$out/bin/dotool"
+  '';
+
+  buildInputs = [ libxkbcommon ];
+  nativeBuildInputs = [ pkg-config ];
+
+  ldflags = [ "-s" "-w" "-X main.Version=${version}" ];
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cp ./dotoold ./dotoolc $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Command to simulate input anywhere";
+    homepage = "https://git.sr.ht/~geb/dotool";
+    changelog = "https://git.sr.ht/~geb/dotool/tree/${version}/item/CHANGELOG.md";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ dit7ya ];
+  };
+}
diff --git a/pkgs/tools/dotool/fix-paths.patch b/pkgs/tools/dotool/fix-paths.patch
new file mode 100644
index 00000000000..cedac77974d
--- /dev/null
+++ b/pkgs/tools/dotool/fix-paths.patch
@@ -0,0 +1,33 @@
+diff --git a/dotoolc b/dotoolc
+index e2f7bba..6d1879e 100755
+--- a/dotoolc
++++ b/dotoolc
+@@ -7,7 +7,7 @@ is $DOTOOL_PIPE else /tmp/dotool-pipe.' >&2
+ fi
+ 
+ fifo_being_read(){
+-	[ -p "$1" ] && /bin/echo 1<>"$1" >"$1"
++	[ -p "$1" ] && echo 1<>"$1" >"$1"
+ }
+ 
+ p="${DOTOOL_PIPE:-/tmp/dotool-pipe}"
+diff --git a/dotoold b/dotoold
+index d2d39a3..e46129c 100755
+--- a/dotoold
++++ b/dotoold
+@@ -7,7 +7,7 @@ for the pipe is $DOTOOL_PIPE else /tmp/dotool-pipe.' >&2
+ fi
+ 
+ fifo_being_read(){
+-	[ -p "$1" ] && /bin/echo 1<>"$1" >"$1"
++	[ -p "$1" ] && echo 1<>"$1" >"$1"
+ }
+ 
+ p="${DOTOOL_PIPE:-/tmp/dotool-pipe}"
+@@ -20,5 +20,5 @@ fi
+ rm -f -- "$p" || exit 1
+ trap 'rm -f -- "$p"; pkill -P $$; trap - EXIT; exit' EXIT INT TERM HUP
+ mkfifo -m 660 "$p" || exit 1
+-dotool <> "$p" &
++@dotool@ <> "$p" &
+ wait