mirror of
https://github.com/RROrg/rr.git
synced 2025-09-02 01:47:37 +08:00
Compare commits
3 Commits
16b6a486de
...
1133fb0ba5
Author | SHA1 | Date | |
---|---|---|---|
|
1133fb0ba5 | ||
|
0fde0b312b | ||
|
6764629b97 |
12
.github/workflows/issues.yml
vendored
12
.github/workflows/issues.yml
vendored
@ -261,8 +261,16 @@ jobs:
|
||||
echo "set addons: ${{ env.addons }}"
|
||||
USER_CONFIG_FILE="rr/ws/mnt/p1/user-config.yml"
|
||||
writeConfigKey "addons" "{}" "${USER_CONFIG_FILE}"
|
||||
for A in $(echo "${{ env.addons }}" | sed 's/,/ /g'); do
|
||||
writeConfigKey "addons.\"${A}\"" "" "${USER_CONFIG_FILE}"
|
||||
IFS=',' read -ra ADDON_ARR <<< "${{ env.addons }}"
|
||||
for A in "${ADDON_ARR[@]}"; do
|
||||
if echo "${A}" | grep -qE '^[^:]+:[^:]+$'; then
|
||||
KEY="$(echo "${A}" | cut -d':' -f1 | xargs)"
|
||||
VAL="$(echo "${A}" | cut -d':' -f2 | xargs)"
|
||||
else
|
||||
KEY="${A}"
|
||||
VAL=""
|
||||
fi
|
||||
writeConfigKey "addons.\"${KEY}\"" "${VAL}" "${USER_CONFIG_FILE}"
|
||||
done
|
||||
fi
|
||||
|
||||
|
@ -157,7 +157,7 @@
|
||||
if (extstr.includes(ext)) {
|
||||
par = "btn-danger";
|
||||
}
|
||||
html += `<button type="button" class="btn btn-primary btn-sm mt-2 ${par}" id="btn_${ext}" ${par} ${dispar} onclick="return onclickext('addons', '${ext}')" autofocus="" title="${_addons[ext]["description"][language]}">${ext}</button> `;
|
||||
html += `<button type="button" class="btn btn-primary btn-sm mt-2 ${par}" id="btn_${ext}" ${par} ${dispar} onclick="return onclickextAddon('${ext}')" autofocus="" title="${_addons[ext]["description"][language]}">${ext}</button> `;
|
||||
//if (idx++ % 10 == 0) html += "<br />";
|
||||
}
|
||||
html += `</div>`;
|
||||
@ -180,7 +180,7 @@
|
||||
for (var ext in _modules[platform]) {
|
||||
extstr.push(ext);
|
||||
var par = "btn-danger";
|
||||
html += `<button type="button" class="btn btn-primary btn-sm mt-2 ${par}" id="btn_${ext}" ${par} onclick="return onclickext('modules', '${ext}')" autofocus="" title="${_modules[platform][ext]["description"]}">${ext}</button> `;
|
||||
html += `<button type="button" class="btn btn-primary btn-sm mt-2 ${par}" id="btn_${ext}" ${par} onclick="return onclickextModule('${ext}')" autofocus="" title="${_modules[platform][ext]["description"]}">${ext}</button> `;
|
||||
//if (idx++ % 10 == 0) html += "<br />";
|
||||
}
|
||||
html += `</div>`;
|
||||
@ -207,9 +207,36 @@
|
||||
}
|
||||
}
|
||||
|
||||
function onclickext(type, ext) {
|
||||
function onclickextAddon(ext) {
|
||||
var btnobj = $("#btn_" + ext);
|
||||
var extstr = $('#' + type).val().split(",");
|
||||
var extstr = $('#addons').val().split(",");
|
||||
if (btnobj.hasClass("btn-danger")) {
|
||||
extstr.map((val, i) => {
|
||||
if (val.split(':')[0] === ext) {
|
||||
extstr.splice(i, 1);
|
||||
}
|
||||
});
|
||||
btnobj.removeClass("btn-danger");
|
||||
} else {
|
||||
btnobj.addClass("btn-danger");
|
||||
var param = window.prompt("Please enter parameters (optional):", "");
|
||||
if (param !== null && param.trim() !== "") {
|
||||
extstr.push(ext + ":" + param.trim());
|
||||
} else {
|
||||
extstr.push(ext);
|
||||
}
|
||||
}
|
||||
extstr.map((val, i) => {
|
||||
if (val === "") {
|
||||
extstr.splice(i, 1);
|
||||
}
|
||||
});
|
||||
$('#addons').val(extstr.join(","));
|
||||
}
|
||||
|
||||
function onclickextModule(ext) {
|
||||
var btnobj = $("#btn_" + ext);
|
||||
var extstr = $('#modules').val().split(",");
|
||||
if (btnobj.hasClass("btn-danger")) {
|
||||
extstr.map((val, i) => {
|
||||
if (val === ext) {
|
||||
@ -226,7 +253,7 @@
|
||||
extstr.splice(i, 1);
|
||||
}
|
||||
});
|
||||
$('#' + type).val(extstr.join(","));
|
||||
$('#modules').val(extstr.join(","));
|
||||
}
|
||||
function createIssues() {
|
||||
var form = document.getElementById("inputs");
|
||||
|
@ -441,10 +441,10 @@ else
|
||||
echo "${IP}" | grep -q "^169\.254\." && IP=""
|
||||
[ -n "${IP}" ] && URL="http://${IP}:5000" || URL="http://find.synology.com/"
|
||||
python3 "${WORK_PATH}/include/functions.py" "makeqr" -d "${URL}" -l "6" -o "${TMP_PATH}/qrcode_boot.png"
|
||||
[ -f "${TMP_PATH}/qrcode_boot.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_boot.png" >/dev/null 2>/dev/null || true
|
||||
[ -f "${TMP_PATH}/qrcode_boot.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_boot.png" >/dev/null 2>&1 || true
|
||||
|
||||
python3 "${WORK_PATH}/include/functions.py" "makeqr" -f "${WORK_PATH}/include/qhxg.png" -l "7" -o "${TMP_PATH}/qrcode_qhxg.png"
|
||||
[ -f "${TMP_PATH}/qrcode_qhxg.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_qhxg.png" >/dev/null 2>/dev/null || true
|
||||
[ -f "${TMP_PATH}/qrcode_qhxg.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_qhxg.png" >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
# Executes DSM kernel via KEXEC
|
||||
|
@ -12,10 +12,13 @@ set -e
|
||||
. "${WORK_PATH}/include/functions.sh"
|
||||
. "${WORK_PATH}/include/addons.sh"
|
||||
|
||||
if type -p vmware-toolbox-cmd; then
|
||||
if [ ! "Enabled" = "$(vmware-toolbox-cmd timesync status 2>/dev/null)" ]; then
|
||||
if type vmware-toolbox-cmd >/dev/null 2>&1; then
|
||||
if [ "Disable" = "$(vmware-toolbox-cmd timesync status 2>/dev/null)" ]; then
|
||||
vmware-toolbox-cmd timesync enable >/dev/null 2>&1 || true
|
||||
fi
|
||||
if [ "Enabled" = "$(vmware-toolbox-cmd timesync status 2>/dev/null)" ]; then
|
||||
vmware-toolbox-cmd timesync disable >/dev/null 2>&1 || true
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -z "${LOADER_DISK}" ] && die "$(TEXT "Loader is not init!")"
|
||||
@ -97,12 +100,15 @@ if [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
for N in ${ETHX}; do
|
||||
MACR="$(cat "/sys/class/net/${N}/address" 2>/dev/null | sed 's/://g')"
|
||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||
if [ -n "${IPR}" ] && [ "1" = "$(cat "/sys/class/net/${N}/carrier" 2>/dev/null)" ]; then
|
||||
if [ -n "${IPR}" ]; then
|
||||
if [ ! "1" = "$(cat "/sys/class/net/${N}/carrier" 2>/dev/null)" ]; then
|
||||
ip link set "${N}" up 2>/dev/null || true
|
||||
fi
|
||||
IFS='/' read -r -a IPRA <<<"${IPR}"
|
||||
ip addr flush dev "${N}"
|
||||
ip addr add "${IPRA[0]}/${IPRA[1]:-"255.255.255.0"}" dev "${N}"
|
||||
ip addr flush dev "${N}" 2>/dev/null || true
|
||||
ip addr add "${IPRA[0]}/${IPRA[1]:-"255.255.255.0"}" dev "${N}" 2>/dev/null || true
|
||||
if [ -n "${IPRA[2]}" ]; then
|
||||
ip route add default via "${IPRA[2]}" dev "${N}"
|
||||
ip route add default via "${IPRA[2]}" dev "${N}" 2>/dev/null || true
|
||||
fi
|
||||
if [ -n "${IPRA[3]:-${IPRA[2]}}" ]; then
|
||||
sed -i "/nameserver ${IPRA[3]:-${IPRA[2]}}/d" /etc/resolv.conf
|
||||
@ -251,10 +257,10 @@ if [ "${DSMLOGO}" = "true" ] && [ -c "/dev/fb0" ] && [ ! "LOCALBUILD" = "${LOADE
|
||||
echo "${IP}" | grep -q "^169\.254\." && IP=""
|
||||
[ -n "${IP}" ] && URL="http://${IP}:${TTYD:-7681}" || URL="http://rr:${TTYD:-7681}"
|
||||
python3 "${WORK_PATH}/include/functions.py" makeqr -d "${URL}" -l "0" -o "${TMP_PATH}/qrcode_init.png"
|
||||
[ -f "${TMP_PATH}/qrcode_init.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_init.png" >/dev/null 2>/dev/null || true
|
||||
[ -f "${TMP_PATH}/qrcode_init.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_init.png" >/dev/null 2>&1 || true
|
||||
|
||||
python3 "${WORK_PATH}/include/functions.py" makeqr -f "${WORK_PATH}/include/qhxg.png" -l "7" -o "${TMP_PATH}/qrcode_qhxg.png"
|
||||
[ -f "${TMP_PATH}/qrcode_qhxg.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_qhxg.png" >/dev/null 2>/dev/null || true
|
||||
[ -f "${TMP_PATH}/qrcode_qhxg.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_qhxg.png" >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
# Check memory
|
||||
|
Loading…
x
Reference in New Issue
Block a user