2021-01-05 23:38:00 +00:00
|
|
|
#!/bin/bash
|
2021-06-06 05:55:56 +00:00
|
|
|
# AutoBuild Module by Hyy2001 <https://github.com/Hyy2001X/AutoBuild-Actions>
|
2021-01-05 23:38:00 +00:00
|
|
|
# AutoBuild Functions
|
|
|
|
|
2021-11-20 14:04:51 +00:00
|
|
|
Firmware_Diy_Before() {
|
|
|
|
ECHO "[Firmware_Diy_Before] Starting ..."
|
2021-04-16 10:57:19 +00:00
|
|
|
Home="${GITHUB_WORKSPACE}/openwrt"
|
2021-11-20 14:04:51 +00:00
|
|
|
CONFIG_TEMP="${GITHUB_WORKSPACE}/openwrt/.config"
|
|
|
|
CD ${Home}
|
|
|
|
Firmware_Diy_Core
|
2021-06-17 09:55:08 +00:00
|
|
|
[[ ${Short_Firmware_Date} == true ]] && Compile_Date="$(echo ${Compile_Date} | cut -c1-8)"
|
2021-11-20 14:04:51 +00:00
|
|
|
Github="$(grep "https://github.com/[a-zA-Z0-9]" ${GITHUB_WORKSPACE}/.git/config | cut -c8-100 | sed 's/^[ \t]*//g')"
|
|
|
|
[[ -z ${Author} || ${Author} == AUTO ]] && Author="$(echo "${Github}" | cut -d "/" -f4)"
|
|
|
|
OP_AUTHOR="$(echo "${REPO_URL}" | cut -d "/" -f4)"
|
|
|
|
OP_REPO="$(echo "${REPO_URL}" | cut -d "/" -f5)"
|
2021-11-03 01:16:26 +00:00
|
|
|
OP_BRANCH="$(GET_Branch)"
|
2021-11-20 14:04:51 +00:00
|
|
|
if [[ ${OP_BRANCH} =~ (master|main) ]]
|
|
|
|
then
|
|
|
|
OP_VERSION_HEAD="R$(date +%y.%m)-"
|
2021-06-23 09:53:59 +00:00
|
|
|
else
|
2022-03-22 04:20:22 +00:00
|
|
|
OP_BRANCH="$(echo ${OP_BRANCH} | egrep -o "[0-9]+.[0-9]+" | awk 'NR==1')"
|
2021-11-20 14:04:51 +00:00
|
|
|
OP_VERSION_HEAD="R${OP_BRANCH}-"
|
2021-06-23 09:53:59 +00:00
|
|
|
fi
|
2021-11-20 14:04:51 +00:00
|
|
|
case "${OP_AUTHOR}/${OP_REPO}" in
|
2021-08-09 16:51:42 +00:00
|
|
|
coolsnowwolf/lede)
|
2022-03-15 03:46:54 +00:00
|
|
|
Version_File=package/lean/default-settings/files/zzz-default-settings
|
2021-07-02 15:51:31 +00:00
|
|
|
zzz_Default_Version="$(egrep -o "R[0-9]+\.[0-9]+\.[0-9]+" ${Version_File})"
|
2021-11-20 14:04:51 +00:00
|
|
|
OP_VERSION="${zzz_Default_Version}-${Compile_Date}"
|
2021-03-24 12:50:54 +00:00
|
|
|
;;
|
2021-08-09 16:51:42 +00:00
|
|
|
immortalwrt/immortalwrt)
|
2022-03-15 03:46:54 +00:00
|
|
|
Version_File=package/base-files/files/etc/openwrt_release
|
2021-11-20 14:04:51 +00:00
|
|
|
OP_VERSION="${OP_VERSION_HEAD}${Compile_Date}"
|
2021-03-24 12:50:54 +00:00
|
|
|
;;
|
|
|
|
*)
|
2021-11-20 14:04:51 +00:00
|
|
|
OP_VERSION="${OP_VERSION_HEAD}${Compile_Date}"
|
2021-03-24 12:50:54 +00:00
|
|
|
;;
|
|
|
|
esac
|
2021-06-17 09:55:08 +00:00
|
|
|
while [[ -z ${x86_Test} ]];do
|
2021-11-20 14:04:51 +00:00
|
|
|
x86_Test="$(egrep -o "CONFIG_TARGET.*DEVICE.*=y" ${CONFIG_TEMP} | sed -r 's/CONFIG_TARGET_(.*)_DEVICE_(.*)=y/\1/')"
|
2021-06-17 09:55:08 +00:00
|
|
|
[[ -n ${x86_Test} ]] && break
|
2021-11-20 14:04:51 +00:00
|
|
|
x86_Test="$(egrep -o "CONFIG_TARGET.*Generic=y" ${CONFIG_TEMP} | sed -r 's/CONFIG_TARGET_(.*)_Generic=y/\1/')"
|
2021-06-28 14:15:23 +00:00
|
|
|
[[ -z ${x86_Test} ]] && break
|
2021-04-09 14:43:50 +00:00
|
|
|
done
|
2021-06-17 09:55:08 +00:00
|
|
|
[[ ${x86_Test} == x86_64 ]] && {
|
2021-06-06 05:55:56 +00:00
|
|
|
TARGET_PROFILE=x86_64
|
2021-04-16 10:57:19 +00:00
|
|
|
} || {
|
2021-11-20 14:04:51 +00:00
|
|
|
TARGET_PROFILE="$(egrep -o "CONFIG_TARGET.*DEVICE.*=y" ${CONFIG_TEMP} | sed -r 's/.*DEVICE_(.*)=y/\1/')"
|
2021-04-16 10:57:19 +00:00
|
|
|
}
|
2021-11-20 14:04:51 +00:00
|
|
|
[[ -z ${TARGET_PROFILE} ]] && ECHO "Unable to get [TARGET_PROFILE] !"
|
|
|
|
TARGET_BOARD="$(awk -F '[="]+' '/TARGET_BOARD/{print $2}' ${CONFIG_TEMP})"
|
|
|
|
TARGET_SUBTARGET="$(awk -F '[="]+' '/TARGET_SUBTARGET/{print $2}' ${CONFIG_TEMP})"
|
|
|
|
[[ -z ${Firmware_Format} || ${Firmware_Format} =~ (false|AUTO) ]] && {
|
2021-08-09 16:51:42 +00:00
|
|
|
case "${TARGET_BOARD}" in
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
ramips | reltek | ath* | ipq* | bcm47xx | bmips | kirkwood | mediatek)
|
2021-08-09 16:51:42 +00:00
|
|
|
Firmware_Format=bin
|
|
|
|
;;
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
rockchip | x86 | bcm27xx | mxs | sunxi | zynq)
|
2022-03-15 03:46:54 +00:00
|
|
|
Firmware_Format="$(if_IMG)"
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
;;
|
|
|
|
mvebu)
|
|
|
|
case "${TARGET_SUBTARGET}" in
|
|
|
|
cortexa53 | cortexa72)
|
2022-03-15 03:46:54 +00:00
|
|
|
Firmware_Format="$(if_IMG)"
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
octeon | oxnas | pistachio)
|
|
|
|
Firmware_Format=tar
|
2021-08-09 16:51:42 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
2022-03-15 03:46:54 +00:00
|
|
|
[[ ${Author_URL} != false && ${Author_URL} == AUTO ]] && Author_URL="${Github}"
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
[[ ${Author_URL} == false ]] && unset Author_URL
|
|
|
|
if [[ ${Default_FLAG} == AUTO ]]
|
|
|
|
then
|
|
|
|
TARGET_FLAG=${CONFIG_FILE/${TARGET_PROFILE}-/}
|
|
|
|
[[ ${TARGET_FLAG} =~ ${TARGET_PROFILE} || -z ${TARGET_FLAG} || ${TARGET_FLAG} == ${CONFIG_FILE} ]] && TARGET_FLAG=Full
|
|
|
|
else
|
|
|
|
if [[ ! ${Default_FLAG} =~ (\"|=|-|_|\.|\#|\|) && ${Default_FLAG} =~ [a-zA-Z0-9] ]]
|
|
|
|
then
|
|
|
|
TARGET_FLAG="${Default_FLAG}"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if [[ ! ${Tempoary_FLAG} =~ (\"|=|-|_|\.|\#|\|) && ${Tempoary_FLAG} =~ [a-zA-Z0-9] ]]
|
|
|
|
then
|
|
|
|
TARGET_FLAG="${Tempoary_FLAG}"
|
|
|
|
fi
|
2021-07-16 16:11:35 +00:00
|
|
|
case "${TARGET_BOARD}" in
|
|
|
|
x86)
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
AutoBuild_Firmware="AutoBuild-${OP_REPO}-${TARGET_PROFILE}-${OP_VERSION}-BOOT-${TARGET_FLAG}-SHA256.FORMAT"
|
2021-06-06 05:55:56 +00:00
|
|
|
;;
|
|
|
|
*)
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
AutoBuild_Firmware="AutoBuild-${OP_REPO}-${TARGET_PROFILE}-${OP_VERSION}-${TARGET_FLAG}-SHA256.FORMAT"
|
2021-06-06 05:55:56 +00:00
|
|
|
;;
|
|
|
|
esac
|
2021-11-20 14:04:51 +00:00
|
|
|
cat >> ${GITHUB_ENV} <<EOF
|
2021-06-06 05:55:56 +00:00
|
|
|
Home=${Home}
|
2021-11-20 14:04:51 +00:00
|
|
|
CONFIG_TEMP=${CONFIG_TEMP}
|
|
|
|
INCLUDE_AutoBuild_Features=${INCLUDE_AutoBuild_Features}
|
|
|
|
INCLUDE_Original_OpenWrt_Compatible=${INCLUDE_Original_OpenWrt_Compatible}
|
|
|
|
Checkout_Virtual_Images=${Checkout_Virtual_Images}
|
2021-07-16 16:11:35 +00:00
|
|
|
AutoBuild_Firmware=${AutoBuild_Firmware}
|
2021-08-03 10:41:36 +00:00
|
|
|
CustomFiles=${GITHUB_WORKSPACE}/CustomFiles
|
|
|
|
Scripts=${GITHUB_WORKSPACE}/Scripts
|
2022-03-15 03:46:54 +00:00
|
|
|
BASE_FILES=${GITHUB_WORKSPACE}/openwrt/package/base-files/files
|
2021-11-20 14:04:51 +00:00
|
|
|
FEEDS_LUCI=${GITHUB_WORKSPACE}/openwrt/package/feeds/luci
|
|
|
|
FEEDS_PKG=${GITHUB_WORKSPACE}/openwrt/package/feeds/packages
|
|
|
|
Banner_Message="${Banner_Message}"
|
2021-08-09 16:51:42 +00:00
|
|
|
REGEX_Skip_Checkout="${REGEX_Skip_Checkout}"
|
2021-11-20 14:04:51 +00:00
|
|
|
Version_File=${Version_File}
|
|
|
|
Firmware_Format=${Firmware_Format}
|
|
|
|
FEEDS_CONF=${Home}/feeds.conf.default
|
|
|
|
Author_URL=${Author_URL}
|
|
|
|
ENV_FILE=${GITHUB_ENV}
|
|
|
|
|
2021-06-06 05:55:56 +00:00
|
|
|
EOF
|
2021-11-20 14:04:51 +00:00
|
|
|
source ${GITHUB_ENV}
|
|
|
|
echo -e "### VARIABLE LIST ###\n$(cat ${GITHUB_ENV})\n"
|
|
|
|
ECHO "[Firmware_Diy_Before] Done"
|
2021-01-11 13:44:45 +00:00
|
|
|
}
|
|
|
|
|
2021-11-20 14:04:51 +00:00
|
|
|
Firmware_Diy_Main() {
|
|
|
|
ECHO "[Firmware_Diy_Main] Starting ..."
|
2021-08-04 10:58:50 +00:00
|
|
|
CD ${Home}
|
2022-03-15 03:46:54 +00:00
|
|
|
chmod 777 -R ${Scripts} ${CustomFiles}
|
2021-11-20 14:04:51 +00:00
|
|
|
if [[ ${INCLUDE_AutoBuild_Features} == true ]]
|
|
|
|
then
|
|
|
|
MKDIR ${BASE_FILES}/etc/AutoBuild
|
|
|
|
touch ${BASE_FILES}/etc/AutoBuild/Default_Variable ${BASE_FILES}/etc/AutoBuild/Custom_Variable
|
|
|
|
cat >> ${BASE_FILES}/etc/AutoBuild/Default_Variable <<EOF
|
|
|
|
## 请不要修改此文件中的内容, 自定义变量请在 Custom_Variable 中添加或修改
|
|
|
|
## 该文件将在运行 AutoUpdate.sh 时被读取, 该文件中的变量优先级低于 Custom_Variable
|
|
|
|
|
|
|
|
EOF
|
|
|
|
for i in ${BASE_FILES}/etc/AutoBuild/Default_Variable ${GITHUB_ENV}
|
|
|
|
do
|
|
|
|
cat >> ${i} <<EOF
|
|
|
|
Author=${Author}
|
|
|
|
Github=${Github}
|
|
|
|
TARGET_PROFILE=${TARGET_PROFILE}
|
|
|
|
TARGET_BOARD=${TARGET_BOARD}
|
|
|
|
TARGET_SUBTARGET=${TARGET_SUBTARGET}
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
TARGET_FLAG=${TARGET_FLAG}
|
2021-11-20 14:04:51 +00:00
|
|
|
OP_VERSION=${OP_VERSION}
|
|
|
|
OP_AUTHOR=${OP_AUTHOR}
|
|
|
|
OP_REPO=${OP_REPO}
|
|
|
|
OP_BRANCH=${OP_BRANCH}
|
|
|
|
|
|
|
|
EOF
|
|
|
|
done
|
|
|
|
unset i
|
|
|
|
cat >> ${BASE_FILES}/etc/AutoBuild/Custom_Variable <<EOF
|
|
|
|
## 请在下方输入你的自定义变量,一行只能填写一个变量
|
|
|
|
## 该文件将在运行 AutoUpdate.sh 时被读取, 该文件中的变量优先级高于 Default_Variable
|
|
|
|
## 示例:
|
|
|
|
# Author=Hyy2001
|
|
|
|
# TARGET_PROFILE=x86_64
|
|
|
|
# Github=https://github.com/Hyy2001X/AutoBuild-Actions
|
|
|
|
# Tmp_Path=/tmp/AutoUpdate
|
|
|
|
# Log_Path=/tmp
|
|
|
|
|
|
|
|
EOF
|
|
|
|
Copy ${Scripts}/AutoBuild_Tools.sh ${BASE_FILES}/bin
|
|
|
|
Copy ${Scripts}/AutoUpdate.sh ${BASE_FILES}/bin
|
|
|
|
AutoUpdate_Version=$(awk -F '=' '/Version/{print $2}' ${BASE_FILES}/bin/AutoUpdate.sh | awk 'NR==1')
|
2022-03-22 11:01:58 +00:00
|
|
|
AddPackage svn other luci-app-autoupdate Hyy2001X/AutoBuild-Packages/trunk
|
2021-11-20 14:04:51 +00:00
|
|
|
Copy ${CustomFiles}/Depends/profile ${BASE_FILES}/etc
|
|
|
|
Copy ${CustomFiles}/Depends/base-files-essential ${BASE_FILES}/lib/upgrade/keep.d
|
|
|
|
case "${OP_AUTHOR}/${OP_REPO}" in
|
2021-08-04 10:58:50 +00:00
|
|
|
coolsnowwolf/lede)
|
|
|
|
Copy ${CustomFiles}/Depends/coremark.sh ${Home}/$(PKG_Finder d "package feeds" coremark)
|
2021-11-03 01:16:26 +00:00
|
|
|
sed -i '\/etc\/firewall.user/d;/exit 0/d' ${Version_File}
|
|
|
|
cat >> ${Version_File} <<EOF
|
|
|
|
|
2021-11-07 06:24:27 +00:00
|
|
|
sed -i '/check_signature/d' /etc/opkg.conf
|
2021-11-06 14:22:29 +00:00
|
|
|
|
2021-11-03 01:16:26 +00:00
|
|
|
sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/aliyundrive-webdav.lua
|
|
|
|
sed -i 's/services/nas/g' /usr/lib/lua/luci/view/aliyundrive-webdav/aliyundrive-webdav_log.htm
|
|
|
|
sed -i 's/services/nas/g' /usr/lib/lua/luci/view/aliyundrive-webdav/aliyundrive-webdav_status.htm
|
|
|
|
|
|
|
|
sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/controller/v2ray_server.lua
|
|
|
|
sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/model/cbi/v2ray_server/index.lua
|
|
|
|
sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/model/cbi/v2ray_server/user.lua
|
|
|
|
sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/log.htm
|
|
|
|
sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/users_list_status.htm
|
|
|
|
sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/users_list_status.htm
|
|
|
|
sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/v2ray.htm
|
|
|
|
|
2021-11-07 02:19:58 +00:00
|
|
|
if [ -z "\$(grep "REDIRECT --to-ports 53" /etc/firewall.user 2> /dev/null)" ]
|
2021-11-03 01:16:26 +00:00
|
|
|
then
|
|
|
|
echo '#iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
|
|
|
|
echo '#iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
|
2021-11-06 14:22:29 +00:00
|
|
|
echo '#[ -n "\$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
|
|
|
|
echo '#[ -n "\$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
|
2021-11-03 01:16:26 +00:00
|
|
|
fi
|
|
|
|
exit 0
|
|
|
|
EOF
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
if [[ -n ${TARGET_FLAG} ]]
|
|
|
|
then
|
|
|
|
sed -i "s?${zzz_Default_Version}?${TARGET_FLAG} ${zzz_Default_Version} @ ${Author} [${Display_Date}]?g" ${Version_File}
|
|
|
|
else
|
|
|
|
sed -i "s?${zzz_Default_Version}?${zzz_Default_Version} @ ${Author} [${Display_Date}]?g" ${Version_File}
|
|
|
|
fi
|
2021-08-04 10:58:50 +00:00
|
|
|
;;
|
|
|
|
immortalwrt/immortalwrt)
|
2021-11-20 14:04:51 +00:00
|
|
|
Copy ${CustomFiles}/Depends/openwrt_release_${OP_AUTHOR} ${BASE_FILES}/etc openwrt_release
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
if [[ -n ${TARGET_FLAG} ]]
|
|
|
|
then
|
|
|
|
sed -i "s?ImmortalWrt?ImmortalWrt ${TARGET_FLAG} @ ${Author} [${Display_Date}]?g" ${Version_File}
|
|
|
|
else
|
|
|
|
sed -i "s?ImmortalWrt?ImmortalWrt @ ${Author} [${Display_Date}]?g" ${Version_File}
|
|
|
|
fi
|
2021-08-04 10:58:50 +00:00
|
|
|
;;
|
|
|
|
esac
|
2021-08-05 07:27:21 +00:00
|
|
|
sed -i "s?By?By ${Author}?g" ${CustomFiles}/Depends/banner
|
2021-11-20 14:04:51 +00:00
|
|
|
sed -i "s?Openwrt?Openwrt ${OP_VERSION} / AutoUpdate ${AutoUpdate_Version}?g" ${CustomFiles}/Depends/banner
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
if [[ -n ${Banner_Message} ]]
|
|
|
|
then
|
|
|
|
if [[ -n ${TARGET_FLAG} ]]
|
|
|
|
then
|
|
|
|
sed -i "s?Powered by AutoBuild-Actions?${Banner_Message} @ ${TARGET_FLAG}?g" ${CustomFiles}/Depends/banner
|
|
|
|
else
|
|
|
|
sed -i "s?Powered by AutoBuild-Actions?${Banner_Message}?g" ${CustomFiles}/Depends/banner
|
|
|
|
fi
|
|
|
|
fi
|
2021-11-20 14:04:51 +00:00
|
|
|
case "${OP_AUTHOR}/${OP_REPO}" in
|
2021-08-04 10:58:50 +00:00
|
|
|
immortalwrt/immortalwrt)
|
|
|
|
Copy ${CustomFiles}/Depends/banner ${Home}/$(PKG_Finder d package default-settings)/files openwrt_banner
|
|
|
|
;;
|
|
|
|
*)
|
2021-11-20 14:04:51 +00:00
|
|
|
Copy ${CustomFiles}/Depends/banner ${BASE_FILES}/etc
|
2021-08-04 10:58:50 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
2021-11-20 14:04:51 +00:00
|
|
|
[[ -n ${Tempoary_IP} ]] && {
|
|
|
|
ECHO "Using Tempoary IP Address: ${Tempoary_IP} ..."
|
|
|
|
Default_IP="${Tempoary_IP}"
|
|
|
|
}
|
|
|
|
[[ -n ${Default_IP} && ${Default_IP} =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] && {
|
|
|
|
Old_IP=$(awk -F '[="]+' '/ipaddr:-/{print $3}' ${BASE_FILES}/bin/config_generate | awk 'NR==1')
|
|
|
|
if [[ ! ${Default_IP} == ${Old_IP} ]]
|
|
|
|
then
|
|
|
|
ECHO "Setting default IP Address to ${Default_IP} ..."
|
|
|
|
sed -i "s/${Old_IP}/${Default_IP}/g" ${BASE_FILES}/bin/config_generate
|
2021-04-24 14:24:26 +00:00
|
|
|
fi
|
2021-07-16 16:11:35 +00:00
|
|
|
}
|
2021-12-30 13:39:48 +00:00
|
|
|
for X in $(ls -1 target/linux/generic | grep "config-")
|
|
|
|
do
|
|
|
|
sed -i '/CONFIG_FAT_DEFAULT_IOCHARSET/d' target/linux/generic/${X}
|
|
|
|
echo -e '\nCONFIG_FAT_DEFAULT_IOCHARSET="utf8"' >> target/linux/generic/${X}
|
|
|
|
done
|
2021-11-20 14:04:51 +00:00
|
|
|
ECHO "[Firmware_Diy_Main] Done"
|
2021-05-26 13:28:07 +00:00
|
|
|
}
|
|
|
|
|
2021-11-20 14:04:51 +00:00
|
|
|
Firmware_Diy_Other() {
|
|
|
|
ECHO "[Firmware_Diy_Other] Starting ..."
|
|
|
|
CD ${Home}
|
|
|
|
case "${INCLUDE_Original_OpenWrt_Compatible}" in
|
2021-05-26 13:28:07 +00:00
|
|
|
19.07)
|
2021-07-09 14:04:24 +00:00
|
|
|
OP_BRANCH=19.07
|
2021-05-26 13:28:07 +00:00
|
|
|
Force_mode=1
|
2021-11-20 14:04:51 +00:00
|
|
|
INCLUDE_Original_OpenWrt_Compatible=true
|
2021-05-26 13:28:07 +00:00
|
|
|
;;
|
|
|
|
21.02)
|
2021-07-09 14:04:24 +00:00
|
|
|
OP_BRANCH=21.02
|
2021-05-26 13:28:07 +00:00
|
|
|
Force_mode=1
|
2021-11-20 14:04:51 +00:00
|
|
|
INCLUDE_Original_OpenWrt_Compatible=true
|
2021-05-26 13:28:07 +00:00
|
|
|
;;
|
|
|
|
esac
|
2021-11-20 14:04:51 +00:00
|
|
|
if [[ ${INCLUDE_Original_OpenWrt_Compatible} == true ]]
|
|
|
|
then
|
|
|
|
if [[ ${OP_AUTHOR} =~ (openwrt|[Ll]ienol) || ${Force_mode} == 1 ]]
|
|
|
|
then
|
|
|
|
ECHO "Starting to run [Obsolete_Package_Compatible] Script ..."
|
2021-07-09 14:04:24 +00:00
|
|
|
case "${OP_BRANCH}" in
|
2021-07-16 16:11:35 +00:00
|
|
|
19.07 | 21.02 | main)
|
|
|
|
[[ ${OP_BRANCH} == main ]] && OP_BRANCH=21.02
|
2021-11-20 14:04:51 +00:00
|
|
|
cat >> ${CONFIG_TEMP} <<EOF
|
2021-10-06 08:28:13 +00:00
|
|
|
|
|
|
|
# CONFIG_PACKAGE_dnsmasq is not set
|
|
|
|
CONFIG_PACKAGE_dnsmasq-full=y
|
|
|
|
# CONFIG_PACKAGE_wpad-wolfssl is not set
|
|
|
|
CONFIG_PACKAGE_wpad-openssl=y
|
|
|
|
EOF
|
2022-01-05 12:37:22 +00:00
|
|
|
Copy ${CustomFiles}/Patches/fix_upx-ucl-${OP_BRANCH}.patch ${Home}
|
|
|
|
cat fix_upx-ucl-${OP_BRANCH}.patch | patch -p1 > /dev/null 2>&1
|
2021-10-06 08:28:13 +00:00
|
|
|
AddPackage svn feeds/packages golang coolsnowwolf/packages/trunk/lang
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "Starting to convert zh-cn translation files to zh_Hans ..."
|
2021-11-20 14:04:51 +00:00
|
|
|
cd package && bash ${Scripts}/Convert_Translation.sh && cd -
|
2021-04-09 14:43:50 +00:00
|
|
|
;;
|
|
|
|
*)
|
2021-11-20 14:04:51 +00:00
|
|
|
ECHO "[${OP_BRANCH}]: Current OP_BRANCH is not supported !"
|
2021-04-09 14:43:50 +00:00
|
|
|
;;
|
|
|
|
esac
|
2021-05-26 13:28:07 +00:00
|
|
|
else
|
2021-11-20 14:04:51 +00:00
|
|
|
ECHO "[${OP_AUTHOR}]: Current OP_AUTHOR is not supported !"
|
2021-05-26 13:28:07 +00:00
|
|
|
fi
|
|
|
|
fi
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
if [[ -n ${Author_URL} ]]
|
2021-11-20 14:04:51 +00:00
|
|
|
then
|
|
|
|
cat >> ${CONFIG_TEMP} <<EOF
|
2021-11-06 14:22:29 +00:00
|
|
|
|
|
|
|
CONFIG_KERNEL_BUILD_USER="${Author}"
|
2021-11-20 14:04:51 +00:00
|
|
|
CONFIG_KERNEL_BUILD_DOMAIN="${Author_URL}"
|
2021-11-06 14:22:29 +00:00
|
|
|
EOF
|
2021-11-20 14:04:51 +00:00
|
|
|
fi
|
|
|
|
ECHO "[Firmware_Diy_Other] Done"
|
2021-01-11 13:44:45 +00:00
|
|
|
}
|
|
|
|
|
2021-11-20 14:04:51 +00:00
|
|
|
Firmware_Diy_End() {
|
|
|
|
ECHO "[Firmware_Diy_End] Starting ..."
|
|
|
|
cd ${Home}
|
|
|
|
MKDIR ${Home}/bin/Firmware
|
|
|
|
Firmware_Path="${Home}/bin/targets/${TARGET_BOARD}/${TARGET_SUBTARGET}"
|
2021-08-09 16:51:42 +00:00
|
|
|
SHA256_File="${Firmware_Path}/sha256sums"
|
2021-06-06 05:55:56 +00:00
|
|
|
cd ${Firmware_Path}
|
2021-07-16 16:11:35 +00:00
|
|
|
echo -e "### FIRMWARE OUTPUT ###\n$(ls -1 | egrep -v "packages|buildinfo|sha256sums|manifest")\n"
|
|
|
|
case "${TARGET_BOARD}" in
|
|
|
|
x86)
|
|
|
|
[[ ${Checkout_Virtual_Images} == true ]] && {
|
2021-08-09 16:51:42 +00:00
|
|
|
Process_Firmware $(List_Format)
|
2021-07-16 16:11:35 +00:00
|
|
|
} || {
|
2021-08-09 16:51:42 +00:00
|
|
|
Process_Firmware ${Firmware_Format}
|
2021-06-17 09:55:08 +00:00
|
|
|
}
|
2021-02-19 08:17:31 +00:00
|
|
|
;;
|
|
|
|
*)
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
if [[ -n ${Firmware_Format} ]]
|
|
|
|
then
|
|
|
|
Process_Firmware ${Firmware_Format}
|
|
|
|
else
|
|
|
|
Process_Firmware $(List_Format)
|
|
|
|
fi
|
2021-02-19 08:17:31 +00:00
|
|
|
;;
|
|
|
|
esac
|
2021-11-20 14:04:51 +00:00
|
|
|
[[ $(ls) =~ 'AutoBuild-' ]] && {
|
|
|
|
cd -
|
|
|
|
cp -a ${Firmware_Path}/AutoBuild-* bin/Firmware
|
|
|
|
}
|
2021-04-06 13:56:16 +00:00
|
|
|
echo "[$(date "+%H:%M:%S")] Actions Avaliable: $(df -h | grep "/dev/root" | awk '{printf $4}')"
|
2021-11-20 14:04:51 +00:00
|
|
|
ECHO "[Firmware_Diy_End] Done"
|
2021-01-11 13:44:45 +00:00
|
|
|
}
|
|
|
|
|
2021-08-09 16:51:42 +00:00
|
|
|
Process_Firmware() {
|
2021-07-16 16:11:35 +00:00
|
|
|
while [[ $1 ]];do
|
2021-08-09 16:51:42 +00:00
|
|
|
Process_Firmware_Core $1 $(List_Firmware $1)
|
2021-07-16 16:11:35 +00:00
|
|
|
shift
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2021-08-09 16:51:42 +00:00
|
|
|
Process_Firmware_Core() {
|
|
|
|
Firmware_Format_Defined=$1
|
2021-07-16 16:11:35 +00:00
|
|
|
shift
|
|
|
|
while [[ $1 ]];do
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
Firmware=${AutoBuild_Firmware}
|
2021-07-16 16:11:35 +00:00
|
|
|
case "${TARGET_BOARD}" in
|
|
|
|
x86)
|
|
|
|
[[ $1 =~ efi ]] && {
|
2021-11-20 14:04:51 +00:00
|
|
|
FW_Boot_Method=UEFI
|
|
|
|
} || FW_Boot_Method=BIOS
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
Firmware=${Firmware/BOOT/${FW_Boot_Method}}
|
2021-07-16 16:11:35 +00:00
|
|
|
;;
|
|
|
|
esac
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
Firmware=${Firmware/SHA256/$(Get_SHA256 $1)}
|
|
|
|
Firmware=${Firmware/FORMAT/${Firmware_Format_Defined}}
|
2021-07-16 16:11:35 +00:00
|
|
|
[[ -f $1 ]] && {
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
ECHO "Copying [$1] to [${Firmware}] ..."
|
|
|
|
cp -a $1 ${Firmware}
|
|
|
|
} || ECHO "Unable to access [${Firmware}] ..."
|
2021-07-16 16:11:35 +00:00
|
|
|
shift
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
List_Firmware() {
|
|
|
|
[[ -z $* ]] && {
|
2021-08-09 16:51:42 +00:00
|
|
|
List_REGEX | while read X;do
|
2021-11-20 14:04:51 +00:00
|
|
|
echo ${X} | cut -d "*" -f2
|
2021-07-16 16:11:35 +00:00
|
|
|
done
|
|
|
|
} || {
|
|
|
|
while [[ $1 ]];do
|
2021-08-09 16:51:42 +00:00
|
|
|
for X in $(echo $(List_REGEX));do
|
2021-11-20 14:04:51 +00:00
|
|
|
[[ ${X} == *$1 ]] && echo "${X}" | cut -d "*" -f2
|
2021-07-16 16:11:35 +00:00
|
|
|
done
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
List_Format() {
|
2021-08-09 16:51:42 +00:00
|
|
|
echo "$(List_REGEX | cut -d "*" -f2 | cut -d "." -f2-3)" | sort | uniq
|
2021-07-16 16:11:35 +00:00
|
|
|
}
|
|
|
|
|
2021-08-09 16:51:42 +00:00
|
|
|
List_REGEX() {
|
|
|
|
[[ -n ${REGEX_Skip_Checkout} ]] && {
|
|
|
|
egrep -v "${REGEX_Skip_Checkout}" ${SHA256_File} | tr -s '\n'
|
|
|
|
} || egrep -v "packages|buildinfo|sha256sums|manifest|kernel|rootfs|factory" ${SHA256_File} | tr -s '\n'
|
2021-06-06 05:55:56 +00:00
|
|
|
}
|
|
|
|
|
2021-08-09 16:51:42 +00:00
|
|
|
Get_SHA256() {
|
|
|
|
List_REGEX | grep "$1" | cut -c1-5
|
2021-06-06 05:55:56 +00:00
|
|
|
}
|
|
|
|
|
2021-11-03 01:16:26 +00:00
|
|
|
GET_Branch() {
|
2021-08-03 10:41:36 +00:00
|
|
|
git -C $(pwd) rev-parse --abbrev-ref HEAD | grep -v HEAD || \
|
|
|
|
git -C $(pwd) describe --exact-match HEAD || \
|
|
|
|
git -C $(pwd) rev-parse HEAD
|
2021-05-19 01:03:41 +00:00
|
|
|
}
|
|
|
|
|
AutoBuild-Actions: 20211212 功能更新
2021/12/12 更新内容
1. 新增固件标签 Default_FLAG, 一键更新固件时会自动检测带该标签的固件版本, e.g. 若固件标签为 Full, 则更新固件时仅可以更新到固件名称中带 Full 标签的版本
补充: 用户自定义变量 Default_FLAG, 支持数字与字母的组合 [0-9a-zA-Z] 例如 [Full Lite Daily1 Test2], 不支持标点符号, 不能为空
当该值为 AUTO 时, 将自动从配置文件名称获取, 格式为 <TARGET_PROFILE>-<FLAG>, e.g. 配置文件名称为 [x86_64-Test 或 d-team_newifi-d2-Lite], 则标签分别为 [Test Lite]; 配置文件若为不规则命名或无标签例如 [x86_64 X86 NEWIFI-D2], 则标签自动设定为 Full
同时支持在手动编译时临时修改, 点击 Run workflow 后修改 固件名称后缀 [可选] 值即可, 优先级高于用户自定义变量 Default_FLAG
固件内支持标签的快速切换, 切换方法 autoupdate --flag <标签名>, 恢复默认 autoupdate --flag reset
2. AutoBuild_Function.sh Firmware_Diy 函数中新增 CONFIG_FILE TARGET_FLAG 等可调用变量
3. 新增一些设备支持 (也许, 我也不知道)
改动内容较大, 建议重新 Fork 本仓库
2021-12-11 17:05:38 +00:00
|
|
|
if_IMG() {
|
|
|
|
[[ $(cat ${CONFIG_TEMP}) =~ CONFIG_TARGET_IMAGES_GZIP=y ]] && {
|
|
|
|
echo img.gz
|
|
|
|
} || echo img
|
|
|
|
}
|
|
|
|
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO() {
|
2021-06-17 09:55:08 +00:00
|
|
|
echo "[$(date "+%H:%M:%S")] $*"
|
2021-01-05 23:38:00 +00:00
|
|
|
}
|
|
|
|
|
2021-02-23 11:44:45 +00:00
|
|
|
PKG_Finder() {
|
2021-06-23 09:53:59 +00:00
|
|
|
local Result
|
2021-04-16 10:57:19 +00:00
|
|
|
[[ $# -ne 3 ]] && {
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "Usage: PKG_Finder <f | d> Search_Path Target_Name/Target_Path"
|
2021-04-16 10:57:19 +00:00
|
|
|
return 0
|
|
|
|
}
|
2021-07-04 09:21:13 +00:00
|
|
|
Result=$(find $2 -name $3 -type $1 -exec echo {} \;)
|
2021-06-23 09:53:59 +00:00
|
|
|
[[ -n ${Result} ]] && echo "${Result}"
|
2021-02-23 11:44:45 +00:00
|
|
|
}
|
|
|
|
|
2021-08-04 10:58:50 +00:00
|
|
|
CD() {
|
|
|
|
cd $1
|
2021-11-20 14:04:51 +00:00
|
|
|
[[ ! $? == 0 ]] && ECHO "Unable to enter target directory $1 ..." || ECHO "Entering directory: $(pwd) ..."
|
2021-08-04 10:58:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
MKDIR() {
|
|
|
|
while [[ $1 ]];do
|
2021-11-20 14:04:51 +00:00
|
|
|
if [[ ! -d $1 ]]
|
|
|
|
then
|
2021-08-04 10:58:50 +00:00
|
|
|
mkdir -p $1 || ECHO "Failed to create target directory: [$1] ..."
|
|
|
|
fi
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2021-04-24 14:24:26 +00:00
|
|
|
AddPackage() {
|
2021-04-16 10:57:19 +00:00
|
|
|
[[ $# -lt 4 ]] && {
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "Syntax error: [$#] [$*]"
|
2021-04-16 10:57:19 +00:00
|
|
|
return 0
|
|
|
|
}
|
2021-07-19 04:17:05 +00:00
|
|
|
PKG_PROTO=$1
|
|
|
|
case "${PKG_PROTO}" in
|
|
|
|
git | svn)
|
|
|
|
:
|
|
|
|
;;
|
|
|
|
*)
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "Unknown content: ${PKG_PROTO}"
|
|
|
|
return 0
|
2021-07-19 04:17:05 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
PKG_DIR=$2
|
2021-08-03 10:41:36 +00:00
|
|
|
[[ ! ${PKG_DIR} =~ ${GITHUB_WORKSPACE} ]] && PKG_DIR=package/${PKG_DIR}
|
2021-07-19 04:17:05 +00:00
|
|
|
PKG_NAME=$3
|
2021-06-17 09:55:08 +00:00
|
|
|
REPO_URL="https://github.com/$4"
|
2021-07-19 05:18:50 +00:00
|
|
|
REPO_BRANCH=$5
|
2021-11-20 14:04:51 +00:00
|
|
|
[[ ${REPO_URL} =~ "${OP_AUTHOR}/${OP_REPO}" ]] && return 0
|
2021-06-06 05:55:56 +00:00
|
|
|
|
2021-08-04 10:58:50 +00:00
|
|
|
MKDIR ${PKG_DIR}
|
2021-08-03 10:41:36 +00:00
|
|
|
[[ -d ${PKG_DIR}/${PKG_NAME} ]] && {
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "Removing old package: [${PKG_NAME}] ..."
|
2021-08-03 10:41:36 +00:00
|
|
|
rm -rf ${PKG_DIR}/${PKG_NAME}
|
2021-04-16 10:57:19 +00:00
|
|
|
}
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "Checking out package [${PKG_NAME}] to ${PKG_DIR} ..."
|
2021-03-04 03:48:24 +00:00
|
|
|
case "${PKG_PROTO}" in
|
|
|
|
git)
|
2021-07-19 05:18:50 +00:00
|
|
|
[[ -z ${REPO_BRANCH} ]] && {
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "WARNING: Syntax missing <branch> ,using default branch: [master]"
|
2021-07-19 05:18:50 +00:00
|
|
|
REPO_BRANCH=master
|
|
|
|
}
|
2021-04-15 07:12:03 +00:00
|
|
|
PKG_URL="$(echo ${REPO_URL}/${PKG_NAME} | sed s/[[:space:]]//g)"
|
|
|
|
git clone -b ${REPO_BRANCH} ${PKG_URL} ${PKG_NAME} > /dev/null 2>&1
|
2021-03-04 03:48:24 +00:00
|
|
|
;;
|
|
|
|
svn)
|
|
|
|
svn checkout ${REPO_URL}/${PKG_NAME} ${PKG_NAME} > /dev/null 2>&1
|
|
|
|
;;
|
|
|
|
esac
|
2021-06-27 03:52:06 +00:00
|
|
|
[[ -f ${PKG_NAME}/Makefile || -n $(ls -A ${PKG_NAME}) ]] && {
|
2021-08-03 10:41:36 +00:00
|
|
|
mv -f "${PKG_NAME}" "${PKG_DIR}"
|
2021-11-20 14:04:51 +00:00
|
|
|
[[ $? == 0 ]] && ECHO "Done"
|
2021-08-04 10:58:50 +00:00
|
|
|
} || ECHO "Failed to download package ${PKG_NAME} ..."
|
2021-01-05 23:38:00 +00:00
|
|
|
}
|
|
|
|
|
2021-06-18 02:08:35 +00:00
|
|
|
Copy() {
|
2021-08-03 10:41:36 +00:00
|
|
|
[[ ! $# =~ [23] ]] && {
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "Syntax error: [$#] [$*]"
|
2021-04-16 10:57:19 +00:00
|
|
|
return 0
|
|
|
|
}
|
2021-08-03 10:41:36 +00:00
|
|
|
[[ ! -f $1 ]] && [[ ! -d $1 ]] && {
|
2021-08-04 10:58:50 +00:00
|
|
|
ECHO "$1: No such file or directory ..."
|
2021-06-18 02:08:35 +00:00
|
|
|
return 0
|
2021-04-16 10:57:19 +00:00
|
|
|
}
|
2021-08-04 10:58:50 +00:00
|
|
|
MKDIR $2
|
2021-11-20 14:04:51 +00:00
|
|
|
if [[ -z $3 ]]
|
|
|
|
then
|
2022-03-22 16:46:35 +00:00
|
|
|
ECHO "[C] Copying $1 to $2 ..."
|
2021-08-04 10:58:50 +00:00
|
|
|
cp -a $1 $2
|
2021-08-03 10:41:36 +00:00
|
|
|
else
|
2022-03-22 16:46:35 +00:00
|
|
|
ECHO "[R] Copying $1 to $2/$3 ..."
|
2021-08-04 10:58:50 +00:00
|
|
|
cp -a $1 $2/$3
|
2021-08-03 10:41:36 +00:00
|
|
|
fi
|
2022-03-22 16:46:35 +00:00
|
|
|
[[ $? == 0 ]] && ECHO "Done"
|
2021-11-07 02:19:58 +00:00
|
|
|
}
|