1#!/bin/bash
2
3# Copyright (c) 2021 Huawei Device Co., Ltd.
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14
15set -e
16
17cp ./docs/docker/Dockerfile ./build/build_scripts/
18
19sed -i "s@\t@@g" ./build/build_scripts/Dockerfile
20sed -i "s@\\\@@g" ./build/build_scripts/Dockerfile
21
22sed -i "s@FROM ubuntu:18.04@@g" ./build/build_scripts/Dockerfile
23sed -i "s@WORKDIR /home/openharmony@@g" ./build/build_scripts/Dockerfile
24sed -i "s@ENV LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8@@g" ./build/build_scripts/Dockerfile
25sed -i "s@RUN @@g" ./build/build_scripts/Dockerfile
26sed -i "s@&& @@g" ./build/build_scripts/Dockerfile
27
28sed -i 's@rm -rf /bin/sh.*\s@@' ./build/build_scripts/Dockerfile
29sed -i 's@ln -s /bin.*\s@@g' ./build/build_scripts/Dockerfile
30sed -i 's@ln -s /usr.*\s@@g' ./build/build_scripts/Dockerfile
31sed -i 's@locale-gen .*\s@@g' ./build/build_scripts/Dockerfile
32sed -i 's@^export PATH=.*\s@@g' ./build/build_scripts/Dockerfile
33
34sed -i 's@ruby\S*\s@ruby @' ./build/build_scripts/Dockerfile
35sed -i 's@python3\S*\s@@g' ./build/build_scripts/Dockerfile
36sed -i "s@git-core@git@g" ./build/build_scripts/Dockerfile
37sed -i "s@zlib*@zlib@g" ./build/build_scripts/Dockerfile
38
39sed -i "s@cd /home/openharmony@cd /../..@g" ./build/build_scripts/Dockerfile
40sed -i '/chmod +x /a python3 -m pip install --user build/lite' ./build/build_scripts/Dockerfile
41sed -i '/pip3 install six/i pip3 install testresources' ./build/build_scripts/Dockerfile
42
43
44sed -i "s@\t@@g" ./build/build_scripts/Dockerfile
45sed -i "s@\\\@@g" ./build/build_scripts/Dockerfile
46
47result1=$(echo $SHELL | grep "bash" || true)
48result2=$(echo $SHELL | grep "zsh" || true)
49
50userhome=~
51if [[ "$result1" != "" ]]
52then
53    sed -i "s@/root/.bashrc@"$userhome"/.bashrc@g" ./build/build_scripts/Dockerfile
54elif [[ "$result2" != "" ]]
55then
56    sed -i "s@/root/.bashrc@"$userhome"/.zshrc@g" ./build/build_scripts/Dockerfile
57else
58    echo "Shell is not default, please configure the PATH variable manually"
59fi
60
61archive='sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list'
62security='sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list'
63
64while true
65do
66    read -p "Will modify /etc/apt/sources.list, Backup to /etc/apt/sources.list.bak(y/n):" sign_value
67
68    if [[ "$sign_value" == "n" ]]
69    then
70        sed -i -e "s|$archive||" ./build/build_scripts/Dockerfile
71        sed -i -e "s|$security||" ./build/build_scripts/Dockerfile
72        break
73    elif [[ "$sign_value" == "y" || $sign_value == "" ]]
74    then
75        sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
76        break
77    fi
78done
79
80mv ./build/build_scripts/Dockerfile ./build/build_scripts/rundocker.sh
81chmod +x ./build/build_scripts/rundocker.sh
82sudo ./build/build_scripts/rundocker.sh
83
84echo "--------------------------------------------------------------------------------"
85echo "Please execute source ~/.bashrc or source ~/.zshrc, or restart the shell window"
86echo "--------------------------------------------------------------------------------"
87