Delete tvheadend directory
This commit is contained in:
@@ -1,125 +0,0 @@
|
|||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
|
|
||||||
TVHeadend is a TV streaming server and recorder supporting:
|
|
||||||
DVB-S, DVB-S2, DVB-C, DVB-T, DVB-T2, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun
|
|
||||||
as input sources.
|
|
||||||
TVHeadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming.
|
|
||||||
|
|
||||||
Multiple EPG sources are supported such as
|
|
||||||
over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML.
|
|
||||||
|
|
||||||
Have included the following along with TVHeadend:
|
|
||||||
-Webgrab+
|
|
||||||
-Streamlink
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
The installation of this add-on is pretty straightforward and not different in
|
|
||||||
comparison to installing any other Home Assistant add-on.
|
|
||||||
|
|
||||||
1. Add this repository to have addons by GauthamVarmaK:
|
|
||||||
[![Home Assistant with repository URL pre-filled][my-ha-shield]][my-ha-repo]
|
|
||||||
1. Search for the "TVHeadend" add-on in the Supervisor add-on store and install it.
|
|
||||||
1. Start the "TVHeadend" add-on.
|
|
||||||
1. Check the logs of the "TVHeadend" to see if everything went well.
|
|
||||||
1. Click the "OPEN WEB UI" button and start using it.
|
|
||||||
1. Ready to go!
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
**Note**: _Remember to restart the add-on when the configuration is changed._
|
|
||||||
|
|
||||||
Example add-on configuration:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
system_packages:
|
|
||||||
- ffmpeg
|
|
||||||
init_commands:
|
|
||||||
- echo 'Hello World'
|
|
||||||
```
|
|
||||||
|
|
||||||
**Note**: _This is just an example, don't copy and paste it! Create your own!_
|
|
||||||
|
|
||||||
### Option: `system_packages`
|
|
||||||
|
|
||||||
Allows you to specify additional [Alpine packages][alpine-packages] to be
|
|
||||||
installed to the TVHeadend Addon (e.g., `ffmpeg`, `g++`, etc. ).
|
|
||||||
|
|
||||||
**Note**: _Adding many packages will result in a longer start-up time for the add-on._
|
|
||||||
|
|
||||||
### Option: `init_commands`
|
|
||||||
|
|
||||||
Customize your TVHeadend environment even more with the `init_commands` option.
|
|
||||||
Add one or more shell commands to the list, and they will be executed
|
|
||||||
every single time this add-on starts.
|
|
||||||
|
|
||||||
## Additional Details
|
|
||||||
|
|
||||||
- Config files are stored in `/config/tvheadend/`
|
|
||||||
- Recording files are stored in `/config/tvheadend/recordings/`
|
|
||||||
- `/dev/dvb/`, `/dev/dri/` would be respectively mapped to
|
|
||||||
`/dev/dvb/`, `/dev/dri/` inside the addon.
|
|
||||||
|
|
||||||
Consider, backing `/config/tvheadend/` up whenever migrating.
|
|
||||||
|
|
||||||
## Changelog & Releases
|
|
||||||
|
|
||||||
This repository keeps a change log using [GitHub's releases][releases]
|
|
||||||
functionality.
|
|
||||||
|
|
||||||
Releases are based on [Semantic Versioning][semver], and use the format
|
|
||||||
of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented
|
|
||||||
based on the following:
|
|
||||||
|
|
||||||
- `MAJOR`: Incompatible or major changes.
|
|
||||||
- `MINOR`: Backwards-compatible new features and enhancements.
|
|
||||||
- `PATCH`: Backwards-compatible bugfixes and package updates.
|
|
||||||
|
|
||||||
## Support
|
|
||||||
|
|
||||||
Got questions?
|
|
||||||
|
|
||||||
You have several options to get them answered:
|
|
||||||
|
|
||||||
- The Home Assistant [Community Forum][forum].
|
|
||||||
- You could also [open an issue here][issue] GitHub.
|
|
||||||
|
|
||||||
## Authors & contributors
|
|
||||||
|
|
||||||
This repository is owned and maintained by [GauthamVarmaK][gautham].
|
|
||||||
|
|
||||||
This has been possible thanks to the community add-ons initiative by [Frenck][frenck]
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2021-2022 GauthamVarmaK
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
[alpine-packages]: https://pkgs.alpinelinux.org/packages
|
|
||||||
[forum]: https://community.home-assistant.io/
|
|
||||||
[frenck]: https://github.com/frenck
|
|
||||||
[gautham]: https://github.com/GauthamVarmaK
|
|
||||||
[my-ha-shield]: https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg
|
|
||||||
[issue]: https://github.com/GauthamVarmaK/addon-tvheadend/issues
|
|
||||||
[semver]: http://semver.org/spec/v2.0.0.htm
|
|
||||||
[my-ha-repo]: https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2FGauthamVarmaK%2Fhassio-addons
|
|
||||||
[releases]: https://github.com/GauthamVarmaK/addon-tvheadend/releases
|
|
||||||
@@ -1,203 +0,0 @@
|
|||||||
ARG BUILD_FROM
|
|
||||||
# hadolint ignore=DL3006
|
|
||||||
FROM ${BUILD_FROM} as buildstage
|
|
||||||
############## build stage ##############
|
|
||||||
|
|
||||||
# package versions
|
|
||||||
ARG TVHEADEND_COMMIT="52c3ed3e"
|
|
||||||
|
|
||||||
# environment settings
|
|
||||||
ARG TZ="Europe/Berlin"
|
|
||||||
ENV HOME="/config"
|
|
||||||
|
|
||||||
# copy patches
|
|
||||||
COPY patches/ /tmp/patches/
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
echo "**** install build packages ****" && \
|
|
||||||
apk add --no-cache \
|
|
||||||
libcrypto1.1=1.1.1n-r0 \
|
|
||||||
libssl1.1=1.1.1n-r0 \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
bsd-compat-headers \
|
|
||||||
bzip2 \
|
|
||||||
cmake \
|
|
||||||
curl \
|
|
||||||
ffmpeg-dev \
|
|
||||||
file \
|
|
||||||
findutils \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
gettext-dev \
|
|
||||||
git \
|
|
||||||
gnu-libiconv-dev \
|
|
||||||
gzip \
|
|
||||||
jq \
|
|
||||||
libcurl \
|
|
||||||
libdvbcsa-dev \
|
|
||||||
libgcrypt-dev \
|
|
||||||
libhdhomerun-dev \
|
|
||||||
libtool \
|
|
||||||
libva-dev \
|
|
||||||
libvpx-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxslt-dev \
|
|
||||||
linux-headers \
|
|
||||||
make \
|
|
||||||
openssl-dev \
|
|
||||||
opus-dev \
|
|
||||||
patch \
|
|
||||||
pcre2-dev \
|
|
||||||
pkgconf \
|
|
||||||
pngquant \
|
|
||||||
python3 \
|
|
||||||
sdl-dev \
|
|
||||||
tar \
|
|
||||||
uriparser-dev \
|
|
||||||
wget \
|
|
||||||
x264-dev \
|
|
||||||
x265-dev \
|
|
||||||
zlib-dev \
|
|
||||||
xmltv \
|
|
||||||
coreutils
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
echo "**** remove musl iconv.h and replace with gnu-iconv.h ****" && \
|
|
||||||
rm -rf /usr/include/iconv.h && \
|
|
||||||
cp /usr/include/gnu-libiconv/iconv.h /usr/include/iconv.h
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
echo "**** compile tvheadend ****" && \
|
|
||||||
if [ -z ${TVHEADEND_COMMIT} ]; then \
|
|
||||||
TVHEADEND_COMMIT=$(curl -sX GET https://api.github.com/repos/tvheadend/tvheadend/commits/master \
|
|
||||||
| jq -r '. | .sha'); \
|
|
||||||
fi && \
|
|
||||||
mkdir -p \
|
|
||||||
/tmp/tvheadend && \
|
|
||||||
git clone https://github.com/tvheadend/tvheadend.git /tmp/tvheadend && \
|
|
||||||
cd /tmp/tvheadend && \
|
|
||||||
git checkout ${TVHEADEND_COMMIT} && \
|
|
||||||
./configure \
|
|
||||||
`#Encoding` \
|
|
||||||
--disable-ffmpeg_static \
|
|
||||||
--disable-libfdkaac_static \
|
|
||||||
--disable-libtheora_static \
|
|
||||||
--disable-libopus_static \
|
|
||||||
--disable-libvorbis_static \
|
|
||||||
--disable-libvpx_static \
|
|
||||||
--disable-libx264_static \
|
|
||||||
--disable-libx265_static \
|
|
||||||
--disable-libfdkaac \
|
|
||||||
--enable-libopus \
|
|
||||||
--enable-libvorbis \
|
|
||||||
--enable-libvpx \
|
|
||||||
--enable-libx264 \
|
|
||||||
--enable-libx265 \
|
|
||||||
\
|
|
||||||
`#Options` \
|
|
||||||
--disable-avahi \
|
|
||||||
--disable-dbus_1 \
|
|
||||||
--disable-bintray_cache \
|
|
||||||
--disable-execinfo \
|
|
||||||
--disable-hdhomerun_static \
|
|
||||||
--enable-hdhomerun_client \
|
|
||||||
--enable-libav \
|
|
||||||
--enable-pngquant \
|
|
||||||
--enable-trace \
|
|
||||||
--enable-vaapi \
|
|
||||||
--infodir=/usr/share/info \
|
|
||||||
--localstatedir=/var \
|
|
||||||
--mandir=/usr/share/man \
|
|
||||||
--prefix=/usr \
|
|
||||||
--python=python3 \
|
|
||||||
--sysconfdir=/config && \
|
|
||||||
make -j 2 && \
|
|
||||||
make DESTDIR=/tmp/tvheadend-build install
|
|
||||||
|
|
||||||
############## runtime stage ##############
|
|
||||||
FROM ${BUILD_FROM}
|
|
||||||
|
|
||||||
# set version label
|
|
||||||
ARG BUILD_DATE
|
|
||||||
ARG VERSION
|
|
||||||
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
|
||||||
LABEL maintainer="saarg"
|
|
||||||
|
|
||||||
# environment settings
|
|
||||||
ENV HOME="/config"
|
|
||||||
|
|
||||||
# libva-intel-driver \
|
|
||||||
# intel-media-driver \
|
|
||||||
RUN \
|
|
||||||
echo "**** install runtime packages ****" && \
|
|
||||||
apk add --no-cache \
|
|
||||||
bsd-compat-headers \
|
|
||||||
bzip2 \
|
|
||||||
curl \
|
|
||||||
ffmpeg \
|
|
||||||
ffmpeg-libs \
|
|
||||||
gnu-libiconv \
|
|
||||||
gzip \
|
|
||||||
libcrypto1.1 \
|
|
||||||
libcurl \
|
|
||||||
libdvbcsa \
|
|
||||||
libhdhomerun-libs \
|
|
||||||
libssl1.1 \
|
|
||||||
libva \
|
|
||||||
mesa-dri-ati \
|
|
||||||
libvpx \
|
|
||||||
libxml2 \
|
|
||||||
libxslt \
|
|
||||||
linux-headers \
|
|
||||||
openssl \
|
|
||||||
opus \
|
|
||||||
pcre2 \
|
|
||||||
py3-requests \
|
|
||||||
python3 \
|
|
||||||
tar \
|
|
||||||
uriparser \
|
|
||||||
wget \
|
|
||||||
x264 \
|
|
||||||
x265 \
|
|
||||||
zlib \
|
|
||||||
xmltv
|
|
||||||
|
|
||||||
# copy local files and buildstage artifacts
|
|
||||||
COPY --from=buildstage /tmp/tvheadend-build/usr/ /usr/
|
|
||||||
#COPY --from=buildstage /usr/local/share/man/ /usr/local/share/man/
|
|
||||||
|
|
||||||
# Copy root filesystem
|
|
||||||
COPY rootfs /
|
|
||||||
|
|
||||||
# ports and volumes
|
|
||||||
VOLUME /config
|
|
||||||
|
|
||||||
# Build arguments
|
|
||||||
ARG BUILD_ARCH
|
|
||||||
ARG BUILD_DATE
|
|
||||||
ARG BUILD_DESCRIPTION
|
|
||||||
ARG BUILD_NAME
|
|
||||||
ARG BUILD_REF
|
|
||||||
ARG BUILD_REPOSITORY
|
|
||||||
ARG BUILD_VERSION
|
|
||||||
|
|
||||||
# Labels
|
|
||||||
LABEL \
|
|
||||||
io.hass.name="${BUILD_NAME}" \
|
|
||||||
io.hass.description="${BUILD_DESCRIPTION}" \
|
|
||||||
io.hass.arch="${BUILD_ARCH}" \
|
|
||||||
io.hass.type="addon" \
|
|
||||||
io.hass.version=${BUILD_VERSION} \
|
|
||||||
maintainer="Gautham Varma K <43441192+GauthamVarmaK@users.noreply.github.com>" \
|
|
||||||
org.opencontainers.image.title="${BUILD_NAME}" \
|
|
||||||
org.opencontainers.image.description="${BUILD_DESCRIPTION}" \
|
|
||||||
org.opencontainers.image.vendor="GauthamVarmaK" \
|
|
||||||
org.opencontainers.image.authors="Gautham Varma K <43441192+GauthamVarmaK@users.noreply.github.com>" \
|
|
||||||
org.opencontainers.image.licenses="MIT" \
|
|
||||||
org.opencontainers.image.url="https://github.com/GauthamVarmaK/addon-tvheadend" \
|
|
||||||
org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \
|
|
||||||
org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \
|
|
||||||
org.opencontainers.image.created=${BUILD_DATE} \
|
|
||||||
org.opencontainers.image.revision=${BUILD_REF} \
|
|
||||||
org.opencontainers.image.version=${BUILD_VERSION}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
build_from:
|
|
||||||
aarch64: ghcr.io/hassio-addons/base/aarch64:11.1.2
|
|
||||||
amd64: ghcr.io/hassio-addons/base/amd64:11.1.2
|
|
||||||
armhf: ghcr.io/hassio-addons/base/armhf:11.1.2
|
|
||||||
armv7: ghcr.io/hassio-addons/base/armv7:11.1.2
|
|
||||||
i386: ghcr.io/hassio-addons/base/i386:11.1.2
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
---
|
|
||||||
name: TVHeadend
|
|
||||||
version: 1.5-3
|
|
||||||
stage: experimental
|
|
||||||
slug: tvheadend
|
|
||||||
description: TV streaming server and recorder.
|
|
||||||
url: "https://github.com/GauthamVarmaK/addon-tvheadend"
|
|
||||||
init: false
|
|
||||||
arch:
|
|
||||||
- aarch64
|
|
||||||
- amd64
|
|
||||||
- armhf
|
|
||||||
- armv7
|
|
||||||
- i386
|
|
||||||
webui: "http://[HOST]:[PORT:9981]/"
|
|
||||||
hassio_role: admin
|
|
||||||
hassio_api: true
|
|
||||||
host_network: true
|
|
||||||
privileged:
|
|
||||||
- NET_ADMIN
|
|
||||||
- SYS_ADMIN
|
|
||||||
- SYS_RAWIO
|
|
||||||
devices:
|
|
||||||
- /dev/dvb
|
|
||||||
- /dev/dri
|
|
||||||
ports:
|
|
||||||
9981/tcp: 9981
|
|
||||||
9982/tcp: 9982
|
|
||||||
ports_description:
|
|
||||||
9981/tcp: TVH Web Interface
|
|
||||||
9982/tcp: TVH HTSP
|
|
||||||
map:
|
|
||||||
- "config:rw"
|
|
||||||
- "media:rw"
|
|
||||||
options:
|
|
||||||
system_packages: []
|
|
||||||
init_commands: []
|
|
||||||
webgrabplus: false
|
|
||||||
picons: false
|
|
||||||
snp_url: ""
|
|
||||||
srp_url: ""
|
|
||||||
schema:
|
|
||||||
system_packages:
|
|
||||||
- str
|
|
||||||
init_commands:
|
|
||||||
- str
|
|
||||||
webgrabplus: bool
|
|
||||||
picons: bool
|
|
||||||
snp_url: str
|
|
||||||
srp_url: str
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 63 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.5 KiB |
1466
tvheadend/patches/config.guess
vendored
1466
tvheadend/patches/config.guess
vendored
File diff suppressed because it is too large
Load Diff
1836
tvheadend/patches/config.sub
vendored
1836
tvheadend/patches/config.sub
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,23 +0,0 @@
|
|||||||
requires 'perl' => '5.24.0';
|
|
||||||
|
|
||||||
# perl packages for tvheadend x86
|
|
||||||
requires 'Data::Dump' ;
|
|
||||||
requires 'DateTime::Format::ISO8601' ;
|
|
||||||
requires 'DateTime::Format::SQLite' ;
|
|
||||||
requires 'Encode' ;
|
|
||||||
requires 'File::HomeDir' ;
|
|
||||||
requires 'File::Path' ;
|
|
||||||
requires 'HTML::Entities' ;
|
|
||||||
requires 'HTML::TableExtract' ;
|
|
||||||
requires 'HTTP::Cache::Transparent' => ">= 1.3, != 1.4" ;
|
|
||||||
requires 'inc' ;
|
|
||||||
requires 'JSON::PP' ;
|
|
||||||
requires 'LWP::Simple' ;
|
|
||||||
requires 'LWP::UserAgent' ;
|
|
||||||
requires 'PerlIO::gzip' ;
|
|
||||||
requires 'SOAP::Lite' ;
|
|
||||||
requires 'Storable' ;
|
|
||||||
requires 'Unicode::UTF8simple' ;
|
|
||||||
requires 'version' ;
|
|
||||||
requires 'WWW::Mechanize' ;
|
|
||||||
requires 'XML::DOM' ;
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
"enabled": true,
|
|
||||||
"name": "",
|
|
||||||
"profile": "22f637a89b4dec0d67e3107ee88ee4c5",
|
|
||||||
"cache": 2,
|
|
||||||
"retention-days": 2147483646,
|
|
||||||
"removal-days": 2147483647,
|
|
||||||
"clone": true,
|
|
||||||
"rerecord-errors": 10,
|
|
||||||
"warm-time": 30,
|
|
||||||
"pre-extra-time": 0,
|
|
||||||
"post-extra-time": 0,
|
|
||||||
"epg-update-window": 86400,
|
|
||||||
"epg-running": true,
|
|
||||||
"autorec-maxcount": 0,
|
|
||||||
"autorec-maxsched": 0,
|
|
||||||
"storage": "/recordings/",
|
|
||||||
"storage-mfree": 1000,
|
|
||||||
"storage-mused": 0,
|
|
||||||
"file-permissions": "0755",
|
|
||||||
"charset": "UTF-8",
|
|
||||||
"tag-files": true,
|
|
||||||
"skip-commercials": true,
|
|
||||||
"pathname": "$t/$t -$ e -$ s$n.$x",
|
|
||||||
"directory-permissions": "0775",
|
|
||||||
"day-dir": false,
|
|
||||||
"channel-dir": false,
|
|
||||||
"title-dir": true,
|
|
||||||
"channel-in-title": false,
|
|
||||||
"date-in-title": false,
|
|
||||||
"time-in-title": false,
|
|
||||||
"episode-in-title": false,
|
|
||||||
"subtitle-in-title": false,
|
|
||||||
"omit-title": false,
|
|
||||||
"clean-title": false,
|
|
||||||
"whitespace-in-title": false,
|
|
||||||
"windows-compatible-filenames": true
|
|
||||||
}
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
; See comskip.txt in the distribution zip file for many settable parameters, read manual.html, tuning.html and debugwindow.html for how to tune and debug comskip
|
|
||||||
edl_mode=3 ; the mode specified in the generated edl file, 0=cut, 3=commercial break
|
|
||||||
mkv_time_offset=30.0 ; offset in seconds, to work around what appears to be an xbmc or ffmpeg bug
|
|
||||||
always_keep_first_seconds=2 ; xbmc/vdpau has a bug that causes a segfault if we don't keep the start of the stream, I'll fix that when I get a chance
|
|
||||||
detect_method=255 ;1=black frame, 2=logo, 4=scene change, 8=fuzzy logic, 16=closed captions, 32=aspect ration, 64=silence, 128=cutscenes, 255=all
|
|
||||||
validate_silence=1 ; Default, set to 0 to force using this clues if selected above.
|
|
||||||
validate_uniform=1 ; Default, set to 0 to force using this clues (like pure white frames) if blackframe is selected above.
|
|
||||||
validate_scenechange=1 ; Default, set to 0 to force using this clues if selected above.
|
|
||||||
verbose=10 ;show a lot of extra info, level 5 is also OK, set to 0 to disable
|
|
||||||
max_brightness=60 ;frame not black if any pixels checked are greater than this (scale 0 to 255)
|
|
||||||
test_brightness=40 ;frame not pure black if any pixels checked are greater than this, will check average brightness (scale 0 to 255)
|
|
||||||
max_avg_brightness=25 ;maximum average brightness for a dim frame to be considered black (scale 0 to 255) 0 means autosetting
|
|
||||||
max_commercialbreak=600 ;maximum length in seconds to consider a segment a commercial break
|
|
||||||
min_commercialbreak=25 ;minimum length in seconds to consider a segment a commercial break
|
|
||||||
max_commercial_size=125 ;maximum time in seconds for a single commercial or multiple commercials if no breaks in between
|
|
||||||
min_commercial_size=4 ;mimimum time in seconds for a single commercial
|
|
||||||
min_show_segment_length=250 ; any segment longer than this will be scored towards show.
|
|
||||||
non_uniformity=500 ; Set to 0 to disable cutpoints based on uniform frames
|
|
||||||
max_volume=500 ; any frame with sound volume larger than this will not be regarded as black frame
|
|
||||||
min_silence=12 ; Any deep silence longer than this amount of frames is a possible cutpoint
|
|
||||||
ticker_tape=0 ; Amount of pixels from bottom to ignore in all processing
|
|
||||||
logo_at_bottom=0 ; Set to 1 to search only for logo at the lower half of the video, do not combine with subtitle setting
|
|
||||||
punish=0 ; Compare to average for sum of 1=brightness, 2=uniform 4=volume, 8=silence, 16=schange, set to 0 to disable
|
|
||||||
punish_threshold=1.3 ; Multiply when amount is above average * punish_threshold
|
|
||||||
punish_modifier=2 ; When above average * threshold multiply score by this value
|
|
||||||
intelligent_brightness=0 ; Set to 1 to use a USA specific algorithm to tune some of the settings, not adviced outside the USA
|
|
||||||
logo_percentile=0.92 ; if more then this amount of logo is found then logo detection will be disabled
|
|
||||||
logo_threshold=0.775
|
|
||||||
punish_no_logo=1 ; Default, set to 0 to avoid show segments without logo to be scored towards commercial
|
|
||||||
aggressive_logo_rejection=0
|
|
||||||
connect_blocks_with_logo=0 ; set to 1 if you want successive blocks with logo on the transition to be regarded as connected, set to 0 to disable
|
|
||||||
logo_filter=0 ; set the size of the filter to apply to bad logo detection, 4 seems to be a good value.
|
|
||||||
logo_max_percentage_of_screen=0.9
|
|
||||||
subtitles=1
|
|
||||||
cut_on_ar_change=1 ; set to 1 if you want to cut also on aspect ratio changes when logo is present, set to 2 to force cuts on aspect ratio changes. set to 0 to disable
|
|
||||||
delete_show_after_last_commercial=0 ; set to 1 if you want to delete the last block if its a show and after a commercial
|
|
||||||
delete_show_before_or_after_current=0 ; set to 1 if you want to delete the previous and the next show in the recording, this can lead to the deletion of trailers of next show
|
|
||||||
delete_block_after_commercial=0 ;set to max size of block in seconds to be discarded, set to 0 to disable
|
|
||||||
remove_before=0 ; amount of seconds of show to be removed before ALL commercials
|
|
||||||
remove_after=0 ; amount of seconds of show to be removed after ALL commercials
|
|
||||||
shrink_logo=0 ; Reduce the duration of the logo with this amount of seconds
|
|
||||||
after_logo=0 ; set to number of seconds after logo disappears comskip should start to search for silence to insert an additional cutpoint
|
|
||||||
padding=0
|
|
||||||
ms_audio_delay=5
|
|
||||||
volume_slip=40
|
|
||||||
skip_b_frames=0 ; Set to 1 to force Comskip to skip frames for higher processing speed.
|
|
||||||
max_repair_size=200 ; Will repair maximum 200 missing MPEG frames in the timeline, set to 0 to disable repairing for players that don't use PTS.
|
|
||||||
disable_heuristics=4 bit pattern for disabling heuristics, adding 1 disables heristics 1, adding 2 disables heristics 2, adding 4 disables heristics 3, 255 disables all heuristics
|
|
||||||
delete_logo_file=0 ; set to 1 if you want comskip to tidy up after finishing
|
|
||||||
output_framearray=0 ; create a big excel file for detailed analysis, set to 0 to disable
|
|
||||||
output_data=0 ; create a dump of the user data channel, used for CC and XDS (such as V-Chip info). Can be use together with output_framearray to remote debug CC decoding
|
|
||||||
output_videoredo=0
|
|
||||||
output_womble=0
|
|
||||||
output_mls=0 ; set to 1 if you want MPeg Video Wizard bookmark file output
|
|
||||||
output_cuttermaran=0
|
|
||||||
output_mpeg2schnitt=0
|
|
||||||
output_mpgtx=0
|
|
||||||
output_dvrcut=0
|
|
||||||
output_zoomplayer_chapter=0
|
|
||||||
output_zoomplayer_cutlist=0
|
|
||||||
output_edl=0
|
|
||||||
output_dvrmstb=0 ; Set to 1 if you're running DVRMS-Toolbox
|
|
||||||
output_edlx=0
|
|
||||||
output_vcf=0
|
|
||||||
output_bsplayer=0
|
|
||||||
output_btv=0 ; set to 1 if you want Beyond TV chapter cutlist output
|
|
||||||
output_projectx=0 ; set to 1 if you want ProjectX cutlist output (Xcl)
|
|
||||||
output_avisynth=0
|
|
||||||
output_vdr=1 ; set to 1 if you want XBMC to skipping commercials
|
|
||||||
output_demux=0 ; set to 1 if you want comskip to demux the mpeg file while scanning
|
|
||||||
sage_framenumber_bug=0
|
|
||||||
sage_minute_bug=0
|
|
||||||
live_tv=0 ; set to 1 if you use parallelprocessing and need the output while recording
|
|
||||||
live_tv_retries=4 ; change to 16 when using live_tv in BTV, used for mpeg PS and TS
|
|
||||||
dvrms_live_tv_retries=300 ; only used for dvr_ms
|
|
||||||
standoff=0 ; change to 8000000 when using live_tv in BTV
|
|
||||||
cuttermaran_options="cut=\"true\" unattended=\"true\" muxResult=\"false\" snapToCutPoints=\"true\" closeApp=\"true\""
|
|
||||||
mpeg2schnitt_options="mpeg2schnitt.exe /S /E /R25 /Z %2 %1"
|
|
||||||
avisynth_options="LoadPlugin(\"MPEG2Dec3.dll\") \nMPEG2Source(\"%s\")\n"
|
|
||||||
dvrcut_options="dvrcut \"%s.dvr-ms\" \"%s_clean.dvr-ms\" "
|
|
||||||
windowtitle="Comskip - %s"
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"prefer_picon": true,
|
|
||||||
"chiconpath": "file:///picons/%C.png",
|
|
||||||
"piconpath": "file:///picons/",
|
|
||||||
"piconscheme": 0,
|
|
||||||
"chiconscheme": 2
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bash
|
|
||||||
|
|
||||||
# make folders
|
|
||||||
#mkdir -p \
|
|
||||||
# /config/comskip
|
|
||||||
|
|
||||||
# copy config
|
|
||||||
#[[ ! -e /config/dvr/config ]] && \
|
|
||||||
# (mkdir -p /config/dvr/config && cp /defaults/7a5edfbe189851e5b1d1df19c93962f0 /config/dvr/config/7a5edfbe189851e5b1d1df19c93962f0)
|
|
||||||
#[[ ! -e /config/comskip/comskip.ini ]] && \
|
|
||||||
# cp /defaults/comskip.ini.org /config/comskip/comskip.ini
|
|
||||||
#[[ ! -e /config/config ]] && \
|
|
||||||
# (cp /defaults/config /config/config)
|
|
||||||
|
|
||||||
# extract picons on first run
|
|
||||||
#[[ -f /picons.tar.bz2 ]] && \
|
|
||||||
# mkdir -p /picons
|
|
||||||
# tar xf \
|
|
||||||
# /picons.tar.bz2 -C \
|
|
||||||
# /picons &&
|
|
||||||
# rm -f /picons.tar.bz2
|
|
||||||
|
|
||||||
# function to randomly sample 5 files for their owner and only chown if not abc
|
|
||||||
#chowner () {
|
|
||||||
#files=(${1}/*)
|
|
||||||
#for i in {1..5}; do
|
|
||||||
# user=$(stat -c '%U' $(printf "%s\n" "${files[RANDOM % ${#files[@]}]}"))
|
|
||||||
# if [ "${user}" != "abc" ]; then
|
|
||||||
# chown -R abc:abc ${1}
|
|
||||||
# break
|
|
||||||
# fi
|
|
||||||
#done
|
|
||||||
#}
|
|
||||||
|
|
||||||
# permissions
|
|
||||||
#echo "Setting permissions"
|
|
||||||
#abc_dirs=( \
|
|
||||||
#/config \
|
|
||||||
#/picons \
|
|
||||||
#)
|
|
||||||
#for i in "${abc_dirs[@]}"; do
|
|
||||||
# if [ "$(ls -A ${i})" ]; then
|
|
||||||
# chowner ${i}
|
|
||||||
# else
|
|
||||||
# chown -R abc:abc ${i}
|
|
||||||
# fi
|
|
||||||
#done
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bash
|
|
||||||
|
|
||||||
FILES=$(find /dev/dri /dev/dvb -type c -print 2>/dev/null)
|
|
||||||
|
|
||||||
for i in $FILES
|
|
||||||
do
|
|
||||||
VIDEO_GID=$(stat -c '%g' "$i")
|
|
||||||
if id -G abc | grep -qw "$VIDEO_GID"; then
|
|
||||||
touch /groupadd
|
|
||||||
else
|
|
||||||
if [ ! "${VIDEO_GID}" == '0' ]; then
|
|
||||||
VIDEO_NAME=$(getent group "${VIDEO_GID}" | awk -F: '{print $1}')
|
|
||||||
if [ -z "${VIDEO_NAME}" ]; then
|
|
||||||
VIDEO_NAME="video$(head /dev/urandom | tr -dc 'a-z0-9' | head -c8)"
|
|
||||||
groupadd "$VIDEO_NAME"
|
|
||||||
groupmod -g "$VIDEO_GID" "$VIDEO_NAME"
|
|
||||||
fi
|
|
||||||
usermod -a -G "$VIDEO_NAME" abc
|
|
||||||
touch /groupadd
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -n "${FILES}" ] && [ ! -f "/groupadd" ]; then
|
|
||||||
usermod -a -G root abc
|
|
||||||
fi
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
|
||||||
# ==============================================================================
|
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
# Executes user customizations on startup
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
# Install user configured/requested packages
|
|
||||||
if bashio::config.has_value 'system_packages'; then
|
|
||||||
apk update \
|
|
||||||
|| bashio::exit.nok 'Failed updating Alpine packages repository indexes'
|
|
||||||
|
|
||||||
for package in $(bashio::config 'system_packages'); do
|
|
||||||
apk add "$package" \
|
|
||||||
|| bashio::exit.nok "Failed installing system package ${package}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Executes user commands on startup
|
|
||||||
if bashio::config.has_value 'init_commands'; then
|
|
||||||
while read -r cmd; do
|
|
||||||
eval "${cmd}" \
|
|
||||||
|| bashio::exit.nok "Failed executing init command: ${cmd}"
|
|
||||||
done <<< "$(bashio::config 'init_commands')"
|
|
||||||
fi
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
|
||||||
# ==============================================================================
|
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
# Executes user customizations on startup
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
check_picons(){
|
|
||||||
if [ -z "$(ls -A /config/tvheadend/picons)" ]; then return 1; else return 0; fi
|
|
||||||
}
|
|
||||||
|
|
||||||
picons_install(){
|
|
||||||
if apk update; then
|
|
||||||
bashio::log.info '[Picons] APK: Installing required packages.'
|
|
||||||
if apk add --no-cache --virtual .build-deps xz; then
|
|
||||||
bashio::log.info '[Picons] Installing Picons.'
|
|
||||||
bashio::log.info '[Picons] SNP-Picons Download.'
|
|
||||||
wget -O /config/tvheadend/snp.tar.xz $(bashio::config 'snp_url')
|
|
||||||
bashio::log.info '[Picons] SRP-Picons Download.'
|
|
||||||
wget -O /config/tvheadend/srp.tar.xz $(bashio::config 'srp_url')
|
|
||||||
bashio::log.info '[Picons] SNP-Picons extract.'
|
|
||||||
mkdir -p /config/tvheadend/picons/snp
|
|
||||||
tar -xf /config/tvheadend/snp.tar.xz --strip-components=1 -C /config/tvheadend/picons/snp
|
|
||||||
rm /config/tvheadend/snp.tar.xz
|
|
||||||
bashio::log.info '[Picons] SRP-Picons extract.'
|
|
||||||
mkdir -p /config/tvheadend/picons/srp
|
|
||||||
tar -xf /config/tvheadend/srp.tar.xz --strip-components=1 -C /config/tvheadend/picons/srp
|
|
||||||
rm /config/tvheadend/srp.tar.xz
|
|
||||||
bashio::log.info '[Picons] Update config.'
|
|
||||||
sed -i 's|.*chiconpath.*| "chiconpath": "file:///config/tvheadend/picons/snp/%C.png",|g' /config/tvheadend/config
|
|
||||||
sed -i 's|.*piconpath.*| "piconpath": "file:///config/tvheadend/picons/srp",|g' /config/tvheadend/config
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
check_webgrabplus(){
|
|
||||||
if [ -z "$(ls -A /config/tvheadend/wg++)" ]; then return 1; else return 0; fi
|
|
||||||
}
|
|
||||||
|
|
||||||
webgrabplus_install(){
|
|
||||||
if apk update; then
|
|
||||||
bashio::log.info '[Webgrab+] APK: Installing required packages.'
|
|
||||||
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+.'
|
|
||||||
cd /tmp \
|
|
||||||
&& wget http://webgrabplus.com/sites/default/files/download/SW/V3.2.0/WebGrabPlus_V3.2_install.tar.gz \
|
|
||||||
&& tar -zxvf WebGrabPlus_V3.2_install.tar.gz \
|
|
||||||
&& rm WebGrabPlus_V3.2_install.tar.gz \
|
|
||||||
&& mv .wg++/ /config/tvheadend/wg++ \
|
|
||||||
&& cd /config/tvheadend/wg++ \
|
|
||||||
&& ./install.sh \
|
|
||||||
&& rm -rf siteini.pack/ \
|
|
||||||
&& wget http://webgrabplus.com/sites/default/files/download/ini/SiteIniPack_current.zip \
|
|
||||||
&& unzip SiteIniPack_current.zip \
|
|
||||||
&& rm SiteIniPack_current.zip \
|
|
||||||
&& cp siteini.pack/India/* siteini.user/ \
|
|
||||||
&& wget -O /usr/bin/tv_grab_wg++ http://www.webgrabplus.com/sites/default/files/tv_grab_wg.txt \
|
|
||||||
&& sed -i 's|~/.wg++/guide.xml|/config/tvheadend/wg++/guide.xml|g' /usr/bin/tv_grab_wg++ \
|
|
||||||
&& chmod a+x /usr/bin/tv_grab_wg++
|
|
||||||
else
|
|
||||||
bashio::log.info '[Webgrab+] APK: Critical error. Unable install required packages.'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
bashio::log.info '[Webgrab+] APK: Removing packages no longer required.'
|
|
||||||
apk del --no-cache --purge .build-deps
|
|
||||||
else
|
|
||||||
bashio::log.error '[Webgrab+] APK: Critical error. Unable to update pkg list. Check connectivity.'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
bashio::log.info '[Webgrab+] Finsihed all APK and PIP3 updates and installs.'
|
|
||||||
}
|
|
||||||
|
|
||||||
# Ensure directory exists
|
|
||||||
if ! bashio::fs.directory_exists '/config/tvheadend/'; then
|
|
||||||
bashio::log.info "Creating default configuration directory at /config/tvheadend/"
|
|
||||||
timeout 20s /usr/bin/tvheadend --firstrun -u root -g root -c /config/tvheadend
|
|
||||||
fi
|
|
||||||
|
|
||||||
if check_picons; then
|
|
||||||
bashio::log.info "[Picons] Picons already installed"
|
|
||||||
else
|
|
||||||
bashio::log.info "[Picons] No Picons installation found"
|
|
||||||
if [ $(bashio::config 'picons') = true ]; then
|
|
||||||
bashio::log.info "[Picons] Installing Picons"
|
|
||||||
picons_install
|
|
||||||
chmod +x /usr/bin/restart_addon
|
|
||||||
exec /usr/bin/restart_addon
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if check_webgrabplus; then
|
|
||||||
bashio::log.info "[Webgrab+] Webgrab+ already installed"
|
|
||||||
else
|
|
||||||
bashio::log.info "[Webgrab+] No webgrab+ installation found"
|
|
||||||
if [ $(bashio::config 'webgrabplus') = true ]; then
|
|
||||||
bashio::log.info "[Webgrab+] Installing webgrab+"
|
|
||||||
webgrabplus_install
|
|
||||||
chmod +x /usr/bin/restart_addon
|
|
||||||
exec /usr/bin/restart_addon
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
bashio::log.info 'Setup completed without errors!!'
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
0 0 * * * /config/tvheadend/wg++/run.sh
|
|
||||||
@@ -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,6 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
|
||||||
# ==============================================================================
|
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
# Runs the cron daemon
|
|
||||||
# ==============================================================================
|
|
||||||
exec fdmove -c 2 1 /usr/sbin/crond -f -L /var/log/cron -l 0 -c /etc/crontabs
|
|
||||||
@@ -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
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bashio
|
|
||||||
# ==============================================================================
|
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
# Starts TVHeadend
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
declare satip_xml
|
|
||||||
|
|
||||||
bashio::log.info "Starting TVHeadend..."
|
|
||||||
if bashio::config.has_value 'satip_xml'; then
|
|
||||||
satip_xml="--satip_xml $(bashio::config 'satip_xml')"
|
|
||||||
else
|
|
||||||
satip_xml=""
|
|
||||||
fi
|
|
||||||
exec /usr/bin/tvheadend -u root -g root -c /config/tvheadend $satip_xml
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env bashio
|
|
||||||
# ==============================================================================
|
|
||||||
# Home Assistant Community Add-on: TVHeadend
|
|
||||||
# Restarts the add-on
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
echo "Restarting add-on"
|
|
||||||
|
|
||||||
bashio::addon.restart
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
dflag=
|
|
||||||
vflag=
|
|
||||||
cflag=
|
|
||||||
if (( $# < 1 ))
|
|
||||||
then
|
|
||||||
cat /config/data/*.xml
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
delim=""
|
|
||||||
case "$arg" in
|
|
||||||
#translate --gnu-long-options to -g (short options)
|
|
||||||
--description) args="${args}-d ";;
|
|
||||||
--version) args="${args}-v ";;
|
|
||||||
--capabilities) args="${args}-c ";;
|
|
||||||
#pass through anything else
|
|
||||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
|
||||||
args="${args}${delim}${arg}${delim} ";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
#Reset the positional parameters to the short options
|
|
||||||
eval set -- $args
|
|
||||||
|
|
||||||
while getopts "dvc" option
|
|
||||||
do
|
|
||||||
case $option in
|
|
||||||
d) dflag=1;;
|
|
||||||
v) vflag=1;;
|
|
||||||
c) cflag=1;;
|
|
||||||
\?) printf "unknown option: -%s\n" $OPTARG
|
|
||||||
printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
|
|
||||||
exit 2
|
|
||||||
;;
|
|
||||||
esac >&2
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$dflag" ]
|
|
||||||
then
|
|
||||||
printf "XML file grabber\n"
|
|
||||||
fi
|
|
||||||
if [ "$vflag" ]
|
|
||||||
then
|
|
||||||
printf "0.1\n"
|
|
||||||
fi
|
|
||||||
if [ "$cflag" ]
|
|
||||||
then
|
|
||||||
printf "baseline\n"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
dflag=
|
|
||||||
vflag=
|
|
||||||
cflag=
|
|
||||||
|
|
||||||
if (( $# < 1 ))
|
|
||||||
then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
OPTARG=""
|
|
||||||
URL=$1
|
|
||||||
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
delim=""
|
|
||||||
case "$arg" in
|
|
||||||
#translate --gnu-long-options to -g (short options)
|
|
||||||
--description) args="${args}-d ";;
|
|
||||||
--version) args="${args}-v ";;
|
|
||||||
--capabilities) args="${args}-c ";;
|
|
||||||
#pass through anything else
|
|
||||||
*) if [ "${arg:0:1}" == "-" ] || delim="\""
|
|
||||||
then
|
|
||||||
args="${args}${delim}${arg}${delim} "
|
|
||||||
else
|
|
||||||
OPTARG=${arg}
|
|
||||||
fi
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
#Reset the positional parameters to the short options
|
|
||||||
eval set -- $args
|
|
||||||
|
|
||||||
while getopts "dvc" option
|
|
||||||
do
|
|
||||||
case $option in
|
|
||||||
d) dflag=1;;
|
|
||||||
v) vflag=1;;
|
|
||||||
c) cflag=1;;
|
|
||||||
\?) printf "unknown option: -%s\n" $OPTARG
|
|
||||||
printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
|
|
||||||
exit 2
|
|
||||||
;;
|
|
||||||
esac >&2
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$dflag" ]
|
|
||||||
then
|
|
||||||
printf "XMLTV URL grabber\n"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
if [ "$vflag" ]
|
|
||||||
then
|
|
||||||
printf "0.1\n"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
if [ "$cflag" ]
|
|
||||||
then
|
|
||||||
printf "baseline\n"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
curl -s "$URL"
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
dflag=
|
|
||||||
vflag=
|
|
||||||
cflag=
|
|
||||||
qflag=
|
|
||||||
if (( $# < 1 ))
|
|
||||||
then
|
|
||||||
cat /config/data/*.xml
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
delim=""
|
|
||||||
case "$arg" in
|
|
||||||
#translate --gnu-long-options to -g (short options)
|
|
||||||
--description) args="${args}-d ";;
|
|
||||||
--version) args="${args}-v ";;
|
|
||||||
--capabilities) args="${args}-c ";;
|
|
||||||
--quiet) args="${args}-q ";;
|
|
||||||
|
|
||||||
#pass through anything else
|
|
||||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
|
||||||
args="${args}${delim}${arg}${delim} ";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
#Reset the positional parameters to the short options
|
|
||||||
eval set -- $args
|
|
||||||
|
|
||||||
while getopts "dvcq" option
|
|
||||||
do
|
|
||||||
case $option in
|
|
||||||
d) dflag=1;;
|
|
||||||
v) vflag=1;;
|
|
||||||
c) cflag=1;;
|
|
||||||
q) qflag=1;;
|
|
||||||
\?) printf "unknown option: -%s\n" $OPTARG
|
|
||||||
printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
|
|
||||||
exit 2
|
|
||||||
;;
|
|
||||||
esac >&2
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$dflag" ]
|
|
||||||
then
|
|
||||||
printf "WebGrab+Plus XML file grabber\n"
|
|
||||||
fi
|
|
||||||
if [ "$vflag" ]
|
|
||||||
then
|
|
||||||
printf "0.2\n"
|
|
||||||
fi
|
|
||||||
if [ "$cflag" ]
|
|
||||||
then
|
|
||||||
printf "baseline\n"
|
|
||||||
fi
|
|
||||||
if [ "$qflag" ]
|
|
||||||
then
|
|
||||||
printf ""
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
Reference in New Issue
Block a user