TranslateProject/scripts/check/common.inc.sh
2019-06-11 22:18:49 +08:00

77 lines
1.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
################################################################################
# 公用常量和函数
################################################################################
# 定义类别目录
export SRC_DIR='sources' # 未翻译
export TSL_DIR='translated' # 已翻译
export PUB_DIR='published' # 已发布
# 定义匹配规则
export CATE_PATTERN='(talk|tech|news)' # 类别
export FILE_PATTERN='[0-9]{8} [a-zA-Z0-9_.,() -]*\.md' # 文件名
# 获取用于匹配操作的正则表达式
# 用法get_operation_regex 状态 类型
#
# 状态为:
# - A添加
# - M修改
# - D删除
# 类型为:
# - SRC未翻译
# - TSL已翻译
# - PUB已发布
get_operation_regex() {
STAT="$1"
TYPE="$2"
echo "^${STAT}\\s+\"?$(eval echo "\$${TYPE}_DIR")/"
}
# 确保两个变更文件一致
# 用法ensure_identical X类型 X状态 Y类型 Y状态 是否仅比较文件名
#
# 状态为:
# - A添加
# - M修改
# - D删除
# 类型为:
# - SRC未翻译
# - TSL已翻译
# - PUB已发布
ensure_identical() {
TYPE_X="$1"
STAT_X="$2"
TYPE_Y="$3"
STAT_Y="$4"
NAME_ONLY="$5"
SUFFIX=
[ -n "$NAME_ONLY" ] && SUFFIX="_basename"
X_FILE="/tmp/changes_${TYPE_X}_${STAT_X}${SUFFIX}"
Y_FILE="/tmp/changes_${TYPE_Y}_${STAT_Y}${SUFFIX}"
cmp "$X_FILE" "$Y_FILE" 2> /dev/null
}
# 检查文章分类
# 用法check_category 类型 状态
#
# 状态为:
# - A添加
# - M修改
# - D删除
# 类型为:
# - SRC未翻译
# - TSL已翻译
check_category() {
TYPE="$1"
STAT="$2"
CHANGES="/tmp/changes_${TYPE}_${STAT}"
! grep -Eqv "^${CATE_PATTERN}/" "$CHANGES"
}