mac上使用command快速打包 Typecho 主题

mac上使用command快速打包 Typecho 主题

2023年12月30日 作者头像 作者头像 泽泽社长 编辑

评论

0 Count

本地开发每次手动打包压缩主题文件夹感觉都挺难受的,今天刚好看到xiamp博主写的cmd脚本,想着mac下应该也能实现类似的,左右就问ai帮我写写。

代码

把下面的代码保存为pick.command,放到主题目录下,双击即可打包主题到主题目录下

#!/bin/bash

# 设置变量
current_directory=$(dirname "$0")

# 创建排除A文件夹的压缩包
cd "$current_directory"

# 从index.php文件中提取版本号和主题名
VERSION=$(grep -Eo '\*\s+@version\s+([0-9.]+)' index.php | grep -Eo '[0-9.]+')
THEME=$(grep -Eo '\*\s+@package\s+[a-zA-Z0-9.]+' index.php | awk '{print $NF}')

 excluded_folder="node_modules"
 zip_date=$(date '+%Y%m%d')  # 获取当前日期,格式为年月日,备用

 zip_filename="$THEME($VERSION)"  # 在文件名中添加版本号

 zip -r "../$THEME/$zip_filename.zip" "../$THEME" --exclude "../$THEME/$excluded_folder/*"
 # tar -czf "../$THEME/$zip_filename.tar.gz" -C "../$THEME" --exclude "$excluded_folder" .

 echo "压缩包已创建:../$THEME/$zip_filename"

说明

默认打包后的压缩包名字为 主题名(主题版本号),如果想改为日期形式可将zip_filename="$THEME($VERSION)"改为zip_filename="$THEME($zip_date)"

其中node_modules为排除的文件夹,就是主题文件夹里面node_modules这个文件夹不进行打包。

打包后的zip压缩包用mac电脑自带的解压工具无法解压,感觉应该是因为打包的信息缺少Mac需要的文件信息,此时如果想在Mac电脑上解压,需要用其他解压工具才能解压。

或者把

 zip -r "../$THEME/$zip_filename.zip" "../$THEME" --exclude "../$THEME/$excluded_folder/*"
 # tar -czf "../$THEME/$zip_filename.tar.gz" -C "../$THEME" --exclude "$excluded_folder" .

改成

 # zip -r "../$THEME/$zip_filename.zip" "../$THEME" --exclude "../$THEME/$excluded_folder/*"
tar -czf "../$THEME/$zip_filename.tar.gz" -C "../$THEME" --exclude "$excluded_folder" .

这样就改成tar.gz格式的压缩包了,Mac电脑默认就能解压了,不过我还是喜欢zip哈!