From d36a64afaa286eff8270a63ac786955d6cef995c Mon Sep 17 00:00:00 2001 From: Azalea Gui Date: Wed, 4 Jan 2023 00:26:27 -0500 Subject: [PATCH] [+] Add rime-install script --- scripts/bin/rime-install | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 scripts/bin/rime-install diff --git a/scripts/bin/rime-install b/scripts/bin/rime-install new file mode 100755 index 0000000..4f4a3d7 --- /dev/null +++ b/scripts/bin/rime-install @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +if [[ -z "${plum_repo}" ]]; then + plum_repo='rime/plum' +fi + +if [[ -z "${plum_dir}" ]]; then + # am I in a working copy already? + plum_dir="$(dirname "$0")" + if ! [[ -f "${plum_dir}"/scripts/install-packages.sh ]]; then + # make a copy of plum in a subdirectory + plum_dir='plum' + fi +fi + +if ! [[ -e "${plum_dir}" ]]; then + git clone --depth 1 "https://github.com/${plum_repo}.git" "${plum_dir}" +fi + +if ! [[ "$0" -ef "${plum_dir}"/rime-install ]]; then + # run the newer version of rime-install + "${plum_dir}"/rime-install "$@" + exit +fi + +export root_dir="${plum_dir}" +source "${root_dir}"/scripts/bootstrap.sh +require 'styles' + +if [[ -z "${rime_dir}" ]]; then + # Output to Rime user directory + require 'frontend' + guess_rime_user_dir # exports `rime_dir` +fi + +if [[ "$1" == '--select' ]]; then + shift + interactive=1 +fi + +if [[ $# -eq 0 ]]; then + targets=(':preset') +else + targets=("$@") +fi + +if [[ -n "${interactive}" ]]; then + require 'selector' + select_packages "${targets[@]}" + targets=("${selected_packages[@]}") +fi + +for target in "${targets[@]}"; do + if [[ "${target}" == 'plum' ]]; then + echo $(print_result 'Updating plum at') "'${plum_dir}'" + (cd "${plum_dir}"; git pull) + continue + fi + + "${root_dir}"/scripts/install-packages.sh "${target}" "${rime_dir:-.}" +done