1 Star 0 Fork 23

keke/openharmony_oneclick_env_init

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
source.sh 4.12 KB
一键复制 编辑 原始数据 按行查看 历史
#!/bin/bash
baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)
################## 请仔细检查以下步骤,注释不需要的步骤 ##################
# 工作目录,根据实际情况设置
## 此目录编译Hi3516DV300平台后大小20G左右
## 用户家目录需要占用1G左右
work_dir=''
### 代理账号,根据实际情况填写,HW内网请填写china域账号
proxy_user=""
### 代理账号对应的密码,请输入原密码,不需要替换特殊字符,脚本自动URL转义
proxy_passwd=""
#### HW内网建议使用 proxycn2.huawei.com 或者 proxyhk.huawei.com
proxy_domain=""
#### 代理服务器端口,按照实际填写,不填写默认使用80,HW内网端口为8080
proxy_port=""
URL_proxy_passwd=`echo ${proxy_passwd}|tr -d '\n' |od -An -tx1|tr ' ' %|tr -d '\n'`
#↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑以上信息需要关注+修改↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑#
# 未配置工作目录,默认使用脚本当前目录
if [ "X${work_dir}" == "X" ];then
work_dir=${baseDirForScriptSelf}/
fi
#sudo chmod -R 777 ${work_dir}
# 判断工作目录字符串长度,如果超过100,需要提醒用户可能编译会遇到Argument list too long错误
# 至于为什么是100,完全拍脑袋定的,这里只是告警提示,不做强制判据
ignore_too_long_path=NO
if [ -f ${baseDirForScriptSelf}/dir_too_long.warn.`date '+%Y-%m-%d'` ];then
ignore_too_long_path=YES
fi
if [ "${#work_dir}" -gt 100 -a "${ignore_too_long_path}" == "NO" ];then
echo -e "${failed_color},源码所在目录长度超长,请关注!!!"
echo -e "${failed_color},源码所在目录长度超长,请关注!!!"
echo -e "${failed_color},源码所在目录长度超长,请关注!!!"
echo """源码所在目录长度为:${#work_dir} ,建议<100,如果源码路径超长,可能会引起编译失败
失败示例如下:
ninja: fatal: posix_spawn: Argument list too long
-------------------------------------------------
如果需要重新设置源码目录,请Ctrl+C取消后编辑init.sh重新设置work_dir,重新执行脚本"""
for ((i=10;i>0;i--));
do
echo -n "$i"
sleep 1
done
echo '''确认以上信息后,请按回车(Enter)后继续...
After confirming the above information, press Enter to continue...'''
read
touch ${baseDirForScriptSelf}/dir_too_long.warn.`date '+%Y-%m-%d'`
fi
if [ ! -d ${work_dir} ];then
sudo mkdir -p ${work_dir}
fi
# 工作目录,我本地比较大的磁盘挂载点是/data01,根据实际情况设置
## 此目录编译Hi3516DV300平台后大小为23G
## 用户家目录需要占用1G左右
# 用到的一些变量,提前声明
unix_time=`date '+%s'`
success_color='\033[1;42mSuccess\033[0m'
failed_color='\033[1;41mFailed\033[0m'
# 获取当前执行账号 name 与 group
os_user_name=`whoami`
os_user_group_id=`cat /etc/passwd|grep "${os_user_name}:"|awk -F ':' '{print $3}'`
os_user_group_name=`cat /etc/group|grep ":${os_user_group_id}:"|awk -F ':' '{print $1}'`
# git忽略ssl
git config --global http.sslVerify false >>${baseDirForScriptSelf}/init_run.log 2>&1
sudo git config --system http.sslverify false >>${baseDirForScriptSelf}/init_run.log 2>&1
# 记住密码
git config --global credential.helper store >>${baseDirForScriptSelf}/init_run.log 2>&1
function push_error(){
error_line=$1 # 报错行
error_msg=$2 # 报错消息
error_level=$3 # 报错是否需要退出:0不退出,1退出
echo "${failed_color},lines:${error_line},msg:${error_msg}"
if [ "X${error_level}" != "X0" ];then
exit 1
fi
}
function check_sha256(){
check_url=$1 #来源URL
local_file=$2 #本地文件绝对路径
check_sha256=`curl -s -k ${check_url}.sha256` # 当前使用华为云,URL固定,所以写死了,后续如果有变动,此处需要修改
local_sha256=`sha256sum ${local_file} |awk '{print $1}'`
if [ "X${check_sha256}" == "X${local_sha256}" ];then
echo -e "${success_color},Sha256 check OK."
else
echo -e "${failed_color},Sha256 check Failed."
exit 1 # 默认退出,必须保证sha256一致,如有特殊需要,请自行注释
fi
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chaonengkeke/openharmony_oneclick_env_init.git
git@gitee.com:chaonengkeke/openharmony_oneclick_env_init.git
chaonengkeke
openharmony_oneclick_env_init
openharmony_oneclick_env_init
master

搜索帮助