aboutsummaryrefslogtreecommitdiff
path: root/gui/pkgs/tasker.nix
blob: 2382be20760ff0ca89356924b056de1d03c1a34c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{ pkgs, tasks, ... }:

pkgs.lib.mapAttrsToList (name: value: let
  command = pkgs.writeTextFile {
    name        = "tasker_cmd_" + name;
    executable  = true;
    destination = "/bin/tasker_cmd_" + name;
    text = ''
      #!/bin/sh
      pushd ${toString value.directory}
        exec ${toString value.command}
      popd
    '';
  };
  shortcut = pkgs.writeTextFile {
    name        = "tasker_shortcut_" + name;
    executable  = false;
    destination = "/share/applications/tasker_shortcut_" + name + ".desktop";
    text = ''
      [Desktop Entry]
      Type=Application
      Name=${toString value.description}
      Exec=${command}/bin/tasker_cmd_${toString name}
      Terminal=false
    '';
  };
in pkgs.symlinkJoin {
  name = "tasker_task_" + name;
  paths = [ shortcut ];
}) tasks