1 Star 0 Fork 0

10km/facelog-delivery

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
redis_config.sh 4.25 KB
一键复制 编辑 原始数据 按行查看 历史
#!/bin/bash
# redis配置
# author : guyadong
# date : 2019/08/01
# 导入标志,确保只会被导入一次
redis_config_included=true
# 脚本初始化
[ "$common_init_included" != 'true' ] && . ./common_init.sh
rediscfg_title='redis配置'
service_online redis $DEFAULT_REDIS_PORT $redis_port
function fun_redis_use_local(){
[ $context_redis_configured -eq 0 ] && [ $context_last_code -ne 3 ] && return 4
[ $context_redis_configured -eq 0 ] && [ $context_last_code -eq 3 ] && return 3
local defaultno=
[ "$redis_use_local" = 1 ] && defaultno='--defaultno'
dialog --backtitle "$DEFAULT_BACK_TITLE$context_backtitle_suffix" $DLG_YESNO_LABEL \
--title "$rediscfg_title" $DLG_BACK_BTN $defaultno \
--yesno "是否使用本地 redis 服务?" 5 30
local code=$?
[ $code -lt 2 ] && redis_use_local=$code
return $code
}
# 检查连接参数是否有无效值,有则返回-1,无则返回0
# $1 $host
# $2 $port
# $3 $password
# #4 $database
function _check_redis_params(){
[[ ! "$1" =~ ^[A-Za-z0-9_\.]+$ ]] && error_message "主机名(host)无效" && return 255
[[ ! "$2" =~ ^[0-9]{1,5}$ ]] && error_message "端口号(port)不可为空,必须为数字" && return 255
[[ ! "$3" =~ ^[A-Za-z0-9]+$ ]] && error_message "密码(password)不可为空,字符范围:字母数字" && return 255
[[ ! "$4" =~ ^[0-9]{1,2}$ ]] && error_message "数据库索引(database)无效,有效值0~15" && return 255
return 0
}
# 输出 redis 连接参数值
function output_redis_params(){
echo redis_host=$redis_host
echo redis_port=$redis_port
echo redis_password=$redis_password
echo redis_database=$redis_database
}
# 设置 redis 连接参数
# 从 redis_host redis_port 等指向的变量名中读取连接参数作为默认输入
# 对话框结束时回写到对应的变量
# 如果参数无效则一直循环,如果点返回则跳出循环返回3,否则返回0
function fun_redis_connect(){
local host="$redis_host"
local port="$redis_port"
local password="$redis_password"
local database="$redis_database"
while true ;
do
# 保存对话框选项的值到$values,如果对话框选项返回,则$values值为'EXIT_$?'
local values=$(dialog \
--backtitle "$DEFAULT_BACK_TITLE$context_backtitle_suffix" \
--title '配置 redis 连接参数' $DLG_BACK_BTN --nocancel \
--form "请输入redis连接的参数:" 15 66 0 \
"主机名(host) :" 1 1 "$host" 1 24 34 0 \
"端口号(port) :" 2 1 "$port" 2 24 34 0 \
"密码(password) :" 3 1 "$password" 3 24 34 0 \
"数据库索引(database):" 4 1 "$database" 4 24 34 0 \
3>&1 1>&2 2>&3 || echo EXIT_$?)
[[ "$values" =~ EXIT_[0-9] ]] && return ${values##*EXIT_}
host="$(echo "$values" | sed -n 1p)"
port="$(echo "$values" | sed -n 2p)"
password="$(echo "$values" | sed -n 3p)"
database="$(echo "$values" | sed -n 4p)"
! _check_redis_params "$host" "$port" "$password" "$database" && continue
# 按确认按钮时将对话框返回值分别保存到对应的变量中
redis_host="$host"
redis_port="$port"
redis_password="$password"
redis_database="$database"
context_redis_configured=0
return 0
done
}
function fun_local_redis_connect(){
[ -z "$redis_host" ] && redis_host=$DEFAULT_REDIS_HOST
[ $redis_online -eq 0 ] && redis_port=$redis_online_port
# 没有指定密码时生成随机密码
[ -z "$redis_password" ] && redis_password="$(date +%s | md5sum | base64 | head -c 8)"
fun_redis_connect
}
function fun_remote_redis_connect(){
[ "$redis_host" == $DEFAULT_REDIS_HOST ] && redis_host=
fun_redis_connect
}
# 返回 redis_host redis_port redis_password redis_database 参数组成的 URI (jedis://)
function make_jedis_uri(){
echo "jedis://:$redis_password@$redis_host:$redis_port/$redis_database"
}
# 返回 redis_host redis_port redis_password redis_database 参数组成的 URI (redis://)
function make_redis_uri(){
echo "redis://:$redis_password@$redis_host:$redis_port/$redis_database"
}
#fun_redis_connect
#output_redis_params
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/l0km/facelog-delivery.git
git@gitee.com:l0km/facelog-delivery.git
l0km
facelog-delivery
facelog-delivery
master

搜索帮助