adding clean script for verifier
[icn.git] / env / ubuntu / bootloader-env / 02_clean_bootloader_package_req.sh
1 #!/usr/bin/env bash
2 set -ex
3
4 source $(dirname $PWD)/../lib/common.sh
5 source $(dirname $PWD)/../lib/logging.sh
6
7 if [[ $EUID -ne 0 ]]; then
8     echo "This script must be run as root"
9     exit 1
10 fi
11
12 if [[ $(lsb_release -d | cut -f2) != $UBUNTU_BIONIC ]]; then
13     echo "Currently Ubuntu 18.04.2 LTS is only supported"
14     exit 1
15 fi
16
17 function autoremove {
18     #apt-get autoremove -y
19     rm -rf /etc/apt/sources.list.d/*
20 }
21
22 function clean_essential_packages {
23     apt-get update
24     for package in crudini curl dnsmasq figlet golang nmap patch psmisc \
25         python-pip python-requests python-setuptools vim wget; do
26         apt-get remove $package -y
27     done
28
29     autoremove
30 }
31
32 function check_prerequisite {
33     if !(which pip); then
34         apt-get install python-pip -y
35     fi
36
37     if !(which curl); then
38         apt-get install curl -y
39     fi
40
41     if !(which add-apt-repository); then
42         apt-get install software-properties-common -y
43     fi
44 }
45
46 function clean_ironic_packages {
47     for package in python-ironicclient \
48         python-ironic-inspector-client \
49         python-openstackclient genisoimage; do
50         apt-get remove $package -y
51     done
52 }
53
54 function clean_docker_packages {
55     curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
56     add-apt-repository \
57         "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
58         $(lsb_release -cs) \
59         stable"
60     apt-get update
61     apt-get remove docker-ce -y
62     #for package in apt-transport-https ca-certificates gnupg-agent \
63     #        software-properties-common; do
64     #    apt-get remove $package -y
65     #done
66
67     apt-get remove -y docker \
68         docker-engine \
69         docker.io \
70         containerd \
71         runc \
72         docker-ce
73
74     apt-get update
75 }
76
77 function clean_podman_packages {
78     apt-get update
79     add-apt-repository -y ppa:projectatomic/ppa
80     apt-get remove podman -y
81 }
82
83 function clean_kubernetes_packages {
84     #Just to make sure kubernetes packages are removed during the download
85     curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
86     bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
87 deb https://apt.kubernetes.io/ kubernetes-xenial main
88 EOF'
89     apt-get update
90     apt-get remove kubelet kubeadm kubectl -y
91 }
92
93 function clean_apt_cache {
94     shopt -s extglob
95     pushd /var/cache/apt/archives
96
97     if [ $(ls -1q . | wc -l ) -ge 3 ]; then
98         $(rm !("lock"|"partial"))
99     fi
100     popd
101
102 }
103
104 function mv_apt_cache {
105     shopt -s extglob
106     pushd /var/cache/apt/archives
107
108     if [ $(ls -1q . | wc -l ) -gt 2 ]; then
109         $(mv !("lock"|"partial") $LOCAL_APT_REPO)
110     fi
111     popd
112 }
113
114 function check_dir {
115     if [ ! -d $1 ]; then
116         mkdir -p $1
117     fi
118 }
119
120 function clean_dir {
121     shopt -s extglob
122     pushd $1
123
124     if [ $(ls -1q . | wc -l ) -ne 0 ]; then
125         $(rm -r ./*)
126     fi
127     popd
128 }
129
130 if [ "$1" == "--only-packages" ]; then
131     check_prerequisite
132     clean_docker_packages
133     #clean_ironic_packages
134     autoremove
135     exit 0
136 fi
137
138 check_prerequisite
139 clean_apt_cache
140 check_dir $LOCAL_APT_REPO
141 clean_dir $LOCAL_APT_REPO
142 check_dir $PIP_CACHE_DIR
143 clean_dir $PIP_CACHE_DIR
144 check_dir $BUILD_DIR
145 clean_dir $BUILD_DIR
146 check_dir $CONTAINER_IMAGES_DIR
147 clean_dir $CONTAINER_IMAGES_DIR
148 clean_kubernetes_packages
149 clean_podman_packages
150 clean_docker_packages
151 clean_ironic_packages
152 clean_essential_packages
153 rm -rf $LOCAL_APT_REPO
154 rm -rf $PIP_CACHE_DIR
155 rm -rf $BUILD_DIR
156 rm -rf $CONTAINER_IMAGES_DIR