Compare commits
51 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cff46625e1 | |||
| 011abf2aa5 | |||
| 2fdd760070 | |||
| a638507b2b | |||
| ad2e249a87 | |||
| 712841f292 | |||
| 5514b1bb3d | |||
| 9d9f43814d | |||
| 78ece5ef00 | |||
| 4bbb4ec7fd | |||
| 4482cc29a3 | |||
| 4647ec71d8 | |||
| 11fab3ffba | |||
| 1e1ee65a0b | |||
| 427fb99318 | |||
| 2cc545165a | |||
| 34b141973a | |||
| 770fab2e33 | |||
| e230b14b90 | |||
| 76e797a304 | |||
| 65bff1e102 | |||
| 561f977773 | |||
| aab386938a | |||
| 2f9c450c12 | |||
| 1b22d951c6 | |||
| 3a83f7d074 | |||
| 4480cef07d | |||
| bae0276dcc | |||
| e24900faff | |||
| fe0d98c0c4 | |||
| b49e196d21 | |||
| 6bc51936c2 | |||
| cbe33305ea | |||
| 7852a41fa2 | |||
| f31807f229 | |||
| 35bb849461 | |||
| 18fad375cf | |||
| b685fe81ef | |||
| 17b7944401 | |||
| 283f56101a | |||
| 25997803ed | |||
| 0359de9311 | |||
| 5cec577c38 | |||
| 4cf0838ca2 | |||
| db2adc5b48 | |||
| f67466b85c | |||
| 02213d575a | |||
| 3593c2375f | |||
| 64a8ef45fa | |||
| 40ab6e1ec2 | |||
| d9a95e512f |
+2
-178
@@ -12,181 +12,5 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
information:
|
workflows:
|
||||||
name: Gather add-on information
|
uses: hassio-addons/workflows/.github/workflows/addon-ci.yaml@main
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
architectures: ${{ steps.information.outputs.architectures }}
|
|
||||||
build: ${{ steps.information.outputs.build }}
|
|
||||||
description: ${{ steps.information.outputs.description }}
|
|
||||||
name: ${{ steps.information.outputs.name }}
|
|
||||||
slug: ${{ steps.information.outputs.slug }}
|
|
||||||
target: ${{ steps.information.outputs.target }}
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run add-on information action
|
|
||||||
id: information
|
|
||||||
uses: frenck/action-addon-information@v1.3
|
|
||||||
|
|
||||||
lint-addon:
|
|
||||||
name: Lint Add-on
|
|
||||||
needs:
|
|
||||||
- information
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run Add-on Lint
|
|
||||||
uses: frenck/action-addon-linter@v2.5
|
|
||||||
with:
|
|
||||||
community: true
|
|
||||||
path: "./${{ needs.information.outputs.target }}"
|
|
||||||
|
|
||||||
lint-hadolint:
|
|
||||||
name: Hadolint
|
|
||||||
needs:
|
|
||||||
- information
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run Hadolint
|
|
||||||
uses: brpaz/hadolint-action@v1.5.0
|
|
||||||
with:
|
|
||||||
dockerfile: "./${{ needs.information.outputs.target }}/Dockerfile"
|
|
||||||
|
|
||||||
lint-json:
|
|
||||||
name: JSON Lint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run JQ
|
|
||||||
run: |
|
|
||||||
shopt -s globstar
|
|
||||||
cat **/*.json | jq '.'
|
|
||||||
|
|
||||||
lint-markdown:
|
|
||||||
name: MarkdownLint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run mdl
|
|
||||||
uses: actionshub/markdownlint@2.0.2
|
|
||||||
|
|
||||||
lint-shellcheck:
|
|
||||||
name: Shellcheck
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run Shellcheck
|
|
||||||
uses: ludeeus/action-shellcheck@1.1.0
|
|
||||||
env:
|
|
||||||
SHELLCHECK_OPTS: -s bash
|
|
||||||
|
|
||||||
lint-yamllint:
|
|
||||||
name: YAMLLint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run YAMLLint
|
|
||||||
uses: frenck/action-yamllint@v1.1
|
|
||||||
|
|
||||||
lint-prettier:
|
|
||||||
name: Prettier
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🚀 Run Prettier
|
|
||||||
uses: creyD/prettier_action@v4.0
|
|
||||||
with:
|
|
||||||
prettier_options: --write **/*.{json,js,md,yaml}
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
build:
|
|
||||||
name: Build ${{ matrix.architecture }}
|
|
||||||
needs:
|
|
||||||
- information
|
|
||||||
- lint-addon
|
|
||||||
- lint-hadolint
|
|
||||||
- lint-json
|
|
||||||
- lint-markdown
|
|
||||||
- lint-prettier
|
|
||||||
- lint-shellcheck
|
|
||||||
- lint-yamllint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
architecture: ${{ fromJson(needs.information.outputs.architectures) }}
|
|
||||||
steps:
|
|
||||||
- name: ⤵️ Check out code from GitHub
|
|
||||||
uses: actions/checkout@v2.3.5
|
|
||||||
- name: 🏗 Set up build cache
|
|
||||||
id: cache
|
|
||||||
uses: actions/cache@v2.1.6
|
|
||||||
with:
|
|
||||||
path: /tmp/.docker-cache
|
|
||||||
key: docker-${{ matrix.architecture }}-${{ github.sha }}
|
|
||||||
restore-keys: |
|
|
||||||
docker-${{ matrix.architecture }}
|
|
||||||
- name: 🏗 Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
|
||||||
- name: 🏗 Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
|
||||||
- name: ℹ️ Compose build flags
|
|
||||||
id: flags
|
|
||||||
run: |
|
|
||||||
echo "::set-output name=date::$(date +"%Y-%m-%dT%H:%M:%SZ")"
|
|
||||||
from=$(yq --no-colors eval ".build_from.${{ matrix.architecture }}" "${{ needs.information.outputs.build }}")
|
|
||||||
echo "::set-output name=from::${from}"
|
|
||||||
|
|
||||||
if [[ "${{ matrix.architecture}}" = "amd64" ]]; then
|
|
||||||
echo "::set-output name=platform::linux/amd64"
|
|
||||||
elif [[ "${{ matrix.architecture }}" = "i386" ]]; then
|
|
||||||
echo "::set-output name=platform::linux/386"
|
|
||||||
elif [[ "${{ matrix.architecture }}" = "armhf" ]]; then
|
|
||||||
echo "::set-output name=platform::linux/arm/v6"
|
|
||||||
elif [[ "${{ matrix.architecture }}" = "armv7" ]]; then
|
|
||||||
echo "::set-output name=platform::linux/arm/v7"
|
|
||||||
elif [[ "${{ matrix.architecture }}" = "aarch64" ]]; then
|
|
||||||
echo "::set-output name=platform::linux/arm64/v8"
|
|
||||||
else
|
|
||||||
echo "::error ::Could not determine platform for architecture ${{ matrix.architecture }}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- name: ⤵️ Download base image
|
|
||||||
run: docker pull "${{ steps.flags.outputs.from }}"
|
|
||||||
- name: 🚀 Build
|
|
||||||
uses: docker/build-push-action@v2.7.0
|
|
||||||
with:
|
|
||||||
push: false
|
|
||||||
context: ${{ needs.information.outputs.target }}
|
|
||||||
file: ${{ needs.information.outputs.target }}/Dockerfile
|
|
||||||
cache-from: |
|
|
||||||
type=local,src=/tmp/.docker-cache
|
|
||||||
ghcr.io/gauthamvarmak/${{ needs.information.outputs.slug }}/${{ matrix.architecture }}:edge
|
|
||||||
cache-to: type=local,mode=max,dest=/tmp/.docker-cache-new
|
|
||||||
platforms: ${{ steps.flags.outputs.platform }}
|
|
||||||
build-args: |
|
|
||||||
BUILD_ARCH=${{ matrix.architecture }}
|
|
||||||
BUILD_DATE=${{ steps.flags.outputs.date }}
|
|
||||||
BUILD_DESCRIPTION=${{ needs.information.outputs.description }}
|
|
||||||
BUILD_FROM=${{ steps.flags.outputs.from }}
|
|
||||||
BUILD_NAME=${{ needs.information.outputs.name }}
|
|
||||||
BUILD_REF=${{ github.sha }}
|
|
||||||
BUILD_REPOSITORY=${{ github.repository }}
|
|
||||||
BUILD_VERSION=edge
|
|
||||||
# This ugly bit is necessary, or our cache will grow forever...
|
|
||||||
# Well until we hit GitHub's limit of 5GB :)
|
|
||||||
# https://github.com/docker/build-push-action/issues/252
|
|
||||||
# https://github.com/moby/buildkit/issues/1896
|
|
||||||
- name: 🚚 Swap build cache
|
|
||||||
run: |
|
|
||||||
rm -rf /tmp/.docker-cache
|
|
||||||
mv /tmp/.docker-cache-new /tmp/.docker-cache
|
|
||||||
|
|||||||
@@ -33,10 +33,10 @@ jobs:
|
|||||||
version: ${{ steps.release.outputs.version }}
|
version: ${{ steps.release.outputs.version }}
|
||||||
steps:
|
steps:
|
||||||
- name: ⤵️ Check out code from GitHub
|
- name: ⤵️ Check out code from GitHub
|
||||||
uses: actions/checkout@v2.3.5
|
uses: actions/checkout@v3
|
||||||
- name: 🚀 Run add-on information action
|
- name: 🚀 Run add-on information action
|
||||||
id: information
|
id: information
|
||||||
uses: frenck/action-addon-information@v1.3
|
uses: frenck/action-addon-information@v1.4
|
||||||
- name: ℹ️ Gather version and environment
|
- name: ℹ️ Gather version and environment
|
||||||
id: release
|
id: release
|
||||||
run: |
|
run: |
|
||||||
@@ -53,8 +53,8 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "::set-output name=environment::${environment}"
|
echo "environment=${environment}" >> "$GITHUB_OUTPUT"
|
||||||
echo "::set-output name=version::${version}"
|
echo "version=${version}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
name: 👷 Build & Deploy ${{ matrix.architecture }}
|
name: 👷 Build & Deploy ${{ matrix.architecture }}
|
||||||
@@ -69,41 +69,42 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: ⤵️ Check out code from GitHub
|
- name: ⤵️ Check out code from GitHub
|
||||||
uses: actions/checkout@v2.3.5
|
uses: actions/checkout@v3
|
||||||
- name: 🏗 Set up build cache
|
- name: 🏗 Set up build cache
|
||||||
id: cache
|
id: cache
|
||||||
uses: actions/cache@v2.1.6
|
uses: actions/cache@v3.2.6
|
||||||
with:
|
with:
|
||||||
path: /tmp/.docker-cache
|
path: /tmp/.docker-cache
|
||||||
key: docker-${{ matrix.architecture }}-${{ github.sha }}
|
key: docker-${{ matrix.architecture }}-${{ github.sha }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
docker-${{ matrix.architecture }}
|
docker-${{ matrix.architecture }}
|
||||||
- name: 🏗 Set up QEMU
|
- name: 🏗 Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v2.1.0
|
||||||
- name: 🏗 Set up Docker Buildx
|
- name: 🏗 Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
uses: docker/setup-buildx-action@v2.4.1
|
||||||
- name: ℹ️ Compose build flags
|
- name: ℹ️ Compose build flags
|
||||||
id: flags
|
id: flags
|
||||||
run: |
|
run: |
|
||||||
echo "::set-output name=date::$(date +"%Y-%m-%dT%H:%M:%SZ")"
|
echo "date=$(date +"%Y-%m-%dT%H:%M:%SZ")" >> "$GITHUB_OUTPUT"
|
||||||
from=$(yq --no-colors eval ".build_from.${{ matrix.architecture }}" "${{ needs.information.outputs.build }}")
|
from=$(yq --no-colors eval ".build_from.${{ matrix.architecture }}" "${{ needs.information.outputs.build }}")
|
||||||
echo "::set-output name=from::${from}"
|
echo "from=${from}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
if [[ "${{ matrix.architecture}}" = "amd64" ]]; then
|
if [[ "${{ matrix.architecture}}" = "amd64" ]]; then
|
||||||
echo "::set-output name=platform::linux/amd64"
|
echo "platform=linux/amd64" >> "$GITHUB_OUTPUT"
|
||||||
elif [[ "${{ matrix.architecture }}" = "i386" ]]; then
|
elif [[ "${{ matrix.architecture }}" = "i386" ]]; then
|
||||||
echo "::set-output name=platform::linux/386"
|
echo "platform=linux/386" >> "$GITHUB_OUTPUT"
|
||||||
elif [[ "${{ matrix.architecture }}" = "armhf" ]]; then
|
elif [[ "${{ matrix.architecture }}" = "armhf" ]]; then
|
||||||
echo "::set-output name=platform::linux/arm/v6"
|
echo "platform=linux/arm/v6" >> "$GITHUB_OUTPUT"
|
||||||
elif [[ "${{ matrix.architecture }}" = "armv7" ]]; then
|
elif [[ "${{ matrix.architecture }}" = "armv7" ]]; then
|
||||||
echo "::set-output name=platform::linux/arm/v7"
|
echo "platform=linux/arm/v7" >> "$GITHUB_OUTPUT"
|
||||||
elif [[ "${{ matrix.architecture }}" = "aarch64" ]]; then
|
elif [[ "${{ matrix.architecture }}" = "aarch64" ]]; then
|
||||||
echo "::set-output name=platform::linux/arm64/v8"
|
echo "platform=linux/arm64/v8" >> "$GITHUB_OUTPUT"
|
||||||
else
|
else
|
||||||
echo "::error ::Could not determine platform for architecture ${{ matrix.architecture }}"
|
echo "::error ::Could not determine platform for architecture ${{ matrix.architecture }}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
- name: 🏗 Login to GitHub Container Registry
|
- name: 🏗 Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
@@ -111,7 +112,7 @@ jobs:
|
|||||||
- name: ⤵️ Download base image
|
- name: ⤵️ Download base image
|
||||||
run: docker pull "${{ steps.flags.outputs.from }}"
|
run: docker pull "${{ steps.flags.outputs.from }}"
|
||||||
- name: 🚀 Build
|
- name: 🚀 Build
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v4.0.0
|
||||||
with:
|
with:
|
||||||
load: true
|
load: true
|
||||||
# yamllint disable rule:line-length
|
# yamllint disable rule:line-length
|
||||||
@@ -162,10 +163,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 🚀 Dispatch repository updater update signal
|
- name: 🚀 Dispatch repository updater update signal
|
||||||
uses: peter-evans/repository-dispatch@v1.1.3
|
uses: peter-evans/repository-dispatch@v2.1.1
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.DISPATCH_TOKEN }}
|
token: ${{ secrets.DISPATCH_TOKEN }}
|
||||||
repository: GauthamVarmaK/hassio-addons
|
repository: ${{ github.repository_owner }}/hassio-addons
|
||||||
event-type: update
|
event-type: update
|
||||||
client-payload: >
|
client-payload: >
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,5 +10,3 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
workflows:
|
workflows:
|
||||||
uses: hassio-addons/workflows/.github/workflows/labels.yaml@main
|
uses: hassio-addons/workflows/.github/workflows/labels.yaml@main
|
||||||
secrets:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
@@ -10,5 +10,3 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
workflows:
|
workflows:
|
||||||
uses: hassio-addons/workflows/.github/workflows/lock.yaml@main
|
uses: hassio-addons/workflows/.github/workflows/lock.yaml@main
|
||||||
secrets:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
@@ -13,5 +13,3 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
workflows:
|
workflows:
|
||||||
uses: hassio-addons/workflows/.github/workflows/pr-labels.yaml@main
|
uses: hassio-addons/workflows/.github/workflows/pr-labels.yaml@main
|
||||||
secrets:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
@@ -10,5 +10,3 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
workflows:
|
workflows:
|
||||||
uses: hassio-addons/workflows/.github/workflows/release-drafter.yaml@main
|
uses: hassio-addons/workflows/.github/workflows/release-drafter.yaml@main
|
||||||
secrets:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
@@ -10,5 +10,3 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
workflows:
|
workflows:
|
||||||
uses: hassio-addons/workflows/.github/workflows/stale.yaml@main
|
uses: hassio-addons/workflows/.github/workflows/stale.yaml@main
|
||||||
secrets:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# MIT License
|
# MIT License
|
||||||
|
|
||||||
Copyright (c) 2021-2021 Gautham varma K
|
Copyright (c) 2021-2023 Gautham varma K
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ check [the contributor's page][contributors].
|
|||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2021 GauthamVarmaK
|
Copyright (c) 2021-2023 GauthamVarmaK
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -96,7 +96,7 @@ SOFTWARE.
|
|||||||
[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg
|
[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg
|
||||||
[issue]: https://github.com/GauthamVarmaK/addon-tvheadend/issues
|
[issue]: https://github.com/GauthamVarmaK/addon-tvheadend/issues
|
||||||
[license-shield]: https://img.shields.io/github/license/GauthamVarmaK/addon-tvheadend.svg
|
[license-shield]: https://img.shields.io/github/license/GauthamVarmaK/addon-tvheadend.svg
|
||||||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2021.svg
|
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
|
||||||
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
||||||
[releases-shield]: https://img.shields.io/github/release/GauthamVarmaK/addon-tvheadend.svg
|
[releases-shield]: https://img.shields.io/github/release/GauthamVarmaK/addon-tvheadend.svg
|
||||||
[releases]: https://github.com/GauthamVarmaK/addon-tvheadend/releases
|
[releases]: https://github.com/GauthamVarmaK/addon-tvheadend/releases
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Have included the following along with TVHeadend:
|
|||||||
|
|
||||||
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg
|
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg
|
||||||
[forum]: https://community.home-assistant.io/u/gauthamvarmak
|
[forum]: https://community.home-assistant.io/u/gauthamvarmak
|
||||||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2021.svg
|
[maintenance-shield]: https://img.shields.io/maintenance/yes/2023.svg
|
||||||
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
||||||
[release-shield]: https://img.shields.io/badge/version-{{ version }}-blue.svg
|
[release-shield]: https://img.shields.io/badge/version-{{ version }}-blue.svg
|
||||||
[release]: {{ repo }}/tree/{{ version }}
|
[release]: {{ repo }}/tree/{{ version }}
|
||||||
|
|||||||
+1
-1
@@ -94,7 +94,7 @@ This has been possible thanks to the community add-ons initiative by [Frenck][fr
|
|||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2021 GauthamVarmaK
|
Copyright (c) 2021-2023 GauthamVarmaK
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -7,16 +7,16 @@ COPY requirements.txt /tmp/
|
|||||||
RUN \
|
RUN \
|
||||||
apk update \
|
apk update \
|
||||||
&& apk add --no-cache --virtual .build-deps \
|
&& apk add --no-cache --virtual .build-deps \
|
||||||
musl-dev=1.2.2-r3 \
|
musl-dev=1.2.3-r4 \
|
||||||
gcc=10.3.1_git20210424-r2 \
|
gcc=12.2.1_git20220924-r4 \
|
||||||
g++=10.3.1_git20210424-r2 \
|
g++=12.2.1_git20220924-r4 \
|
||||||
libxml2-dev=2.9.12-r1 \
|
libxml2-dev=2.10.3-r1 \
|
||||||
libxslt-dev=1.1.34-r1 \
|
libxslt-dev=1.1.37-r0 \
|
||||||
python3-dev=3.9.5-r1 \
|
python3-dev=3.10.10-r0 \
|
||||||
&& apk add --no-cache \
|
&& apk add --no-cache \
|
||||||
tvheadend=4.2.8-r3 \
|
tvheadend=4.2.8-r6 \
|
||||||
py3-pip=20.3.4-r1 \
|
py3-pip=22.3.1-r1 \
|
||||||
libxslt=1.1.34-r1 \
|
libxslt=1.1.37-r0 \
|
||||||
&& pip3 install \
|
&& pip3 install \
|
||||||
--no-cache-dir \
|
--no-cache-dir \
|
||||||
--prefer-binary \
|
--prefer-binary \
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
build_from:
|
build_from:
|
||||||
aarch64: ghcr.io/hassio-addons/base/aarch64:10.1.1
|
aarch64: ghcr.io/hassio-addons/base/aarch64:13.1.1
|
||||||
amd64: ghcr.io/hassio-addons/base/amd64:10.1.1
|
amd64: ghcr.io/hassio-addons/base/amd64:13.1.1
|
||||||
armhf: ghcr.io/hassio-addons/base/armhf:10.1.1
|
armhf: ghcr.io/hassio-addons/base/armhf:13.1.1
|
||||||
armv7: ghcr.io/hassio-addons/base/armv7:10.1.1
|
armv7: ghcr.io/hassio-addons/base/armv7:13.1.1
|
||||||
i386: ghcr.io/hassio-addons/base/i386:10.1.1
|
i386: ghcr.io/hassio-addons/base/i386:13.1.1
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ stage: experimental
|
|||||||
slug: tvheadend
|
slug: tvheadend
|
||||||
description: TV streaming server and recorder.
|
description: TV streaming server and recorder.
|
||||||
url: "https://github.com/GauthamVarmaK/addon-tvheadend"
|
url: "https://github.com/GauthamVarmaK/addon-tvheadend"
|
||||||
|
init: false
|
||||||
arch:
|
arch:
|
||||||
- aarch64
|
- aarch64
|
||||||
- amd64
|
- amd64
|
||||||
@@ -13,8 +14,8 @@ arch:
|
|||||||
- i386
|
- i386
|
||||||
webui: "http://[HOST]:[PORT:9981]/"
|
webui: "http://[HOST]:[PORT:9981]/"
|
||||||
devices:
|
devices:
|
||||||
- /dev/dvb/
|
- /dev/dvb
|
||||||
- /dev/dri/
|
- /dev/dri
|
||||||
ports:
|
ports:
|
||||||
9981/tcp: 9981
|
9981/tcp: 9981
|
||||||
9982/tcp: 9982
|
9982/tcp: 9982
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
setuptools==58.4.0
|
setuptools==67.4.0
|
||||||
streamlink==2.4.0
|
streamlink==8.5.0
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
#!/command/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: TVHeadend
|
||||||
|
# Take down the S6 supervision tree when cron fails
|
||||||
|
# ==============================================================================
|
||||||
|
declare exit_code
|
||||||
|
readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
|
||||||
|
readonly exit_code_service="${1}"
|
||||||
|
readonly exit_code_signal="${2}"
|
||||||
|
readonly service="cron"
|
||||||
|
|
||||||
|
bashio::log.info \
|
||||||
|
"Service ${service} exited with code ${exit_code_service}" \
|
||||||
|
"(by signal ${exit_code_signal})"
|
||||||
|
|
||||||
|
if [[ "${exit_code_service}" -eq 256 ]]; then
|
||||||
|
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||||
|
echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
|
||||||
|
fi
|
||||||
|
[[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
|
||||||
|
elif [[ "${exit_code_service}" -ne 0 ]]; then
|
||||||
|
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||||
|
echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
|
||||||
|
fi
|
||||||
|
exec /run/s6/basedir/bin/halt
|
||||||
|
fi
|
||||||
Regular → Executable
+1
@@ -1,4 +1,5 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
# Home Assistant Community Add-on: TVHeadend
|
||||||
# Runs the cron daemon
|
# Runs the cron daemon
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
||||||
Regular → Executable
+1
@@ -1,4 +1,5 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
# Home Assistant Community Add-on: TVHeadend
|
||||||
# Executes user customizations on startup
|
# Executes user customizations on startup
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
oneshot
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/etc/s6-overlay/s6-rc.d/init-customizations/run
|
||||||
Regular → Executable
+4
-3
@@ -1,4 +1,5 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
# Home Assistant Community Add-on: TVHeadend
|
||||||
# Executes user customizations on startup
|
# Executes user customizations on startup
|
||||||
@@ -14,9 +15,9 @@ webgrabplus_install(){
|
|||||||
if apk add --no-cache --virtual .build-deps git mono --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; then
|
if apk add --no-cache --virtual .build-deps git mono --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; then
|
||||||
bashio::log.info '[Webgrab+] Installing Webgrab+.'
|
bashio::log.info '[Webgrab+] Installing Webgrab+.'
|
||||||
cd /tmp \
|
cd /tmp \
|
||||||
&& wget http://webgrabplus.com/sites/default/files/download/SW/V3.2.0/WebGrabPlus_V3.2_install.tar.gz \
|
&& wget http://webgrabplus.com/sites/default/files/download/SW/V3.3.0/WebGrabPlus_V3.3_install.tar.gz \
|
||||||
&& tar -zxvf WebGrabPlus_V3.2_install.tar.gz \
|
&& tar -zxvf WebGrabPlus_V3.3_install.tar.gz \
|
||||||
&& rm WebGrabPlus_V3.2_install.tar.gz \
|
&& rm WebGrabPlus_V3.3_install.tar.gz \
|
||||||
&& mv .wg++/ /config/tvheadend/wg++ \
|
&& mv .wg++/ /config/tvheadend/wg++ \
|
||||||
&& cd /config/tvheadend/wg++ \
|
&& cd /config/tvheadend/wg++ \
|
||||||
&& ./install.sh \
|
&& ./install.sh \
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
oneshot
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/etc/s6-overlay/s6-rc.d/init-tvheadend/run
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
#!/command/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: TVHeadend
|
||||||
|
# Take down the S6 supervision tree when tvheadend fails
|
||||||
|
# ==============================================================================
|
||||||
|
declare exit_code
|
||||||
|
readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
|
||||||
|
readonly exit_code_service="${1}"
|
||||||
|
readonly exit_code_signal="${2}"
|
||||||
|
readonly service="tvheadend"
|
||||||
|
|
||||||
|
bashio::log.info \
|
||||||
|
"Service ${service} exited with code ${exit_code_service}" \
|
||||||
|
"(by signal ${exit_code_signal})"
|
||||||
|
|
||||||
|
if [[ "${exit_code_service}" -eq 256 ]]; then
|
||||||
|
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||||
|
echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
|
||||||
|
fi
|
||||||
|
[[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
|
||||||
|
elif [[ "${exit_code_service}" -ne 0 ]]; then
|
||||||
|
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||||
|
echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
|
||||||
|
fi
|
||||||
|
exec /run/s6/basedir/bin/halt
|
||||||
|
fi
|
||||||
Regular → Executable
+1
@@ -1,4 +1,5 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
# Home Assistant Community Add-on: TVHeadend
|
||||||
# Starts TVHeadend
|
# Starts TVHeadend
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/execlineb -S0
|
|
||||||
# ==============================================================================
|
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
# Take down the S6 supervision tree when crond fails
|
|
||||||
# ==============================================================================
|
|
||||||
if -n { s6-test $# -ne 0 }
|
|
||||||
if -n { s6-test ${1} -eq 256 }
|
|
||||||
|
|
||||||
s6-svscanctl -t /var/run/s6/services
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/execlineb -S0
|
|
||||||
# ==============================================================================
|
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
# Take down the S6 supervision tree when TVHeadend fails
|
|
||||||
# ==============================================================================
|
|
||||||
if -n { s6-test $# -ne 0 }
|
|
||||||
if -n { s6-test ${1} -eq 256 }
|
|
||||||
|
|
||||||
s6-svscanctl -t /var/run/s6/services
|
|
||||||
Regular → Executable
Reference in New Issue
Block a user