blob: c7c666bf827bb433dea33ba3911de3ef073c7a8b (
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
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
|
# Maintainer: everyx <lunt.luo#gmail.com>
_pkgbase=rime-ice
_schemas=(rime_ice double_pinyin double_pinyin_flypy double_pinyin_mspy double_pinyin_ziguang double_pinyin_abc)
_pkgname=$_pkgbase
pkgname=$_pkgname-git
pkgver=r326.10864f9
pkgrel=1
pkgdesc="Rime 配置:雾凇拼音 | 长期维护的简体词库"
arch=("any")
url="https://github.com/iDvel/rime-ice"
license=("GPL3")
makedepends=("git" "librime" "rime-prelude" "coreutils" "grep" "sed")
provides=("${_pkgname}")
conflicts=(
"rime-emoji"
"${_pkgname}"
"${_pkgbase}-pinyin"
"${_pkgbase}-double-pinyin"
"${_pkgbase}-double-pinyin-flypy"
"${_pkgbase}-double-pinyin-mspy"
"${_pkgbase}-double-pinyin-ziguang"
"${_pkgbase}-double-pinyin-abc"
)
source=("${_pkgname}::git+${url}.git")
sha512sums=("SKIP")
pkgver() {
cd "${_pkgname}" &&
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
_suggestion=${_pkgbase//-/_}_suggestion.yaml
prepare() {
cd "${_pkgname}" &&
mv ./default.yaml "./${_suggestion}" &&
# Link essentials.
for _f in $(pacman -Qql rime-prelude | grep -v "/$"); do ln -sf "$_f" .; done
}
build() {
cd "${_pkgname}" || return
_schemas_deps=()
for _s in "${_schemas[@]}"; do
_deps=()
mapfile -t _deps <<< "$(sed -n '/dependencies:/,/^$/ {/dependencies:/d; /^$/d; s/.*- *//g; s/ *#.*//g; p }' "$_s.schema.yaml")"
_schemas_deps=("${_schemas_deps[@]}" "${_deps[@]}")
done
mapfile -t _schemas_deps <<< "$(printf "%s\n" "${_schemas_deps[@]}" | sort -u)"
# build current schema and it's depends only, sort by length
_compile_schemas=("${_schemas_deps[@]}" "${_schemas[@]}")
for _s in "${_compile_schemas[@]}"; do rime_deployer --compile "$_s.schema.yaml"; done
# comment ignore schemas
_suggestion_schemas=$(sed -n '/^schema_list:/,/^$/ {/^schema_list:/d; /^\s*#.*$/d; /^$/d; s/.*schema:\s*//g; s/\s*#.*//g; p }' "$_suggestion")
for _s in $_suggestion_schemas; do
if [[ ! ${_schemas[*]} =~ (^|[[:space:]])"$_s"($|[[:space:]]) ]]; then
sed -i "s/^\s*- schema: $_s .*\$/#&/" "$_suggestion";
fi
done
find . -type l -delete
}
package() {
cd "${_pkgname}" || return
_install_base="$pkgdir/usr/share/rime-data"
install -Dm644 "$_suggestion" -t "$_install_base/"
install -Dm644 ./build/*.{bin,yaml} -t "$_install_base/build"
[ -f "./rime.lua" ] && install -Dm644 ./rime.lua -t "$_install_base/"
find lua -type f -exec sh -c 'install -Dm644 "$1" -t '"$_install_base"'/$(dirname $1)' shell {} \;
for _f in *.schema.yaml; do
if [ -f "build/$_f" ]; then
install -Dm644 "$_f" -t "$_install_base/"
grep -q "opencc_config: emoji.json" "$_f" &&
install -Dm644 ./opencc/* -t "$_install_base/opencc/"
fi
done
for _f in *.dict.yaml; do
if [ -f "build/${_f/.dict.yaml/}.table.bin" ]; then
install -Dm644 "$_f" -t "$_install_base/"
fi
done
for _f in */*.dict.yaml; do
if grep -q "\- ${_f/.dict.yaml/}" "$_install_base/"*.dict.yaml; then
install -Dm644 "$_f" -t "$_install_base/$(dirname "$_f")"
fi
done
for _f in *.yaml; do
if grep -q "${_f/.yaml/:}" build/*.schema.yaml; then
install -Dm644 "$_f" -t "$_install_base/"
fi
done
}
|