-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.sh
executable file
·48 lines (39 loc) · 1.39 KB
/
main.sh
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
#!/bin/bash
# 检查输入参数的个数
if [ "$#" -ne 2 ]; then
echo "用法: $0 <源图片文件夹路径> <目标文件夹路径>"
exit 1
fi
# 读取输入参数
src_folder="$1"
dst_folder="$2"
# 检查目标文件夹是否存在,如果不存在则创建
if [ ! -d "$dst_folder" ]; then
mkdir -p "$dst_folder"
fi
# 创建临时目录
mkdir tmp # 存放展平后的所有原始图片
mkdir tmp_compressed # 存放压缩后的图片
# 展平资源目录
python3 flatter.py flat "$src_folder" ./tmp > map.json
# 压缩图片
./compress.sh ./tmp ./tmp_compressed
# 对 map.json 中的路径做替换,避免还原原始目录结构时覆盖原始文件
# 清除路径的"./"前缀(如果存在)
clean_src_folder="${src_folder#./}"
# 检查路径末尾是否带有/,如果不存在则加上
[[ "${clean_src_folder}" != */ ]] && clean_src_folder="${clean_src_folder}/"
clean_dst_folder="${dst_folder#./}"
[[ "${clean_dst_folder}" != */ ]] && clean_dst_folder="${clean_dst_folder}/"
# 获取当前工作目录
current_dir=$(pwd)
# 构造sed的搜索模式
search_pattern="${current_dir}/${clean_src_folder}"
# 构造sed的替换模式
replace_pattern="${current_dir}/${clean_dst_folder}"
# 替换
sed -i '' "s|${search_pattern}|${replace_pattern}|g" ./map.json
# 恢复原始目录结构
python3 flatter.py move_back ./map.json ./tmp_compressed/
# 清理
rm -rf ./tmp ./tmp_compressed