1 Star 1 Fork 23

李帅/openharmony_oneclick_env_init

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
init.sh 5.80 KB
一键复制 编辑 原始数据 按行查看 历史
mamingshuai 提交于 2021-08-30 01:55 . update init.sh.
#!/bin/bash
#
#set -x
##### 入参判断
# Gather command line options
for i in "$@"; do
case $i in
-skip-code|--skip-code) # Skip download code
SKIPCODE=NO
shift
;;
-with-build|--with-build) # build
WITHBUILD=YES
;;
*)
#TODO Maybe define a help section?
;;
esac
done
baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)
# 初始化环境变量
source ${baseDirForScriptSelf}/source.sh
# 必要检查
source ${baseDirForScriptSelf}/check.sh
# 用户注意事项
source ${baseDirForScriptSelf}/notice.sh
# 检查log文件是否存在,如果存在重命名
if [ -f ${baseDirForScriptSelf}/init_run.log ];then
mv ${baseDirForScriptSelf}/init_run.log init_run_`date '+%Y-%m-%d_%H-%M-%S'`.log
fi
# 设置Ubuntu的安装源,预置阿里云源,如需要修改,请编辑apt_get.sh; 如不需要设置,请注释
bash ${baseDirForScriptSelf}/apt_get.sh
if [ $? -gt 0 ];then exit 1;fi
# 设置pip安装源,预置阿里云源,如需要修改,请编辑pip.sh; 如不需要设置,请注释
bash ${baseDirForScriptSelf}/pip.sh
# 设置代理,包含http_proxy,https_proxy,git proxy配置;如不需要proxy,请注释; 如果需要使用,请同时修改 proxy.sh 脚本
source ${baseDirForScriptSelf}/proxy.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装apt-get 依赖包
source ${baseDirForScriptSelf}/apt_get_install.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装python以及pip相关依赖
source ${baseDirForScriptSelf}/pip_install.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装gn
echo 'Install gn'
bash ${baseDirForScriptSelf}/install_gn.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装llvm
echo 'Install llvm'
bash ${baseDirForScriptSelf}/install_llvm.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装ninja
echo 'Install ninja'
bash ${baseDirForScriptSelf}/install_ninja.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装gcc_riscv32
echo 'Install gcc_riscv32'
bash ${baseDirForScriptSelf}/install_gcc_riscv32.sh
if [ $? -gt 0 ];then exit 1;fi
# 切换shell为bash,此处需要手工选择
for ((i=5;i>0;i--));
do
echo "$i,切换bash为默认shell,请在弹出窗口选择NO! | Switching shell to bash. Please select NO!"
sleep 1
done
echo ' '
echo '''Switching shell to bash. Please select NO;
Please press Enter to continue'''
read
sudo dpkg-reconfigure dash
# 下载源码
echo '--------------------------------------------'
echo ' '
echo -e "\033[1;42;37m5s\033[0m 后开始下载最新代码"
echo ' '
echo '--------------------------------------------'
echo ' '
echo '''请注意,脚本默认强制清理工作目录,执行 git reset --hard;git clean -fd, 这会导致本地工作目录所有修改丢失,请提前保存数据'''
echo '''请注意,脚本默认强制清理工作目录,执行 git reset --hard;git clean -fd, 这会导致本地工作目录所有修改丢失,请提前保存数据'''
echo '''请注意,脚本默认强制清理工作目录,执行 git reset --hard;git clean -fd, 这会导致本地工作目录所有修改丢失,请提前保存数据'''
echo '''确认以上信息后请按Enter确认:'''
read
# 如果不下载代码, 安装hb,执行prebuilts脚本都跳过
if [ "${SKIPCODE}" != "NO" ];then
bash ${baseDirForScriptSelf}/download_code.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装hb
echo 'Install hb'
bash ${baseDirForScriptSelf}/install_hb.sh
if [ $? -gt 0 ];then exit 1;fi
# 安装prebuilts
cd ${work_dir}/OpenHarmony
### 在npm config set registry前一行强制插入忽略npm ssl
npm_config_set_registry_linenum=`cat build/prebuilts_download.sh |grep -n ' registry '|awk -F ':' '{print $1}'|head -n1`
sed -i "${npm_config_set_registry_linenum} i\ npm config set strict-ssl false" build/prebuilts_download.sh
## 内网使用内部镜像
if [ "${is_huawei}" == "true" ];then
npm_config_set_registry_linenum=`cat build/prebuilts_download.sh |grep -n ' registry '|awk -F ':' '{print $1}'|head -n1`
npm_config_set_registry_linenum=$((npm_config_set_registry_linenum+1))
sed -i "${npm_config_set_registry_linenum} i\ npm config set registry http://mirrors.tools.huawei.com/npm/" build/prebuilts_download.sh
fi
sudo bash build/prebuilts_download.sh
if [ $? -gt 0 ];then exit 1;fi
else
# 不下载代码,强制不编译
WITHBUILD=NO
# 不下载代码,进行友好提示
echo """您使用了--skip-code跳过了代码下载,以下环境未配置,请您注意:
1. hb未安装,如果需要手工安装请cd到代码根目录执行:
a) 安装:python3.8 -m pip install --user ohos-build
b) 配置环境变量:编辑~/.bashrc文件,在最后一行增加 export PATH=~/.local/bin:\$PATH
2. prebuilts下载脚本未执行,如果需要手工下载请cd到代码根目录执行:sudo bash build/prebuilts_download.sh
"""
fi
# /etc/profile 加到~/.bashrc,默认初始化环境
if [ -f ~/bashrc ];then
is_source_profile_exist=`cat ~/.bashrc|grep source|grep '/etc/profile'`
if [ "X${is_source_profile_exist}" == "X" ];then
echo 'source /etc/profile'>>~/.bashrc
fi
else
echo 'source /etc/profile'>>~/.bashrc
chmod 644 ~/.bashrc
fi
if [ "${WITHBUILD}" == "YES" ];then
# build all,可以根据需求,注释不需要的编译命令
python3.8 build.py -p wifiiot_hispark_pegasus@hisilicon -f
if [ $? -gt 0 ];then exit 1;fi
#python3.8 build.py -p ipcamera_hispark_taurus@hisilicon -f
if [ $? -gt 0 ];then exit 1;fi
#python3.8 build.py -p ipcamera_hispark_taurus_linux@hisilicon -f
if [ $? -gt 0 ];then exit 1;fi
#python3.8 build.py -p ipcamera_hispark_aries@hisilicon -f
if [ $? -gt 0 ];then exit 1;fi
fi
# 因为默认环境变量未生效,提醒用户使用source /etc/profile生效环境变量
echo ' '
echo """恭喜您, OpenHarmony环境搭建完成, 您可以退出当前终端, 重新进入加载新的环境变量
或者您可以在当前终端执行 source ~/.bashrc 立即生效
感谢您的使用"""
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/code_fighter/openharmony_oneclick_env_init.git
git@gitee.com:code_fighter/openharmony_oneclick_env_init.git
code_fighter
openharmony_oneclick_env_init
openharmony_oneclick_env_init
master

搜索帮助