- 博客(14)
- 收藏
- 关注
原创 update_package.sh
2021SC@SDUSC该模块主要用来做到实时更新,从git上push包。其代码如下:#!/bin/bashscript_dir="$(dirname "$0")"package_dir="$1"branch="$2"option_no_update="${no_update:+1}"source "${script_dir}"/bootstrap.shrequire 'styles'if [[ -z "${package_dir}" ]]; then echo
2021-12-27 20:39:30
241
原创 styles.sh代码解析
2021SC@SDUSCstyles.sh代码如下:# terminal colors and stylesesc='\x1b'reset="${esc}[0m"bold="${esc}[1m"underline="${esc}[4m"black="${esc}[0;30m"red="${esc}[0;31m"green="${esc}[0;32m"yellow="${esc}[0;33m"blue="${esc}[0;34m"magenta="${esc}[0;35m"
2021-12-27 20:36:46
418
原创 split-packages.sh代码解析
2021SC@SDUSCsplit-packages.sh代码如下:#!/bin/bashold_branch=masternew_branch=split-packagespackage_files() { local package="$1" grep "^${package}=" <<EOF | sed 's/^.*=//'array=extra/array30.*bopomofo=preset/bopomofo*cangjie=preset/cangji
2021-12-27 20:29:40
434
原创 selector.sh代码解析
2021SC@SDUSCselector.sh的代码如下:#!/bin/bashrequire 'styles'require 'resolver'select_packages() { local all_packages=() local target local package for target in "$@"; do load_package_list_from_target "${target}" for pa
2021-12-27 19:54:21
178
原创 resolver.sh代码解析(下)
2021SC@SDUSCresolve.sh代码如下:#!/bin/bashrequire 'styles'# a recipe order takes the form# <github-user>/<repository-name>@<branch>:<recipe>:key=value,...## the "<github-user>/" and/or "@<branch>", ":<reci
2021-12-12 23:31:23
228
原创 resolver.sh 代码分析(上)
2021SC@SDUSCresolver.sh代码如下:#!/bin/bashrequire 'styles'# a recipe order takes the form# <github-user>/<repository-name>@<branch>:<recipe>:key=value,...## the "<github-user>/" and/or "@<branch>", ":<rec
2021-12-12 23:25:45
309
原创 recipe.sh代码分析(下)
2021SC@SDUSCrecipe.sh代码如下:#!/bin/bashrequire 'styles'install_recipe() { local recipe_file="$1" if ! [[ -f "${recipe_file}" ]]; then echo $(error 'Recipe not found:') "${recipe_file}" exit 1 fi local rx="${package}.
2021-12-12 16:46:53
457
原创 minimal-build.sh 代码解析
2021SC@SDUSCminimal-build.sh的代码如下:#!/bin/bash# encoding: utf-8script_dir="$(dirname "$0")"output_dir="$1"for package in essay luna-pinyin prelude; do bash "${script_dir}"/install-packages.sh "${package}" "${output_dir}"done
2021-12-12 13:14:27
1856
原创 install-packages.sh代码解析
2021SC@SDUSCinstall-package.sh从名字来看是安装各种包的。其代码如下:#!/bin/bashscript_dir="$(dirname "$0")"target="$1"output_dir="$2"option_no_update="${no_update:+1}"source "${script_dir}"/bootstrap.shrequire 'styles'require 'resolver'if [[ -z "$target" ]]
2021-12-06 21:26:28
796
原创 frontend.sh代码解析
2021SC@SDUSCfetch_package.sh的代码如下:#!/bin/bash## Fetch a Rime data package from GitHub#package_name="$1"shiftif [[ -z "${package_name}" ]]; then echo "Usage: $(basename "$0") <package-name> [<directory>] [-b <branch>]"
2021-11-29 21:23:05
608
原创 fetch_package.sh代码解析
2021SC@SDUSCfetch_package.sh的代码如下:#!/bin/bash## Fetch a Rime data package from GitHub#package_name="$1"shiftif [[ -z "${package_name}" ]]; then echo "Usage: $(basename "$0") <package-name> [<directory>] [-b <branch>]"
2021-11-29 19:42:48
394
原创 bootstrap.sh 代码分析
2021SC@SDUSC由于之前并没有学过shell的相关语法,因此学了一些基本的shell语法再来分析。但是依然相当困难:bootstrap.sh的全代码如下:首先从整体来看文件开局定义了一个变量。然后构造了一个provide函数和一个require函数,并且provide 最后提供了 'bootstrap'参数。具体的细节依然是看不懂。从注释中我们知道改文件是用来引导模块系统的。用法:1.在主脚本中创建文件 2.需求模块名称 。在模块中需要模块依赖,定义模块和提供”模块名称“。.
2021-11-25 20:27:53
1081
原创 rime输入法代码分析——综述
2021SC@SDUSC我们所在的小组负责的是rime输入法的分析。我负责的部分为plum-master。其中的源码都是.sh文件。即rime输入法内核的分析。去网上大概了解了一下rime输入法。褒贬不一。但是无疑它是一款强大的开源输入法。在一个统一的后端服务基础上,利用不同的前端来支持Windows、MacOS、Android、iOS、Linux,实现跨操作系统和跨设备。接下来的两个月我大致要分析的文件如下:...
2021-09-30 19:13:54
789
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人