This commit is contained in:
Ing 2023-04-26 01:20:39 +08:00
parent 73d830eb96
commit ad1ec11a81
5 changed files with 74 additions and 31 deletions

View File

@ -160,7 +160,8 @@ jobs:
qemu-img convert -O vmdk arpl.img arpl-dyn.vmdk
qemu-img convert -O vmdk -o adapter_type=lsilogic arpl.img -o subformat=monolithicFlat arpl.vmdk
zip -9 "arpl-i18n.zip" arpl.img arpl-dyn.vmdk arpl.vmdk arpl-flat.vmdk
zip -9 "arpl-i18n.zip" arpl.img
# Upload artifact
- name: Upload
uses: actions/upload-artifact@v3

View File

@ -9,7 +9,19 @@ name: Update
on:
workflow_dispatch:
inputs:
push:
description: 'push'
default: false
type: boolean
config:
description: 'update configs'
default: true
type: boolean
rss:
description: 'update rss'
default: true
type: boolean
jobs:
build:
runs-on: ubuntu-latest
@ -34,9 +46,19 @@ jobs:
- name: update pats
run: |
python rssupdate.py
python rssupdate.py ${{ inputs.config }} ${{ inputs.rss }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: grub
path: |
files/board/arpl/overlayfs/opt/arpl/model-configs
rss.json
rss.xml
- name: Check and Push
if: success() && inputs.push == true
run: |
git pull
status=$(git status -s | grep -E 'model-configs|rss' | awk '{printf " %s", $2}')

View File

@ -7,13 +7,13 @@
"copyright": "Copyright 2022 Synology Inc",
"item": [
{
"title": "DSM 7.2-64216",
"title": "DSM 7.2-64551",
"MajorVer": 7,
"MinorVer": 2,
"NanoVer": 0,
"BuildPhase": 0,
"BuildNum": 64216,
"BuildDate": "2023/03/08",
"BuildPhase": "RC",
"BuildNum": 64551,
"BuildDate": "2023/04/21",
"ReqMajorVer": 7,
"ReqMinorVer": 2,
"ReqBuildPhase": 0,

View File

@ -6,11 +6,11 @@
<pubDate>Sat Aug 6 0:11:41 CST 2022</pubDate>
<copyright>Copyright 2022 Synology Inc</copyright>
<item>
<title>DSM 7.2-64216</title>
<title>DSM 7.2-64551</title>
<MajorVer>7</MajorVer>
<MinorVer>2</MinorVer>
<BuildPhase>0</BuildPhase>
<BuildNum>64216</BuildNum>
<BuildNum>64551</BuildNum>
<BuildDate>2023/03/08</BuildDate>
<ReqMajorVer>7</ReqMajorVer>
<ReqMinorVer>0</ReqMinorVer>

View File

@ -6,7 +6,7 @@
# See /LICENSE for more information.
#
import os, re, subprocess, hashlib, requests, json, yaml
import os, re, sys, subprocess, hashlib, requests, json, yaml
import xml.etree.ElementTree as ET
from urllib.parse import urlparse
from bs4 import BeautifulSoup
@ -104,7 +104,7 @@ def synoextractor(url):
return data
def main(): # if __name__ == '__main__':
def main(isUpdateConfigs = True, isUpdateRss = True):
# Get models
models=[]
@ -182,26 +182,30 @@ def main(): # if __name__ == '__main__':
if not all(bool(key) for key in hashdata.keys()):
print("[E] {} synoextractor error".format(url))
return
isChange = True
# config.yml
# data["builds"][ver]["pat"] = hashdata # pyyaml 会修改文件格式
# yq -iy '.builds."25556".pat |= {url:"...", hash:"..."}' DS918+.yml # yq 也会修改文件格式
pat = data["builds"][ver]["pat"]
commands = ['sed', '-i', 's|{}|{}|; s|{}|{}|; s|{}|{}|; s|{}|{}|; s|{}|{}|'.format(pat["url"], hashdata["url"], pat["hash"], hashdata["hash"], pat["ramdisk-hash"], hashdata["ramdisk-hash"], pat["zimage-hash"], hashdata["zimage-hash"], pat["md5-hash"], hashdata["md5-hash"]), os.path.join(FILE_PATH, configs, filename)]
result = subprocess.check_output(commands)
# rss.xml
for n in rssxml.findall('.//item'):
if n.find('.//BuildNum').text == str(ver):
n.append(ET.fromstring("<model>\n<mUnique>{}</mUnique>\n<mLink>{}</mLink>\n<mCheckSum>{}</mCheckSum>\n</model>\n".format(hashdata["unique"], hashdata["url"], hashdata["md5-hash"])))
# rss.json
for idx in range(len(rssjson["channel"]["item"])):
if rssjson["channel"]["item"][idx]["BuildNum"] == int(ver):
rssjson["channel"]["item"][idx]["model"].append({"mUnique": hashdata["unique"], "mLink": hashdata["url"], "mCheckSum": hashdata["md5-hash"]})
# # pyyaml 会修改文件格式
# if isChange is True:
# with open(os.path.join(FILE_PATH, configs, filename), "w", encoding='utf-8') as f:
# yaml.dump(data, f, Dumper=yaml.SafeDumper, sort_keys=False) # 双引号: default_style='"',
if isUpdateConfigs is True:
isChange = True
# config.yml
# data["builds"][ver]["pat"] = hashdata # pyyaml 会修改文件格式
# yq -iy '.builds."25556".pat |= {url:"...", hash:"..."}' DS918+.yml # yq 也会修改文件格式
pat = data["builds"][ver]["pat"]
commands = ['sed', '-i', 's|{}|{}|; s|{}|{}|; s|{}|{}|; s|{}|{}|; s|{}|{}|'.format(pat["url"], hashdata["url"], pat["hash"], hashdata["hash"], pat["ramdisk-hash"], hashdata["ramdisk-hash"], pat["zimage-hash"], hashdata["zimage-hash"], pat["md5-hash"], hashdata["md5-hash"]), os.path.join(FILE_PATH, configs, filename)]
result = subprocess.check_output(commands)
if isUpdateRss is True:
# rss.xml
for n in rssxml.findall('.//item'):
if n.find('.//BuildNum').text == str(ver):
n.append(ET.fromstring("<model>\n<mUnique>{}</mUnique>\n<mLink>{}</mLink>\n<mCheckSum>{}</mCheckSum>\n</model>\n".format(hashdata["unique"], hashdata["url"], hashdata["md5-hash"])))
# rss.json
for idx in range(len(rssjson["channel"]["item"])):
if rssjson["channel"]["item"][idx]["BuildNum"] == int(ver):
rssjson["channel"]["item"][idx]["model"].append({"mUnique": hashdata["unique"], "mLink": hashdata["url"], "mCheckSum": hashdata["md5-hash"]})
# if isUpdateConfigs is True:
# # pyyaml 会修改文件格式
# if isChange is True:
# with open(os.path.join(FILE_PATH, configs, filename), "w", encoding='utf-8') as f:
# yaml.dump(data, f, Dumper=yaml.SafeDumper, sort_keys=False) # 双引号: default_style='"',
except:
pass
@ -220,4 +224,20 @@ def main(): # if __name__ == '__main__':
if __name__ == '__main__':
main()
isUpdateConfigs = True
isUpdateRss = True
if len(sys.argv) > 2:
try:
isUpdateConfigs = bool(int(sys.argv[1]))
except ValueError:
isUpdateConfigs = bool(sys.argv[1])
if len(sys.argv) > 3:
try:
isUpdateRss = bool(int(sys.argv[2]))
except ValueError:
isUpdateRss = bool(sys.argv[2])
main(isUpdateConfigs, isUpdateRss)