代码拉取完成,页面将自动刷新
同步操作将从 Michael/openharmony_oneclick_env_init 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。