栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

frontend.sh代码解析

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

frontend.sh代码解析

2021SC@SDUSC

frontend.sh代码如下:

#!/bin/bash

require 'styles'

guess_rime_user_dir() {
    if [[ -n "${rime_dir}" ]]; then
        return
    fi
    if [[ -z "${rime_frontend}" ]]; then
        # guess frontend by OS
        case "$OSTYPE" in
            linux*)
                export rime_frontend='rime/ibus-rime'
                ;;
            darwin*)
                export rime_frontend='rime/squirrel'
                ;;
            cygwin* | msys* | win*)
                # Weasel
                export rime_frontend='rime/weasel'
                ;;
            *)
                echo $(warning 'WARNING:') 'Unknown OSTYPE:' $(print_option "$OSTYPE")
                ;;
        esac
    fi
    # install to default rime user directory
    case "${rime_frontend}" in
        fcitx/fcitx-rime | fcitx-rime)
            export rime_dir="$HOME/.config/fcitx/rime"
            ;;
        fcitx5/fcitx5-rime | fcitx5-rime)
            export rime_dir="$HOME/.local/share/fcitx5/rime"
            ;;
        rime/ibus-rime | ibus-rime)
            export rime_dir="$HOME/.config/ibus/rime"
            ;;
        rime/squirrel | squirrel)
            export rime_dir="$HOME/Library/Rime"
            ;;
        rime/weasel | weasel)
            export rime_dir="$APPDATA\Rime"
            ;;
        *)
            echo $(warning 'WARNING:') 'Unknown Rime frontend:' $(print_option "${rime_frontend:-(unknown)}")
            return
            ;;
    esac
    echo 'Installing for Rime frontend:' $(print_option "${rime_frontend:-(unknown)}")
}

provide 'frontend'

首先将"styles"加载到已导入模块(具体参加bootstrap.sh代码)。

来看guess_rime_user_dir函数。如果rime_dir不为零,就直接结束函数。也就是说开始时rime的目录必须为空值。如果rime_frontend为空值(因为前端为空才能进行自己的操作),进行接下来的操作:通过OS来猜测前端。

如果OSTYPE的值为linux,将前端导出为“rime/ibus-rime";为darwin,导出为”rime/squirrel";为cygwin或者msys或者win(为狼毫可用的系统),则导出为"rime/weasel".如果为其他的值,给个警告,输出Warning:"Unknown OSTYPE:" a.a为OSTYPE的值。

进行完上面的操作后,将前端安装到用户的默认目录。

如果rime_frontend的值为fcitx/fcitx-rime或者fcitx-rime,将rime_dir导出为“$HOME/.config/fcitx/rime";为 fcitx5/fcitx5-rime或者fcitx5-rime,导出为"$HOME/.local/share/fcitx5/rime";为rime/ibus-rime或者ibus-rime,导出为"$HOME/.config/ibus/rime";为 rime/squirrel 或者 squirrel,导出为"$HOME/Library/Rime",为 rime/weasel 或者 weasel,导出为"$APPDATA\Rime",其中$HOME 为用户名,$APPDATA的值为导入进来的与rime输入法的数据有关的相关值。如果为其他则报一个警告,表示rime-frontend的值是一个未知的东西。

最后为provide函数提供了一个参数”frontend",导入该前端模块的名称。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618889.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号