From 241d540c87495846cea27218cb8a1fa557dfa60a Mon Sep 17 00:00:00 2001 From: Gunther Date: Thu, 18 Jan 2024 09:14:00 +0100 Subject: [PATCH] initial --- .github/workflows/update-version.yml | 42 +++++++++++++++++++++++++++ .gitignore | 2 ++ LICENSE | 21 ++++++++++++++ README.md | 15 ++++++++++ repository.json | 5 ++++ spoolman/config.yaml | 16 ++++++++++ spoolman/icon.png | Bin 0 -> 1851 bytes spoolman/logo.png | Bin 0 -> 12345 bytes 8 files changed, 101 insertions(+) create mode 100644 .github/workflows/update-version.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 repository.json create mode 100644 spoolman/config.yaml create mode 100644 spoolman/icon.png create mode 100644 spoolman/logo.png diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml new file mode 100644 index 0000000..4ca2314 --- /dev/null +++ b/.github/workflows/update-version.yml @@ -0,0 +1,42 @@ +name: Update version +run-name: Update latest version names of the docker images +on: + schedule: + - cron: '30 */4 * * *' + workflow_dispatch: + +jobs: + logLatestRelease: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: octokit/request-action@v2.x + id: get_latest_release + with: + route: GET /users/Donkie/packages/container/Spoolman/versions?per_page=100 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + + - run: "echo '${{ steps.get_latest_release.outputs.data }}' > /tmp/data.json" + + - id: update_version + run: | + STABLE_VERSION=$(jq -r 'map(select(.metadata.container.tags | any(. == "latest"))) | .[0].metadata.container.tags | map(select(. != "latest")) | .[0]' /tmp/data.json 2>/dev/null || true) + + echo Latest Stable: $STABLE_VERSION + + if [ -n "$STABLE_VERSION" ] + then + sed -i 's|^version: .*|version: '"$STABLE_VERSION"'|' spoolman/config.yaml + fi + + echo "message=Update version numbers to: '$STABLE_VERSION'" >> "$GITHUB_OUTPUT" + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "${{ steps.update_version.outputs.message }}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..556a251 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.idea/ +/hassio-spoolman.iml diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3eb8b9f --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Gunther Schmidl + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..cffb401 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# hassio-spoolman + +Home Assistant repository to run Spoolman as an addon + +# Installation + +Use the following link to add the repository: + +[![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Fgschmidl%2Fhassio-spoolman) + +Alternatively go to the Add-On Store, Click the three dots, then Repositories, and then add the following: + +``` +https://github.com/gschmidl/hassio-spoolman +``` diff --git a/repository.json b/repository.json new file mode 100644 index 0000000..17d9a9e --- /dev/null +++ b/repository.json @@ -0,0 +1,5 @@ +{ + "name": "Home Assistant Add-on: Spoolman", + "url": "https://github.com/gschmidl/hassio-spoolman", + "maintainer": "Gunther Schmidl" + } diff --git a/spoolman/config.yaml b/spoolman/config.yaml new file mode 100644 index 0000000..08b998e --- /dev/null +++ b/spoolman/config.yaml @@ -0,0 +1,16 @@ +name: "Spoolman" +description: "Run the latest stable version of Spoolman." +url: "https://github.com/Donkie/Spoolman" +slug: "spoolman" +init: false +arch: + - amd64 + - arm64 + - armv7 +startup: application +webui: "[PROTO:option_name]://[HOST]:[PORT:7912]" +boot: auto +ports: + 7912/tcp: 7912 +image: ghcr.io/donkie/spoolman +version: 0.15 diff --git a/spoolman/icon.png b/spoolman/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c139f961038fd6d91171a6679ffbaadb1f9fd0 GIT binary patch literal 1851 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 literal 0 HcmV?d00001