Upload files to "/"
This commit is contained in:
commit
b5d7b79d84
1 changed files with 157 additions and 0 deletions
157
rime-autogen-script.sh
Normal file
157
rime-autogen-script.sh
Normal file
|
|
@ -0,0 +1,157 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# see man tput, man terminfo
|
||||||
|
RED=$(tput setaf 1)
|
||||||
|
GREEN=$(tput setaf 2)
|
||||||
|
BOLD=$(tput bold)
|
||||||
|
NORMAL=$(tput sgr0)
|
||||||
|
|
||||||
|
GIT_REPOS=(
|
||||||
|
https://github.com/rime/rime-prelude
|
||||||
|
https://github.com/rime/rime-essay
|
||||||
|
https://github.com/rime/rime-cantonese
|
||||||
|
https://github.com/rime/rime-cangjie
|
||||||
|
https://github.com/rime/rime-quick
|
||||||
|
https://github.com/rime/rime-stroke
|
||||||
|
https://github.com/philipposkhos/rime-ms-quick
|
||||||
|
https://github.com/kennethso168/rime-cangjie3-extension
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_PRELUDE=(
|
||||||
|
"default.yaml"
|
||||||
|
"key_bindings.yaml"
|
||||||
|
"punctuation.yaml"
|
||||||
|
"symbols.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_ESSAY=(
|
||||||
|
"essay.txt"
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_CANTONESE=(
|
||||||
|
"essay-cantonese.txt"
|
||||||
|
"jyut6ping3.chars.dict.yaml"
|
||||||
|
"jyut6ping3.dict.yaml"
|
||||||
|
"jyut6ping3.lettered.dict.yaml"
|
||||||
|
"jyut6ping3.maps.dict.yaml"
|
||||||
|
"jyut6ping3.phrase.dict.yaml"
|
||||||
|
"jyut6ping3.schema.yaml"
|
||||||
|
"jyut6ping3.words.dict.yaml"
|
||||||
|
"jyut6ping3_ipa.schema.yaml"
|
||||||
|
"opencc/" # This is a forder
|
||||||
|
"symbols_cantonese.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_CANGJIE=(
|
||||||
|
"cangjie5.dict.yaml"
|
||||||
|
"cangjie5.schema.yaml"
|
||||||
|
"cangjie5_express.schema.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_QUICK=(
|
||||||
|
"quick5.dict.yaml"
|
||||||
|
"quick5.schema.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_STROKE=(
|
||||||
|
"stroke.dict.yaml"
|
||||||
|
"stroke.schema.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_MS_QUICK=(
|
||||||
|
"ms_quick.dict.yaml"
|
||||||
|
"ms_quick.schema.yaml"
|
||||||
|
"quickcang5.jyut.dict.yaml"
|
||||||
|
"quickcang5.simp_voc.dict.yaml"
|
||||||
|
"quickcang5.voc_luna.dict.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
REQUIRED_FILES_RIME_CANGJIE3_EXTENSION=(
|
||||||
|
"cangjie5.cj3ext.dict.yaml"
|
||||||
|
"cangjie5.custom.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
DEPENDENCIES=("git")
|
||||||
|
|
||||||
|
exists() { type "$1" >/dev/null 2>&1; }
|
||||||
|
|
||||||
|
# dependencies check
|
||||||
|
for DEP in "${DEPENDENCIES[@]}"; do
|
||||||
|
if ! exists "$DEP"; then
|
||||||
|
echo "${RED}${BOLD}$DEP is not installed, aborting...${NORMAL}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Start script
|
||||||
|
#
|
||||||
|
mkdir -p rime
|
||||||
|
|
||||||
|
for REPO in "${GIT_REPOS[@]}"; do
|
||||||
|
# Get directory name from REPO URL
|
||||||
|
DIR=$(echo "$REPO" | rev | cut -f1 -d '/' |rev)
|
||||||
|
|
||||||
|
# If directory exists by previous run, delete it
|
||||||
|
if [ -d "$DIR" ]; then
|
||||||
|
rm -rf "$DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://unix.stackexchange.com/questions/732093/bash-loop-associative-array-with-variable-array-name
|
||||||
|
# nameref: declare -n
|
||||||
|
VARNAME="REQUIRED_FILES_$(echo "$DIR" | sed 's/-/_/g' | tr '[:lower:]' '[:upper:]')"
|
||||||
|
declare -n FILE_ARRAY=$VARNAME
|
||||||
|
|
||||||
|
if [ "$VARNAME" = "REQUIRED_FILES_RIME_CANTONESE" ];then
|
||||||
|
BRANCH="main"
|
||||||
|
else
|
||||||
|
BRANCH="master"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir "$DIR"
|
||||||
|
# cd inside this scope. no longer cd into $DIR when out of scope
|
||||||
|
(
|
||||||
|
cd "$DIR" || exit
|
||||||
|
# https://stackoverflow.com/questions/65524512/how-to-disable-git-message-about-git-initial-branch-name
|
||||||
|
# disable git init hints
|
||||||
|
git -c "init.defaultBranch=$BRANCH" init
|
||||||
|
# enable sparse checkout (not enabling cone mode, meaning exact file match is required)
|
||||||
|
git config core.sparseCheckout true
|
||||||
|
# add required filenames to sparse-checkout file to make git pull only pull those files
|
||||||
|
printf "%s\n" "${FILE_ARRAY[@]}" >.git/info/sparse-checkout
|
||||||
|
# add remote URL
|
||||||
|
git remote add origin "$REPO"
|
||||||
|
# git pull with --depth 1 for quick download
|
||||||
|
git pull --quiet --depth 1 origin "$BRANCH"
|
||||||
|
# copy required files into rime directory
|
||||||
|
cp -n -r -t ../rime "${FILE_ARRAY[@]}"
|
||||||
|
)
|
||||||
|
rm -rf "$DIR"
|
||||||
|
done
|
||||||
|
|
||||||
|
cat <<EOF >./rime/default.custom.yaml
|
||||||
|
# https://github.com/rime/home/wiki/UserData
|
||||||
|
# 用戶文件夾
|
||||||
|
# Rime 從「用戶文件夾」讀取用家自訂的配置。
|
||||||
|
# 輸入法運行時保存的數據如 用戶詞典、安裝信息、選項狀態等也放在這裏。
|
||||||
|
#
|
||||||
|
# 小狼毫: 用戶文件夾的默認路徑爲 %APPDATA%\Rime。也可以通過「開始菜單\小狼毫輸入法\用戶文件夾」打開。
|
||||||
|
# 鼠鬚管: 用戶文件夾的路徑爲 ~/Library/Rime。也可以通過「系統輸入法菜單/鼠鬚管/用戶設定…」打開。
|
||||||
|
# ibus-rime: ~/.config/ibus/rime
|
||||||
|
# fcitx-rime: ~/.config/fcitx/rime
|
||||||
|
# fcitx5-rime: ~/.local/share/fcitx5/rime/
|
||||||
|
|
||||||
|
patch:
|
||||||
|
schema_list:
|
||||||
|
- schema: jyut6ping3 # 粵拼
|
||||||
|
- schema: cangjie5 # 倉頡五代
|
||||||
|
- schema: quick5 # 速成
|
||||||
|
- schema: ms_quick # 微軟速成
|
||||||
|
- schema: stroke # 五筆畫
|
||||||
|
EOF
|
||||||
|
|
||||||
|
printf "%s\n" \
|
||||||
|
"" \
|
||||||
|
"${GREEN}${BOLD}\"rime\" directory is generated.${NORMAL}" \
|
||||||
|
"" \
|
||||||
|
"${GREEN}${BOLD}Follow the guide below to place it into the correct location.${NORMAL}" \
|
||||||
|
"${GREEN}${BOLD}https://github.com/rime/home/wiki/UserData${NORMAL}"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue