From 047ae49413d8b52a26718c6abdcf75d14e427271 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:29:25 -0700 Subject: [PATCH] network-tools: initial add-on --- .../addons/tools/network-tools/changelog.txt | 2 + .../addons/tools/network-tools/icon/icon.png | Bin 0 -> 41817 bytes .../addons/tools/network-tools/package.mk | 111 ++++++++++++++++++ .../tools/network-tools/source/default.py | 22 ++++ 4 files changed, 135 insertions(+) create mode 100644 packages/addons/tools/network-tools/changelog.txt create mode 100644 packages/addons/tools/network-tools/icon/icon.png create mode 100644 packages/addons/tools/network-tools/package.mk create mode 100644 packages/addons/tools/network-tools/source/default.py diff --git a/packages/addons/tools/network-tools/changelog.txt b/packages/addons/tools/network-tools/changelog.txt new file mode 100644 index 0000000000..f6abfd1747 --- /dev/null +++ b/packages/addons/tools/network-tools/changelog.txt @@ -0,0 +1,2 @@ +8.0.100 +- Initial Release diff --git a/packages/addons/tools/network-tools/icon/icon.png b/packages/addons/tools/network-tools/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5de6f7bf7745364bbc4f1cde187cf34dd7549051 GIT binary patch literal 41817 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. +################################################################################ + +PKG_NAME="network-tools" +PKG_VERSION="" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="" +PKG_URL="" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="virtual" +PKG_SHORTDESC="A bundle of network tools and programs" +PKG_LONGDESC="A bundle of network tools and programs" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="Network Tools" +PKG_ADDON_TYPE="xbmc.python.script" +PKG_ADDON_PROVIDES="" +PKG_ADDON_REPOVERSION="8.0" + +PKG_AUTORECONF="no" + +PKG_DEPENDS_TARGET="toolchain \ + bwm-ng \ + iftop \ + iperf \ + irssi \ + iw \ + lftp \ + ncftp \ + ngrep \ + nmap \ + rsync \ + sshfs \ + tcpdump \ + udpxy \ + wireless_tools" + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ + # bwm-ng + cp -P $(get_build_dir bwm-ng)/.$TARGET_NAME/src/bwm-ng $ADDON_BUILD/$PKG_ADDON_ID/bin + + # iftop + cp -P $(get_build_dir iftop)/.$TARGET_NAME/iftop $ADDON_BUILD/$PKG_ADDON_ID/bin + + # iperf + cp -P $(get_build_dir iperf)/.$TARGET_NAME/src/iperf3 $ADDON_BUILD/$PKG_ADDON_ID/bin + ln -s iperf3 $ADDON_BUILD/$PKG_ADDON_ID/bin/iperf + + # irssi + cp -P $(get_build_dir irssi)/.$TARGET_NAME/src/fe-text/irssi $ADDON_BUILD/$PKG_ADDON_ID/bin + + # iw + cp -P $(get_build_dir iw)/iw $ADDON_BUILD/$PKG_ADDON_ID/bin + + # lftp + cp -P $(get_build_dir lftp)/.$TARGET_NAME/src/lftp $ADDON_BUILD/$PKG_ADDON_ID/bin + + # ncftp + cp -P $(get_build_dir ncftp)/.$TARGET_NAME/bin/ncftp $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir ncftp)/.$TARGET_NAME/bin/ncftpbatch $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir ncftp)/.$TARGET_NAME/bin/ncftpget $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir ncftp)/.$TARGET_NAME/bin/ncftpls $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir ncftp)/.$TARGET_NAME/bin/ncftpput $ADDON_BUILD/$PKG_ADDON_ID/bin + + # ngrep + cp -P $(get_build_dir ngrep)/.$TARGET_NAME/ngrep $ADDON_BUILD/$PKG_ADDON_ID/bin + + # nmap + cp -P $(get_build_dir nmap)/nmap $ADDON_BUILD/$PKG_ADDON_ID/bin + + # rsync + cp -P $(get_build_dir rsync)/.$TARGET_NAME/rsync $ADDON_BUILD/$PKG_ADDON_ID/bin + + # sshfs + cp -P $(get_build_dir sshfs)/.$TARGET_NAME/sshfs $ADDON_BUILD/$PKG_ADDON_ID/bin + + # tcpdump + cp -P $(get_build_dir tcpdump)/.$TARGET_NAME/tcpdump $ADDON_BUILD/$PKG_ADDON_ID/bin + + # udpxy + cp -P $(get_build_dir udpxy)/udpxy $ADDON_BUILD/$PKG_ADDON_ID/bin/ + + # wireless_tools + cp -P $(get_build_dir wireless_tools)/iwmulticall $ADDON_BUILD/$PKG_ADDON_ID/bin + ln -s iwmulticall $ADDON_BUILD/$PKG_ADDON_ID/bin/iwconfig + ln -s iwmulticall $ADDON_BUILD/$PKG_ADDON_ID/bin/iwgetid + ln -s iwmulticall $ADDON_BUILD/$PKG_ADDON_ID/bin/iwlist + ln -s iwmulticall $ADDON_BUILD/$PKG_ADDON_ID/bin/iwspy + ln -s iwmulticall $ADDON_BUILD/$PKG_ADDON_ID/bin/iwpriv + + debug_strip $ADDON_BUILD/$PKG_ADDON_ID/bin +} diff --git a/packages/addons/tools/network-tools/source/default.py b/packages/addons/tools/network-tools/source/default.py new file mode 100644 index 0000000000..67e12970fe --- /dev/null +++ b/packages/addons/tools/network-tools/source/default.py @@ -0,0 +1,22 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +import xbmcgui + +dialog = xbmcgui.Dialog() +dialog.ok('', 'This is a console-only addon')