-
Notifications
You must be signed in to change notification settings - Fork 0
/
tasks.nix
90 lines (88 loc) · 2.43 KB
/
tasks.nix
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{
pkgs,
mkApp,
nix-darwin',
}:
let
inherit (pkgs) lib writeShellApplication;
clone = writeShellApplication {
name = "clone";
runtimeInputs = [ pkgs.git ];
text = ''
git clone https://github.com/s3igo/dotfiles.git ~/.dotfiles
'';
};
deploy = writeShellApplication {
name = "deploy";
runtimeInputs = [ nix-darwin' ];
text = ''
darwin-rebuild switch --flake ".#$(scutil --get LocalHostName)"
'';
};
wipe-history = writeShellApplication {
name = "wipe-history";
text = ''
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system
nix profile wipe-history --profile "$XDG_STATE_HOME/nix/profiles/home-manager"
'';
};
versions = writeShellApplication {
name = "versions";
runtimeInputs = [ pkgs.gawk ];
text = ''
nix profile diff-closures --profile /nix/var/nix/profiles/system \
| awk 'BEGIN { RS="" } { par=$0 } END { print par }'
'';
};
target = "~/Library/Containers/net.mtgto.inputmethod.macSKK/Data/Documents/Dictionaries";
jisyoList = [
"SKK-JISYO.L"
"SKK-JISYO.jinmei"
"SKK-JISYO.fullname"
"SKK-JISYO.geo"
"SKK-JISYO.propernoun"
"SKK-JISYO.station"
"SKK-JISYO.assoc"
"SKK-JISYO.edict"
# "SKK-JISYO.edict2" # occurs error
"SKK-JISYO.zipcode"
"SKK-JISYO.office.zipcode"
"SKK-JISYO.JIS2"
# "SKK-JISYO.JIS3_4" # occurs error
"SKK-JISYO.JIS2004"
"SKK-JISYO.itaiji"
"SKK-JISYO.itaiji.JIS3_4"
"SKK-JISYO.mazegaki"
];
skk-dict = pkgs.callPackage ./packages/skk-dict.nix { };
install-skk-dicts = writeShellApplication {
name = "install-skk-dicts";
text =
let
cmd = jisyo: "cp ${skk-dict}/share/${jisyo} ${target}/${jisyo}";
cmds = map cmd jisyoList;
script = lib.concatStringsSep "\n" cmds;
in
if pkgs.stdenv.isDarwin then script else null;
};
cleanup-skk-dicts = writeShellApplication {
name = "cleanup-skk-dicts";
text =
if pkgs.stdenv.isDarwin then
''
while read -r jisyo; do
rm -f ${target}/"$jisyo"
done < ${skk-dict.passthru.list}/share/dicts.txt
''
else
null;
};
in
{
clone = mkApp { drv = clone; };
deploy = mkApp { drv = deploy; };
wipe-history = mkApp { drv = wipe-history; };
versions = mkApp { drv = versions; };
install-skk-dicts = mkApp { drv = install-skk-dicts; };
cleanup-skk-dicts = mkApp { drv = cleanup-skk-dicts; };
}