diff --git a/packages/addons/service/ttyd/changelog.txt b/packages/addons/service/ttyd/changelog.txt new file mode 100644 index 0000000000..939a143a03 --- /dev/null +++ b/packages/addons/service/ttyd/changelog.txt @@ -0,0 +1,2 @@ +100 +- initial LibreELEC version diff --git a/packages/addons/service/ttyd/icon/icon.png b/packages/addons/service/ttyd/icon/icon.png new file mode 100644 index 0000000000..9cb07fc51b Binary files /dev/null and b/packages/addons/service/ttyd/icon/icon.png differ diff --git a/packages/addons/service/ttyd/package.mk b/packages/addons/service/ttyd/package.mk new file mode 100644 index 0000000000..588adefb71 --- /dev/null +++ b/packages/addons/service/ttyd/package.mk @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="ttyd" +PKG_VERSION="1.4.4" +PKG_SHA256="b910a33ddaa474c369991ba345187a8a2f4aa420389083671ba3a6c305a491d6" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="MIT" +PKG_SITE="https://github.com/tsl0922/ttyd" +PKG_URL="https://github.com/tsl0922/ttyd/archive/$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain libwebsockets" +PKG_SECTION="service" +PKG_SHORTDESC="ttyd: a tool for accessing the terminal over a browser" +PKG_LONGDESC="ttyd ($PKG_VERSION): is a simple command-line tool for sharing terminal over the web" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="Web SSH Terminal" +PKG_ADDON_TYPE="xbmc.service" + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $PKG_BUILD/.install_pkg/usr/bin/ttyd $ADDON_BUILD/$PKG_ADDON_ID/bin + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -p $(get_build_dir json-c)/.install_pkg/usr/lib/libjson-c.so $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -p $(get_build_dir libwebsockets)/.install_pkg/usr/lib/libwebsockets.so.14 $ADDON_BUILD/$PKG_ADDON_ID/lib +} diff --git a/packages/addons/service/ttyd/source/bin/ttyd.start b/packages/addons/service/ttyd/source/bin/ttyd.start new file mode 100755 index 0000000000..7387840cd1 --- /dev/null +++ b/packages/addons/service/ttyd/source/bin/ttyd.start @@ -0,0 +1,18 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) + +. /etc/profile + +oe_setup_addon service.ttyd + +chmod a+x $ADDON_DIR/bin/* + +if [ "$TTYD_NOLOGIN" = "true" ]; then + TTYD_NOLOGIN="bash" +elif [ "$TTYD_NOLOGIN" = "false" ]; then + TTYD_NOLOGIN="login root" +fi + +exec $ADDON_DIR/bin/ttyd -O -T xterm -p ${TTYD_WEBPORT} ${TTYD_NOLOGIN} &>$ADDON_HOME/service.log diff --git a/packages/addons/service/ttyd/source/default.py b/packages/addons/service/ttyd/source/default.py new file mode 100644 index 0000000000..67246d4782 --- /dev/null +++ b/packages/addons/service/ttyd/source/default.py @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) + +import subprocess +import xbmc +import xbmcaddon + + +class Monitor(xbmc.Monitor): + + def __init__(self, *args, **kwargs): + xbmc.Monitor.__init__(self) + self.id = xbmcaddon.Addon().getAddonInfo('id') + + def onSettingsChanged(self): + subprocess.call(['systemctl', 'restart', self.id]) + + +if __name__ == "__main__": + Monitor().waitForAbort() diff --git a/packages/addons/service/ttyd/source/resources/language/English/strings.po b/packages/addons/service/ttyd/source/resources/language/English/strings.po new file mode 100644 index 0000000000..c32fd1f44e --- /dev/null +++ b/packages/addons/service/ttyd/source/resources/language/English/strings.po @@ -0,0 +1,19 @@ +# Kodi Media Center language file +# Addon Name: ttyd +# Addon id: service.ttyd +# Addon Provider: Team LibreELEC +msgid "" +msgstr "" + +msgctxt "#30000" +msgid "Settings" +msgstr "" + +msgctxt "#30001" +msgid "Webui Port" +msgstr "" + +msgctxt "#30002" +msgid "[COLOR FFFF0000][SECURITY RISK][/COLOR] Allow usage without password" +msgstr "" + diff --git a/packages/addons/service/ttyd/source/resources/settings.xml b/packages/addons/service/ttyd/source/resources/settings.xml new file mode 100644 index 0000000000..ebfca1f73a --- /dev/null +++ b/packages/addons/service/ttyd/source/resources/settings.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/addons/service/ttyd/source/settings-default.xml b/packages/addons/service/ttyd/source/settings-default.xml new file mode 100644 index 0000000000..ffc4900c4e --- /dev/null +++ b/packages/addons/service/ttyd/source/settings-default.xml @@ -0,0 +1,4 @@ + + false + 11111 + diff --git a/packages/addons/service/ttyd/source/system.d/service.ttyd.service b/packages/addons/service/ttyd/source/system.d/service.ttyd.service new file mode 100644 index 0000000000..cd65602731 --- /dev/null +++ b/packages/addons/service/ttyd/source/system.d/service.ttyd.service @@ -0,0 +1,14 @@ +[Unit] +Description=ttyd +After=graphical.target + +[Service] +ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.ttyd/bin/ttyd.start" +TimeoutStopSec=1 +Restart=always +RestartSec=2 +StartLimitInterval=0 +Type=forking + +[Install] +WantedBy=kodi.target