nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildGoModule,
4 fetchFromSourcehut,
5 libxkbcommon,
6 pkg-config,
7 installShellFiles,
8 scdoc,
9}:
10
11buildGoModule rec {
12 pname = "dotool";
13 version = "1.5";
14
15 src = fetchFromSourcehut {
16 owner = "~geb";
17 repo = "dotool";
18 rev = version;
19 hash = "sha256-4QmTHeU3TnpRATKIvilkIA3i2hDjM5zQwSvmRvoWuNE=";
20 };
21
22 vendorHash = "sha256-IQ847LHDYJPboWL/6lQNJ4vPPD/+xkrGI2LSZ7kBnp4=";
23
24 # uses nix store path for the dotool binary
25 # also replaces /bin/echo with echo
26 patches = [ ./fix-paths.patch ];
27
28 postPatch = ''
29 substituteInPlace ./dotoold --replace "@dotool@" "$out/bin/dotool"
30 '';
31
32 buildInputs = [ libxkbcommon ];
33 nativeBuildInputs = [
34 installShellFiles
35 pkg-config
36 scdoc
37 ];
38
39 ldflags = [
40 "-s"
41 "-w"
42 "-X main.Version=${version}"
43 ];
44
45 postInstall = ''
46 mkdir -p $out/bin
47 cp ./dotoold ./dotoolc $out/bin
48 scdoc < doc/dotool.1.scd > doc/dotool.1
49 installManPage doc/dotool.1
50 '';
51
52 meta = {
53 description = "Command to simulate input anywhere";
54 homepage = "https://git.sr.ht/~geb/dotool";
55 changelog = "https://git.sr.ht/~geb/dotool/tree/${version}/item/CHANGELOG.md";
56 license = lib.licenses.gpl3Only;
57 maintainers = with lib.maintainers; [ dit7ya ];
58 };
59}