Compare commits

...

3 Commits

Author SHA1 Message Date
Ing
76abc09d2d add version for custom 2024-04-03 05:55:20 +08:00
Ing
5ee4bb9680 add models 2024-04-03 05:28:49 +08:00
Ing
4dcf4a8359 fix Ctrl+C of update error 2024-04-03 03:11:01 +08:00
6 changed files with 127 additions and 58 deletions

56
.github/workflows/data.yml vendored Normal file
View File

@ -0,0 +1,56 @@
#
# Copyright (C) 2022 Ing <https://github.com/wjz304>
#
# This is free software, licensed under the MIT License.
# See /LICENSE for more information.
#
name: Data
on:
workflow_dispatch:
inputs:
push:
description: "push"
default: false
type: boolean
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@main
- name: Init Env
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
sudo timedatectl set-timezone "Asia/Shanghai"
- name: Get models
run: |
models="{"
WORK_PATH="files/initrd/opt/rr"
for M in $(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml 2>/dev/null | sed 's/.*\///; s/\.yml//'); do
models+="\"${M}\":["
for V in $(yq eval '.productvers | explode(.) | to_entries | map([.key])[] | .[]' "${WORK_PATH}/model-configs/${M}.yml" 2>/dev/null | sort -r); do
models+="\"${V}\","
done
models="${models%,}],"
done
models="${models%,}}"
echo "${models}" >docs/models.json
- name: Check and Push
if: success() && inputs.push == true
run: |
echo "Git push ..."
git pull
status=$(git status -s | grep -E 'docs/models.json' | awk '{printf " %s", $2}')
if [ -n "${status}" ]; then
git add ${status}
git commit -m "update $(date +%Y-%m-%d" "%H:%M:%S)"
git push -f
fi

View File

@ -5,7 +5,7 @@
# See /LICENSE for more information. # See /LICENSE for more information.
# #
name: Auto Comment name: Issues
on: on:
issues: issues:
types: [opened, reopened] types: [opened, reopened]
@ -36,14 +36,17 @@ jobs:
iscustom = 'false' iscustom = 'false'
warinfo = 'false' warinfo = 'false'
model = ''
language= '' language= ''
model = ''
version = ''
try: try:
if issuetitle.lower().startswith('custom'): if issuetitle.lower().startswith('custom'):
jsonbody = json.loads(issuebody) jsonbody = json.loads(issuebody)
iscustom = 'true' iscustom = 'true'
model = jsonbody.get('model', '')
language = jsonbody.get('language', '') language = jsonbody.get('language', '')
model = jsonbody.get('model', '')
version = jsonbody.get('version', '')
except ValueError as e: except ValueError as e:
pass pass
@ -53,8 +56,10 @@ jobs:
set_output("iscustom", iscustom) set_output("iscustom", iscustom)
set_output("warinfo", warinfo) set_output("warinfo", warinfo)
set_output("model", model)
set_output("language", language) set_output("language", language)
set_output("model", model)
set_output("version", version)
- name: Update Comment Warinfo - name: Update Comment Warinfo
if: env.warinfo == 'true' if: env.warinfo == 'true'
@ -126,8 +131,9 @@ jobs:
run: | run: |
# 累了, 毁灭吧! # 累了, 毁灭吧!
REPO=${{ github.server_url }}/${{ github.repository }} REPO="${{ github.server_url }}/${{ github.repository }}"
MODEL=${{ env.model }} MODEL="${{ env.model }}"
VERSION="${{ env.version }}"
PRERELEASE="false" PRERELEASE="false"
TAG="" TAG=""
@ -161,7 +167,7 @@ jobs:
[ -n "${{ env.language }}" ] && echo "${{ env.language }}.UTF-8" | sudo tee rr/ws/mnt/p1/.locale [ -n "${{ env.language }}" ] && echo "${{ env.language }}.UTF-8" | sudo tee rr/ws/mnt/p1/.locale
sudo ./localbuild.sh config ${MODEL} sudo ./localbuild.sh config "${MODEL}" "${VERSION}"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "config failed" echo "config failed"
exit 1 exit 1

View File

@ -33,16 +33,45 @@
var repo = "RROrg/rr" var repo = "RROrg/rr"
function httpGetAsync(theUrl, callback) {
let xmlHttpReq = new XMLHttpRequest();
xmlHttpReq.onreadystatechange = function () {
if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
callback(xmlHttpReq.responseText);
};
xmlHttpReq.open("GET", theUrl, true); // true for asynchronous
xmlHttpReq.send(null);
}
window.onload = function () { window.onload = function () {
init(); init();
} }
function init() { function init() {
$("#model").on("change", changeModel); httpGetAsync("https://raw.githubusercontent.com/RROrg/rr/main/docs/models.json", function (result) {
changeModel(); _modules = JSON.parse(result);
$("#model").on("change", changeModel);
setModels();
});
} }
function setModels() {
var models = Object.keys(_modules).sort();
$("#model")[0].options.length = 0;
for (var i = 0; i < models.length; i++) {
var model = models[i];
$("#model").append(`<option value="${model}">${model}</option>`);
}
changeModel();
}
function changeModel() { function changeModel() {
model = $("#model").val();
var versions = _modules[model];
$("#version")[0].options.length = 0;
for (var i = 0; i < versions.length; i++) {
var version = versions[i];
$("#version").append(`<option value="${version}">${version}</option>`);
}
changeproductsimage(); changeproductsimage();
} }
@ -58,7 +87,7 @@
let formData = new FormData(form); let formData = new FormData(form);
var title = "custom"; var title = "custom";
var body = {}; var body = {};
var _parameters = ["title", "language", "model"]; var _parameters = ["title", "language", "model", "version"];
for (var key in _parameters) { for (var key in _parameters) {
var name = _parameters[key]; var name = _parameters[key];
if (name == "title") { if (name == "title") {
@ -151,54 +180,21 @@
<div class="form-group-body"> <div class="form-group-body">
<select class="form-select form-control select-sm input-contrast" id="model" name="inputs[model]" <select class="form-select form-control select-sm input-contrast" id="model" name="inputs[model]"
value=""> value="">
<option value="DS1019+">DS1019+</option>
<option value="DS1520+">DS1520+</option>
<option value="DS1522+">DS1522+</option>
<option value="DS1621+">DS1621+</option>
<option value="DS1621xs+">DS1621xs+</option>
<option value="DS1819+">DS1819+</option>
<option value="DS1821+">DS1821+</option>
<option value="DS1823xs+">DS1823xs+</option>
<option value="DS220+">DS220+</option>
<option value="DS224+">DS224+</option>
<option value="DS2419+">DS2419+</option>
<option value="DS2422+">DS2422+</option>
<option value="DS3615xs">DS3615xs</option>
<option value="DS3617xs">DS3617xs</option>
<option value="DS3622xs+">DS3622xs+</option>
<option value="DS423+">DS423+</option>
<option value="DS718+">DS718+</option>
<option value="DS720+">DS720+</option>
<option value="DS723+">DS723+</option>
<!--<option value="DS916+">DS916+</option>-->
<option value="DS918+">DS918+</option>
<option value="DS920+">DS920+</option>
<option value="DS923+">DS923+</option>
<option value="DVA1622">DVA1622</option>
<option value="DVA3219">DVA3219</option>
<option value="DVA3221">DVA3221</option>
<option value="FS2500">FS2500</option>
<!--<option value="FS3017">FS3017</option>-->
<option value="FS6400">FS6400</option>
<option value="HD6500">HD6500</option>
<option value="RS1221+">RS1221+</option>
<option value="RS1619xs+">RS1619xs+</option>
<option value="RS2423+">RS2423+</option>
<option value="RS2423RP+">RS2423RP+</option>
<option value="RS3413xs+">RS3413xs+</option>
<option value="RS3618xs">RS3618xs</option>
<option value="RS3621xs+">RS3621xs+</option>
<option value="RS4021xs+">RS4021xs+</option>
<!--<option value="SA3200D">SA3200D</option>-->
<option value="SA3400">SA3400</option>
<!--<option value="SA3400D">SA3400D</option>-->
<option value="SA3410">SA3410</option>
<option value="SA3600">SA3600</option>
<option value="SA3610">SA3610</option>
<option selected="selected" value="SA6400">SA6400</option> <option selected="selected" value="SA6400">SA6400</option>
</select> </select>
</div> </div>
</div> </div>
<div class="form-group mt-1 mb-2 ">
<div class="form-group-header">
<label class="color-fg-default text-mono f6" for="model">Version:</label>
</div>
<div class="form-group-body">
<select class="form-select form-control select-sm input-contrast" id="version" name="inputs[version]"
value="">
<option selected="selected" value="7.2">7.2</option>
</select>
</div>
</div>
<div data-replace-remote-form-target="" class="workflow-dispatch"> <div data-replace-remote-form-target="" class="workflow-dispatch">
<form id="inputs"> <form id="inputs">
<button type="button" class="btn State--merged" onclick="return createIssues()" autofocus=""> <button type="button" class="btn State--merged" onclick="return createIssues()" autofocus="">

1
docs/models.json Normal file
View File

@ -0,0 +1 @@
{"DS1019+":["7.2","7.1","7.0","6.2"],"DS1520+":["7.2","7.1","7.0","6.2"],"DS1522+":["7.2","7.1"],"DS1621+":["7.2","7.1","7.0","6.2"],"DS1621xs+":["7.2","7.1","7.0","6.2"],"DS1819+":["7.2","7.1","7.0","6.2"],"DS1821+":["7.2","7.1","7.0","6.2"],"DS1823xs+":["7.2","7.1"],"DS220+":["7.2","7.1","7.0","6.2"],"DS224+":["7.2"],"DS2419+":["7.2","7.1","7.0","6.2"],"DS2422+":["7.2","7.1","7.0"],"DS3615xs":["7.1","7.0","6.2"],"DS3617xs":["7.2","7.1","7.0","6.2"],"DS3622xs+":["7.2","7.1","7.0"],"DS423+":["7.2","7.1"],"DS718+":["7.2","7.1","7.0","6.2"],"DS720+":["7.2","7.1","7.0","6.2"],"DS723+":["7.2","7.1"],"DS918+":["7.2","7.1","7.0","6.2"],"DS920+":["7.2","7.1","7.0","6.2"],"DS923+":["7.2","7.1"],"DVA1622":["7.2","7.1"],"DVA3219":["7.2","7.1","7.0","6.2"],"DVA3221":["7.2","7.1","7.0","6.2"],"FS2500":["7.2","7.1","7.0"],"FS6400":["7.2","7.1","7.0","6.2"],"HD6500":["7.2","7.1","7.0","6.2"],"RS1221+":["7.2","7.1","7.0","6.2"],"RS1619xs+":["7.2","7.1","7.0","6.2"],"RS2423+":["7.2","7.1"],"RS2423RP+":["7.2","7.1"],"RS3413xs+":["7.1","7.0","6.2"],"RS3618xs":["7.2","7.1","7.0","6.2"],"RS3621xs+":["7.2","7.1","7.0","6.2"],"RS4021xs+":["7.2","7.1","7.0","6.2"],"SA3400":["7.2","7.1","7.0","6.2"],"SA3410":["7.2","7.1"],"SA3600":["7.2","7.1","7.0","6.2"],"SA3610":["7.2","7.1"],"SA6400":["7.2","7.1"]}

View File

@ -1082,7 +1082,7 @@ function getSynoExtractor() {
mkdir -p "${EXTRACTOR_PATH}" mkdir -p "${EXTRACTOR_PATH}"
echo "$(TEXT "Downloading old pat to extract synology .pat extractor...")" echo "$(TEXT "Downloading old pat to extract synology .pat extractor...")"
rm -f "${OLDPAT_PATH}"
STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${OLDPAT_URL}" -o "${OLDPAT_PATH}") STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${OLDPAT_URL}" -o "${OLDPAT_PATH}")
RET=$? RET=$?
if [ ${RET} -ne 0 -o ${STATUS:-0} -ne 200 ]; then if [ ${RET} -ne 0 -o ${STATUS:-0} -ne 200 ]; then
@ -1239,7 +1239,7 @@ function extractDsmFiles() {
touch "${PAT_PATH}.downloading" touch "${PAT_PATH}.downloading"
STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${PATURL}" -o "${PAT_PATH}") STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${PATURL}" -o "${PAT_PATH}")
RET=$? RET=$?
rm -rf "${PAT_PATH}.downloading" rm -f "${PAT_PATH}.downloading"
if [ ${RET} -ne 0 -o ${STATUS:-0} -ne 200 ]; then if [ ${RET} -ne 0 -o ${STATUS:-0} -ne 200 ]; then
rm -f "${PAT_PATH}" rm -f "${PAT_PATH}"
MSG="$(printf "$(TEXT "Check internet or cache disk space.\nError: %d:%d\n(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" "${RET}" "${STATUS}")" MSG="$(printf "$(TEXT "Check internet or cache disk space.\nError: %d:%d\n(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" "${RET}" "${STATUS}")"
@ -2662,14 +2662,18 @@ function downloadExts() {
if [ "${5}" = "-1" ]; then if [ "${5}" = "-1" ]; then
( (
rm -f ${TMP_PATH}/${4}*.zip rm -f ${TMP_PATH}/${4}*.zip
touch "${TMP_PATH}/${4}-${TAG}.zip.downloading"
STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${PROXY}${3}/releases/download/${TAG}/${4}-${TAG}.zip" -o "${TMP_PATH}/${4}-${TAG}.zip") STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${PROXY}${3}/releases/download/${TAG}/${4}-${TAG}.zip" -o "${TMP_PATH}/${4}-${TAG}.zip")
RET=$? RET=$?
rm -f "${TMP_PATH}/${4}-${TAG}.zip.downloading"
) 2>&1 ) 2>&1
else else
( (
rm -f ${TMP_PATH}/${4}*.zip rm -f ${TMP_PATH}/${4}*.zip
touch "${TMP_PATH}/${4}-${TAG}.zip.downloading"
STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${PROXY}${3}/releases/download/${TAG}/${4}-${TAG}.zip" -o "${TMP_PATH}/${4}-${TAG}.zip") STATUS=$(curl -kL --connect-timeout 10 -w "%{http_code}" "${PROXY}${3}/releases/download/${TAG}/${4}-${TAG}.zip" -o "${TMP_PATH}/${4}-${TAG}.zip")
RET=$? RET=$?
rm -f "${TMP_PATH}/${4}-${TAG}.zip.downloading"
) 2>&1 | DIALOG --title "${T}" \ ) 2>&1 | DIALOG --title "${T}" \
--progressbox "$(TEXT "Downloading ...")" 20 100 --progressbox "$(TEXT "Downloading ...")" 20 100
fi fi
@ -3101,12 +3105,14 @@ function updateMenu() {
case "$(cat ${TMP_PATH}/resp)" in case "$(cat ${TMP_PATH}/resp)" in
a) a)
F="$(ls ${TMP_PATH}/updateall*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/updateall*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && [ -f "${F}.downloading" ] && rm -f "${F}" && rm -f "${F}.downloading" && F=""
[ -z "${F}" ] && downloadExts "$(TEXT "All")" "${CUR_RR_VER:-None}" "https://github.com/RROrg/rr" "updateall" "${SILENT}" [ -z "${F}" ] && downloadExts "$(TEXT "All")" "${CUR_RR_VER:-None}" "https://github.com/RROrg/rr" "updateall" "${SILENT}"
F="$(ls ${TMP_PATH}/updateall*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/updateall*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && updateRR "${F}" "${SILENT}" && rm -f ${TMP_PATH}/updateall*.zip [ -n "${F}" ] && updateRR "${F}" "${SILENT}" && rm -f ${TMP_PATH}/updateall*.zip
;; ;;
r) r)
F="$(ls ${TMP_PATH}/update*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/update*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && [ -f "${F}.downloading" ] && rm -f "${F}" && rm -f "${F}.downloading" && F=""
[ -z "${F}" ] && downloadExts "$(TEXT "RR")" "${CUR_RR_VER:-None}" "https://github.com/RROrg/rr" "update" "${SILENT}" [ -z "${F}" ] && downloadExts "$(TEXT "RR")" "${CUR_RR_VER:-None}" "https://github.com/RROrg/rr" "update" "${SILENT}"
F="$(ls ${TMP_PATH}/update*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/update*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && updateRR "${F}" "${SILENT}" && rm -f ${TMP_PATH}/update*.zip [ -n "${F}" ] && updateRR "${F}" "${SILENT}" && rm -f ${TMP_PATH}/update*.zip
@ -3118,6 +3124,7 @@ function updateMenu() {
continue continue
fi fi
F="$(ls ${TMP_PATH}/addons*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/addons*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && [ -f "${F}.downloading" ] && rm -f "${F}" && rm -f "${F}.downloading" && F=""
[ -z "${F}" ] && downloadExts "$(TEXT "Addons")" "${CUR_ADDONS_VER:-None}" "https://github.com/RROrg/rr-addons" "addons" "${SILENT}" [ -z "${F}" ] && downloadExts "$(TEXT "Addons")" "${CUR_ADDONS_VER:-None}" "https://github.com/RROrg/rr-addons" "addons" "${SILENT}"
F="$(ls ${TMP_PATH}/addons*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/addons*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && updateAddons "${F}" "${SILENT}" && rm -f ${TMP_PATH}/addons*.zip [ -n "${F}" ] && updateAddons "${F}" "${SILENT}" && rm -f ${TMP_PATH}/addons*.zip
@ -3129,6 +3136,7 @@ function updateMenu() {
continue continue
fi fi
F="$(ls ${TMP_PATH}/modules*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/modules*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && [ -f "${F}.downloading" ] && rm -f "${F}" && rm -f "${F}.downloading" && F=""
[ -z "${F}" ] && downloadExts "$(TEXT "Modules")" "${CUR_MODULES_VER:-None}" "https://github.com/RROrg/rr-modules" "modules" "${SILENT}" [ -z "${F}" ] && downloadExts "$(TEXT "Modules")" "${CUR_MODULES_VER:-None}" "https://github.com/RROrg/rr-modules" "modules" "${SILENT}"
F="$(ls ${TMP_PATH}/modules*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/modules*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && updateModules "${F}" "${SILENT}" && rm -f ${TMP_PATH}/modules*.zip [ -n "${F}" ] && updateModules "${F}" "${SILENT}" && rm -f ${TMP_PATH}/modules*.zip
@ -3140,6 +3148,7 @@ function updateMenu() {
continue continue
fi fi
F="$(ls ${TMP_PATH}/rp-lkms*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/rp-lkms*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && [ -f "${F}.downloading" ] && rm -f "${F}" && rm -f "${F}.downloading" && F=""
[ -z "${F}" ] && downloadExts "$(TEXT "LKMs")" "${CUR_LKMS_VER:-None}" "https://github.com/RROrg/rr-lkms" "rp-lkms" "${SILENT}" [ -z "${F}" ] && downloadExts "$(TEXT "LKMs")" "${CUR_LKMS_VER:-None}" "https://github.com/RROrg/rr-lkms" "rp-lkms" "${SILENT}"
F="$(ls ${TMP_PATH}/rp-lkms*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/rp-lkms*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && updateLKMs "${F}" "${SILENT}" && rm -f ${TMP_PATH}/rp-lkms*.zip [ -n "${F}" ] && updateLKMs "${F}" "${SILENT}" && rm -f ${TMP_PATH}/rp-lkms*.zip
@ -3151,6 +3160,7 @@ function updateMenu() {
continue continue
fi fi
F="$(ls ${TMP_PATH}/rr-cks*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/rr-cks*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && [ -f "${F}.downloading" ] && rm -f "${F}" && rm -f "${F}.downloading" && F=""
[ -z "${F}" ] && downloadExts "$(TEXT "CKs")" "${CUR_CKS_VER:-None}" "https://github.com/RROrg/rr-cks" "rr-cks" "${SILENT}" [ -z "${F}" ] && downloadExts "$(TEXT "CKs")" "${CUR_CKS_VER:-None}" "https://github.com/RROrg/rr-cks" "rr-cks" "${SILENT}"
F="$(ls ${TMP_PATH}/rr-cks*.zip 2>/dev/null | sort -V | tail -n 1)" F="$(ls ${TMP_PATH}/rr-cks*.zip 2>/dev/null | sort -V | tail -n 1)"
[ -n "${F}" ] && updateCKs "${F}" "${SILENT}" && rm -f ${TMP_PATH}/rr-cks*.zip [ -n "${F}" ] && updateCKs "${F}" "${SILENT}" && rm -f ${TMP_PATH}/rr-cks*.zip

View File

@ -114,9 +114,9 @@ function config() {
echo "init" echo "init"
./init.sh || break ./init.sh || break
echo "model" echo "model"
./menu.sh modelMenu "${1}" || break ./menu.sh modelMenu "${1:-"SA6400"}" || break
echo "version" echo "version"
./menu.sh productversMenu "7.2" || break ./menu.sh productversMenu "${2:-"7.2"}" || break
echo "build" echo "build"
./menu.sh make -1 || break ./menu.sh make -1 || break
echo "clean" echo "clean"