diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index fea2455..2d6ed1b 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:latest -RUN apt-get update && apt-get upgrade -y && \ +RUN apt-get update && apt-get upgrade -y && apt-get install -y \ build-essential \ gnupg2 \ @@ -9,23 +9,24 @@ RUN apt-get update && apt-get upgrade -y && \ make \ rsync \ curl \ + jq \ wget \ git \ vim \ - unzip \ - && apt-get clean all \ - && rm -rf /var/lib/apt/lists/* + unzip && + apt-get clean all && + rm -rf /var/lib/apt/lists/* -RUN wget -q https://kcl-lang.io/script/install-cli.sh -O - | bash && \ - wget -q https://kcl-lang.io/script/install-kcl-lsp.sh -O - | bash && \ - wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq && \ +RUN wget -q https://kcl-lang.io/script/install-cli.sh -O - | bash && + wget -q https://kcl-lang.io/script/install-kcl-lsp.sh -O - | bash && + wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq && chmod +x /usr/bin/yq -RUN VERSION=$(curl -sL --url "https://golang.org/VERSION?m=text"|grep go) && \ - wget -q https://go.dev/dl/${VERSION}.linux-amd64.tar.gz -O /tmp/go.tar.gz && \ - tar -C /usr/local -xzf /tmp/go.tar.gz && \ - rm /tmp/go.tar.gz && \ +RUN VERSION=$(curl -sL --url "https://golang.org/VERSION?m=text" | grep go) && + wget -q https://go.dev/dl/${VERSION}.linux-amd64.tar.gz -O /tmp/go.tar.gz && + tar -C /usr/local -xzf /tmp/go.tar.gz && + rm /tmp/go.tar.gz && ln -s /usr/local/go/bin/go /usr/local/bin/go -RUN go install -v -x github.com/lxc/distrobuilder/distrobuilder@latest && \ +RUN go install -v -x github.com/lxc/distrobuilder/distrobuilder@latest && ln -s /root/go/bin/distrobuilder /usr/local/bin/distrobuilder diff --git a/.github/workflows/trigger.yml b/.github/workflows/trigger.yml index b8c0f51..4b01b1c 100644 --- a/.github/workflows/trigger.yml +++ b/.github/workflows/trigger.yml @@ -34,16 +34,19 @@ jobs: id: all-templates-list run: | sudo apt-get install -y jq - echo all_files="$(printf '%s' "$(ls templates/*)" | jq -Rsc 'split("\n")')" | tee -a $GITHUB_OUTPUT - echo all_changed_files=$(echo -n ${{ steps.all-changed-templates-list.outputs.all_changed_files }} | jq -Rsc 'split(" ")') | tee -a $GITHUB_OUTPUT - if: ${{github.event_name}} != 'pull_request' + echo ALL_FILES="$(printf '%s' "$(ls templates/*)" | jq -Rsc 'split("\n")')" | tee -a $GITHUB_ENV + echo ALL_CHANGED_FILES=$(echo -n "${{ steps.all-changed-templates-list.outputs.all_changed_files }}" | jq -Rsc 'split(" ")') | tee -a $GITHUB_ENV - name: Check templates list id: check-templates-list run: | - echo all_files=${{ steps.all-templates-list.outputs.all_files }} - echo all_changed_files=${{ steps.all-templates-list.outputs.all_changed_files }} - echo TEMPLATES_LIST=${{ steps.all-templates-list.outputs.all_changed_files != '[]' && steps.all-templates-list.outputs.all_changed_files || steps.all-templates-list.outputs.all_files }} | tee -a $GITHUB_OUTPUT + echo ALL_FILES=$ALL_FILES + echo ALL_CHANGED_FILES=$ALL_CHANGED_FILES + if [ $ALL_CHANGED_FILES = '[]' ]; then + echo TEMPLATES_LIST="$ALL_FILES" | tee -a $GITHUB_OUTPUT + else + echo TEMPLATES_LIST="$ALL_CHANGED_FILES" | tee -a $GITHUB_OUTPUT + fi outputs: templates_list: ${{steps.check-templates-list.outputs.TEMPLATES_LIST}} diff --git a/assets/omada-post-data.json b/assets/omada-post-data.json new file mode 100644 index 0000000..1223b57 --- /dev/null +++ b/assets/omada-post-data.json @@ -0,0 +1,23 @@ +{ + "pageIndex": 0, + "pageSize": 1, + "sortField": "", + "sortOrder": "DESC", + "keyword": ".deb", + "siteId": 1, + "siteCode": "en", + "resourceType": "download", + "typeIdList": [], + "documentResourceTypeIdList": [], + "downloadsResourceTypeIdList": [], + "bulletinsResourceTypeIdList": [], + "documentTagIdList": [], + "downloadTagIdList": [], + "bulletinsTagIdList": [], + "communityCategories": [], + "communityTagNames": [], + "suitableModelList": [ + "Omada Software Controller", + "Omada Software Controller V5" + ] +} \ No newline at end of file diff --git a/templates/omada.yml b/templates/omada.yml index 342c714..735782d 100644 --- a/templates/omada.yml +++ b/templates/omada.yml @@ -1,6 +1,6 @@ metadata: name: Omada - get_version_command: curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/"|grep -io "https.*Omada_SDN_Controller.*linux_x64.deb"|head -n1|grep -oE "v[0-9]+.[0-9]+.[0-9]+" + get_version_command: "curl -fsSLX POST --url 'https://support.omadanetworks.com/api/v1/search/tourist/searchResource' -H 'accept: application/json' -H 'content-type: application/json' -d @assets/omada-post-data.json |jq -r '.result.download.content[].url'|grep -oE 'v[0-9]+(.[0-9]+)*'" description: TP-Link Omada SDN Controller Solution offers centralized and efficient management for gateways, switches, and wAP. categories: SDN, Networks project_source: https://www.tp-link.com/en/support/download/omada-software-controller @@ -10,35 +10,12 @@ metadata: - amd64 instructions: files: - - path: /tmp/data.json - generator: dump - mode: "0777" - content: |- - { - "pageIndex": 0, - "pageSize": 1, - "sortField": "", - "sortOrder": "DESC", - "keyword": ".deb", - "siteId": 1, - "siteCode": "en", - "resourceType": "download", - "typeIdList": [], - "documentResourceTypeIdList": [], - "downloadsResourceTypeIdList": [], - "bulletinsResourceTypeIdList": [], - "documentTagIdList": [], - "downloadTagIdList": [], - "bulletinsTagIdList": [], - "communityCategories": [], - "communityTagNames": [], - "suitableModelList": [ - "Omada Software Controller", - "Omada Software Controller V5" - ] - } + - path: /var/omada/data.json + generator: copy + source: assets/omada-post-data.json packages: + - jq - jsvc - nvidia-openjdk-8-jre - libssl-dev @@ -55,7 +32,7 @@ instructions: wget -qL https://repo.mongodb.org/apt/debian/dists/buster/mongodb-org/4.4/main/binary-amd64/mongodb-org-server_4.4.29_amd64.deb apt-get install -fy ./mongodb-org-server*_amd64.deb - wget -qL $(curl -fsSLX POST --url 'https://support.omadanetworks.com/api/v1/search/tourist/searchResource' -H 'accept: application/json' -H 'content-type: application/json' -d @data.json |jq -r '.result.download.content[].url') + wget -qL $(curl -fsSLX POST --url 'https://support.omadanetworks.com/api/v1/search/tourist/searchResource' -H 'accept: application/json' -H 'content-type: application/json' -d @/var/omada/data.json |jq -r '.result.download.content[].url') apt-get install -fy ./*Omada_SDN_Controller*.deb systemctl enable mongod.service