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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# Maintainer: Gavin Luo <lunt.luo@gmail.com>
pkgbase=rime-wanxiang
pkgname=(rime-wanxiang-base)
pkgver=6.4.5
pkgrel=1
pkgdesc="万象拼音:带声调的拼音词库,万象拼音系列方案基础版,可扩展全拼、双拼、中英混输、语言模型"
arch=(any)
license=('CC-BY-4.0')
url="https://github.com/amzxyz/rime_wanxiang"
source=("${url}/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('a9b847f44dd677e02fbb89d44ab3163e9b46803dc28cb709194243f69cd3be6d')
makedepends=("librime" "rime-prelude" "rime-essay" "sed")
prepare() {
cd "${srcdir}/rime_wanxiang-${pkgver}"
# 清理文件
rm squirrel.yaml weasel.yaml *.trime.yaml *.md custom_phrase.txt LICENSE
rm -r .github custom
mv default.yaml wanxiang_suggestion.yaml
}
build() {
cd "${srcdir}/rime_wanxiang-${pkgver}"
rm -rf build/*
for _f in $(pacman -Qql rime-prelude rime-essay | grep -v "/$"); do ln -sf "${_f}" .; done
# 预编译除 wanxiang 主方案外的其他依赖方案
for _s in *.schema.yaml; do
[[ $_s == wanxiang.schema.yaml ]] && continue
rime_deployer --compile "${_s}"
done
find . -type l -delete
rm build/*.txt
}
package_rime-wanxiang-base() {
pkgdesc="万象拼音基础版基础文件"
depends=(lua librime "rime-wanxiang-data>=${pkgver}")
cd "${srcdir}/rime_wanxiang-${pkgver}"
for _f in *.db *.yaml; do
[[ $_f == wanxiang.schema.yaml ]] && continue
[[ $_f == wanxiang_radical.schema.yaml ]] && continue
[[ $_f == wanxiang_en.schema.yaml ]] && continue
install -Dm644 "${_f}" -t "${pkgdir}"/usr/share/rime-data
done
for _f in build/*; do
[[ $_f == build/wanxiang.* ]] && continue
[[ $_f == build/wanxiang_radical.schema.yaml ]] && continue
[[ $_f == build/wanxiang_en.schema.yaml ]] && continue
install -Dm644 "${_f}" -t "${pkgdir}"/usr/share/rime-data/build
done
for _d in en_dicts jm_dicts lua opencc; do
find $_d -type f -exec install -Dm664 {} "${pkgdir}"/usr/share/rime-data/{} \;
done
}
_schemas=('pinyin 全拼'
'zrm 自然码'
# 'zrlong 自然龙'
# 'abc 智能ABC'
'flypy 小鹤双拼'
'sogou 搜狗双拼'
# 'ziguang 紫光双拼'
'mspy 微软双拼')
_conflicts=()
for _line in "${_schemas[@]}"; do
_schema=${_line%% *}
_conflicts+=(${pkgbase}-${_schema,,})
done
for _line in "${_schemas[@]}"; do
_schema=${_line%% *}
_pkgname=${pkgbase}-${_schema,,}
_pkgconflicts=()
for _c in "${_conflicts[@]}"; do
[[ $_c != "$_pkgname" ]] && _pkgconflicts+=("${_c}")
done
pkgname+=("${_pkgname}")
_name=${_line##* }
eval "package_$_pkgname() {
depends=('rime-wanxiang-base')
pkgdesc='万象拼音基础版("${_name}"方案)'
conflicts=("${_pkgconflicts[@]}")
_package $_line
}"
done
_rime_deploy() {
for _f in $(pacman -Qql rime-prelude rime-essay | grep -v "/$"); do ln -sf "${_f}" .; done
for _s in "$@"; do rime_deployer --compile "${_s}"; done
find . -type l -delete
rm build/*.txt
}
_package() {
local _schema=$1
local _name=$2
cd "${srcdir}/rime_wanxiang-${pkgver}"
local _cn_en_user_dict=en_dicts/"${_schema}"
sed -Ei \
-e "/^set_shuru_schema:/,/^[^[:space:]]/ { s|^(\s+__include:\s*)\S+(\s*.*)|\1${_name}\2| }" \
-e "/^set_cn_en:/,/^[^[:space:]]/ { s|^(\s+user_dict:\s*)\S+(\s*.*)|\1${_cn_en_user_dict}\2| }" \
"wanxiang.schema.yaml"
for _s in wanxiang_{radical,en}.schema.yaml; do
sed -Ei \
-e "/^set_shuru_schema:/,/^[^[:space:]]/ { s|^(\s+__include:\s*)\S+(\s*.*)|\1${_name}\2| }" \
"${_s}"
done
_rime_deploy {wanxiang,wanxiang_radical,wanxiang_en}.schema.yaml
for _f in {wanxiang,wanxiang_radical,wanxiang_en}.schema.yaml; do
install -Dm664 "${_f}" -t "${pkgdir}"/usr/share/rime-data
install -Dm664 "build/${_f}" -t "${pkgdir}"/usr/share/rime-data/build
done
}
|