-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathlibhelper
125 lines (111 loc) · 3.45 KB
/
libhelper
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
find_extracted_size() {
local local_file=${1}
local local_file_type=${2}
local local_size=
case ${local_file_type} in
*"POSIX tar archive"*)
local_size=$(ls -l "${local_file}" | awk '{print $5}')
local_size=$(( "${local_size}" / 1024 ))
;;
*"gzip compressed data"*)
local_size=$(gzip -l "${local_file}" | tail -1 | awk '{print $2}')
local_size=$(( "${local_size}" / 1024 ))
;;
*"XZ compressed data"*)
local_size=$(xz -l "${local_file}" | tail -1 | awk '{print $5}'|sed 's/,//g' | awk -F'.' '{print $1}')
local_size=$(( "${local_size}"+1 ))
local_size=$(( "${local_size}" * 1024 ))
;;
*"ext4 filesystem data"*)
local_size=$(ls -l "${local_file}" | awk '{print $5}')
local_size=$(( "${local_size}" / 1024 ))
;;
*)
echo "ABORT: Format not supported: ${local_size}"
exit 1
esac
echo ${local_size}
}
unpack_tar_file() {
local local_file=${1}
local local_mount_point=${2}
tar -xvf ${local_file} -C ${local_mount_point}
}
curl_me() {
local local_file=${1}
if [[ -z ${local_file} ]]; then
echo ""
return
fi
if [[ ! -f $(basename "${local_file}") ]]; then
curl -sSL -o "$(basename "${local_file}")" "${local_file}"
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
exit ${retconde}
fi
fi
echo $(basename "${local_file}")
}
get_mountpoint_dir() {
local local_mount_point_dir="$(mktemp -p "$(pwd)" -d -t kcv_"$(date +%y%m%d_%H%M%S)"-XXXXXXXXXX)"
echo "${local_mount_point_dir}"
}
get_new_file_name() {
local local_rootfs_file=${1}
local local_filename_suffix=${2}
echo "$(find . -type f -name "${local_rootfs_file}"| awk -F'.' '{print $2}'|sed 's|/||g')${local_filename_suffix}"
}
get_new_size() {
local local_overlay_size=${1}
local local_rootfs_size=${2}
local local_extra_size=${3}
local local_not_size=
local_new_size=$(( "${local_overlay_size}" + "${local_rootfs_size}" + "${local_extra_size}" ))
local_new_size=$(( "${local_new_size}" / 1024 ))
echo "${local_new_size}"
}
get_and_create_a_ddfile() {
local local_new_file_name=${1}
local local_new_size=${2}
dd if=/dev/zero of="${local_new_file_name}" bs=1M count=60 seek="${local_new_size}"
mkfs.ext4 "${local_new_file_name}"
}
get_and_create_new_rootfs() {
local local_rootfs_file=${1}
local local_new_file_name=${2}
local local_new_size=${3}
if [ -z "${local_rootfs_file##*.gz}" ]; then
gunzip -k "${local_rootfs_file}"
fi
echo resize2fs "${local_new_file_name}" "${local_new_size}"M
resize2fs "${local_new_file_name}" "${local_new_size}"M
retcode=$?
if [[ ${retcode} -ne 0 ]]; then
echo e2fsck -f "${local_new_file_name}"
e2fsck -f "${local_new_file_name}"
echo resize2fs "${local_new_file_name}" "${local_new_size}"M
resize2fs "${local_new_file_name}" "${local_new_size}"M
fi
}
loopback_mount() {
local local_new_file_name=${1}
local local_mount_point_dir=${2}
mount -o loop "${local_new_file_name}" "${local_mount_point_dir}"
}
virt_copy_in() {
local local_new_file_name=${1}
local local_mount_point_dir=${2}
virt-copy-in -a ${local_new_file_name} ${local_mount_point_dir}/* /
rm -rf "${local_mount_point_dir}"
}
create_a_sparse_img() {
local local_img_file=${1}
local local_new_file_name=${2}
echo "execute this command: img2simg ${local_new_file_name} ${local_img_file}"
img2simg "${local_new_file_name}" "${local_img_file}"
}
create_a_xz_file() {
local local_new_file_name=${1}
echo "execute this command: xz -c ${local_new_file_name} > ${local_new_file_name}.xz"
xz -c "${local_new_file_name}" > "$(basename "${local_new_file_name}").xz"
}