diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 50a27044..79fa065f 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -40,6 +40,8 @@ jobs: language= '' model = '' version = '' + addons = '' + modules = '' try: if issuetitle.lower().startswith('custom'): jsonbody = json.loads(issuebody) @@ -47,6 +49,8 @@ jobs: language = jsonbody.get('language', '') model = jsonbody.get('model', '') version = jsonbody.get('version', '') + addons = jsonbody.get('addons', '') + modules = jsonbody.get('modules', '') except ValueError as e: pass @@ -60,6 +64,8 @@ jobs: set_output("language", language) set_output("model", model) set_output("version", version) + set_output("addons", addons) + set_output("modules", modules) - name: Update Comment Warinfo if: env.warinfo == 'true' @@ -131,6 +137,10 @@ jobs: run: | # 累了, 毁灭吧! + function writeConfigKey() { + [ "${2}" = "{}" ] && sudo yq eval '.'${1}' = {}' --inplace "${3}" 2>/dev/null || sudo yq eval '.'${1}' = "'"${2}"'"' --inplace "${3}" 2>/dev/null + } + REPO="${{ github.server_url }}/${{ github.repository }}" MODEL="${{ env.model }}" VERSION="${{ env.version }}" @@ -173,9 +183,40 @@ jobs: exit 1 fi - sudo ./localbuild.sh make "${MODEL}" "${VERSION}" + sudo ./localbuild.sh config "${MODEL}" "${VERSION}" if [ $? -ne 0 ]; then - echo "make failed" + echo "config failed" + exit 1 + fi + + if [ -n "${{ env.addons }}" ]; then + echo -en "set addons" + USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml" + writeConfigKey "addons" "{}" "${USER_CONFIG_FILE}" + echo -en ': ' + for A in $(echo "${{ env.addons }}" | tr ',' ' '); do + echo -en "${A} " + VALUE="" + writeConfigKey "addons.\"${A}\"" "${VALUE}" "${USER_CONFIG_FILE}" + done + echo "" + fi + if [ -n "${{ env.modules }}" ]; then + echo -en "set modules" + USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml" + writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}" + echo -en ': ' + for M in $(echo "${{ env.modules }}" | tr ',' ' '); do + echo -en "${M} " + VALUE="" + writeConfigKey "modules.\"${M}\"" "${VALUE}" "${USER_CONFIG_FILE}" + done + echo "" + fi + + sudo ./localbuild.sh build + if [ $? -ne 0 ]; then + echo "build failed" exit 1 fi diff --git a/docs/issues.html b/docs/issues.html index e2cbbb91..d447e602 100644 --- a/docs/issues.html +++ b/docs/issues.html @@ -49,14 +49,21 @@ function init() { httpGetAsync("https://raw.githubusercontent.com/RROrg/rr/main/docs/models.json", function (result) { - _modules = JSON.parse(result); - $("#model").on("change", changeModel); - setModels(); + _models = JSON.parse(result); + httpGetAsync("https://raw.githubusercontent.com/RROrg/rr/main/docs/addons.json", function (result) { + _addons = JSON.parse(result); + httpGetAsync("https://raw.githubusercontent.com/RROrg/rr/main/docs/modules.json", function (result) { + _modules = JSON.parse(result); + $("#model").on("change", changeModel); + $("#version").on("change", changeVersion); + setModels(); + }); + }); }); } function setModels() { - var models = Object.keys(_modules).sort(); + var models = Object.keys(_models).sort(); $("#model")[0].options.length = 0; for (var i = 0; i < models.length; i++) { var model = models[i]; @@ -66,13 +73,14 @@ } function changeModel() { model = $("#model").val(); - var versions = Object.keys(_modules[model]["productvers"]).reverse(); + var versions = Object.keys(_models[model]["productvers"]).reverse(); $("#version")[0].options.length = 0; for (var i = 0; i < versions.length; i++) { var version = versions[i]; $("#version").append(``); } changeproductsimage(); + changeVersion(); } function changeproductsimage() { @@ -82,12 +90,73 @@ $('#products').html(``); } + function changeVersion() { + createAddonsBtn(); + createModulesBtn(); + } + function createAddonsBtn() { + var language = $("#language").val(); + + var idx = 1; + var html = `
`; + for (var ext in _addons) { + var par = ""; + if (_addons[ext]["system"] == true) { + par = "disabled"; + } + html += ` `; + //if (idx++ % 10 == 0) html += "
"; + } + html += `
`; + $('#addons_btns').html(html); + } + + function createModulesBtn() { + var model = $("#model").val(); + var version = $("#version").val(); + var platform = _models[model]["platform"] + "-" + _models[model]["productvers"][version]; + var extstr = []; + var idx = 1; + var html = `
`; + for (var ext in _modules[platform]) { + extstr.push(ext); + var par = "btn-danger"; + html += ` `; + //if (idx++ % 10 == 0) html += "
"; + } + html += `
`; + $('#modules_btns').html(html); + if (extstr.length > 0) { + $('#modules').val(extstr.join(",")); + } + } + function onclickext(type, ext) { + var btnobj = $("#btn_" + ext); + var extstr = $('#' + type).val().split(","); + if (btnobj.hasClass("btn-danger")) { + extstr.map((val, i) => { + if (val === ext) { + extstr.splice(i, 1); + } + }); + btnobj.removeClass("btn-danger"); + } else { + btnobj.addClass("btn-danger"); + extstr.push(ext); + } + extstr.map((val, i) => { + if (val === "") { + extstr.splice(i, 1); + } + }); + $('#' + type).val(extstr.join(",")); + } function createIssues() { var form = document.getElementById("inputs"); let formData = new FormData(form); var title = "custom"; var body = {}; - var _parameters = ["title", "language", "model", "version"]; + var _parameters = ["title", "language", "model", "version", "addons", "modules"]; for (var key in _parameters) { var name = _parameters[key]; if (name == "title") { @@ -200,6 +269,26 @@ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+