diff --git a/client_s2/MANIFEST.in b/client_s2/MANIFEST.in new file mode 100644 index 0000000..1a69f4c --- /dev/null +++ b/client_s2/MANIFEST.in @@ -0,0 +1 @@ +include readme.md diff --git a/client_s2/build_deb.sh b/client_s2/build_deb.sh new file mode 100755 index 0000000..e45c508 --- /dev/null +++ b/client_s2/build_deb.sh @@ -0,0 +1,46 @@ +##!/usr/bin/zsh +export PYTHONDONTWRITEBYTECODE=1 + +# be sure to change version if needed! +fpm -s python --python-bin python3 --python-pip pip3 --python-package-name-prefix python3 \ + -m '"Joel Klimont" ' \ + --license 'proprietary' \ + --description 'Library for robot used in the competition' \ + --after-install postinstall.sh \ + --after-upgrade postinstall.sh \ + --deb-priority "optional" \ + --deb-systemd "complib.service" \ + -d "python3-pip" \ + -d "nginx" \ + -d "libnginx-mod-rtmp" \ + -d "libsystemd-dev" \ + -d "python3-systemd" \ + -d "gstreamer1.0-tools" \ + -d "gstreamer1.0-plugins-bad" \ + -d "gstreamer1.0-plugins-base" \ + -d "gstreamer1.0-plugins-good" \ + -d "gstreamer1.0-omx-rpi" \ + -d "gstreamer1.0-omx-rpi-config" \ + -d "opencv-dev" \ + -d "opencv-libs" \ + -d "opencv-licenses" \ + -d "opencv-main" \ + -d "opencv-python" \ + -d "opencv-scripts" \ + -d "libatlas-base-dev" \ + -d "pigpio" \ + -d "python-pigpio" \ + -d "python3-pigpio" \ + -d "python3-numpy" \ + -d "ffmpeg" \ + -v 1.0.0-1 -t deb setup.py + +# --deb-changelog changelog \ +# --deb-upstream-changelog changelog \ +# --deb-field "Distribution: stable" \ +# --deb-dist "stable" \ + +# sudo apt purge python3-complib -y +# sudo apt install ./python3-* +# sudo apt search complib +# ar vx ./python3* \ No newline at end of file diff --git a/client_s2/complib.service b/client_s2/complib.service new file mode 100644 index 0000000..758aaf7 --- /dev/null +++ b/client_s2/complib.service @@ -0,0 +1,11 @@ +[Unit] +Description=Monitoring service +[Service] +ExecStart=/usr/bin/python3 /usr/local/lib/python3.7/dist-packages/compLib/IPService.py +Environment="debug=False" +Restart=always +RestartSec=5 +Type=notify +[Install] +Alias=complib +WantedBy=default.target \ No newline at end of file diff --git a/client_s2/postinstall.sh b/client_s2/postinstall.sh new file mode 100644 index 0000000..fabfa94 --- /dev/null +++ b/client_s2/postinstall.sh @@ -0,0 +1,63 @@ +grep -qxF "apt update" /etc/rc.local +if [ $? -ne 0 ]; then + echo "adding apt update to rc.local" + sed -i "2s/^/apt update\n/" /etc/rc.local +fi + +install_package() { + echo "Installing package '$1' via pip3" + pip3 install "$1" + if [ $? -eq 0 ]; then + echo "Successfully installed pip3 package '$1'" + else + echo "Could not install pip3 package '$1'" + exit 1 + fi +} + +#install_package "smbus" +#install_package "requests" +#install_package "flask" +#install_package "python-logstash-async" +#install_package "RPi.GPIO" +#install_package "spidev" +#install_package "influxdb_client" + +pip3 install smbus requests flask python-logstash-async RPi.GPIO spidev influxdb_client filelock + +echo "Setting up opencv4" +pkg-config --modversion opencv4 + +echo "Setting up nginx rtmp server" +sudo /etc/init.d/nginx start + +{ + echo 'load_module "modules/ngx_rtmp_module.so";' + echo 'worker_processes auto;' + echo 'rtmp_auto_push on;' + echo 'events {}' + echo 'rtmp {' + echo ' server {' + echo ' listen 1935;' + echo ' listen [::]:1935 ipv6only=on;' + echo ' application live {' + echo ' live on;' + echo ' record off;' + echo ' }' + echo ' }' + echo '}' +} >| /etc/nginx/nginx.conf + +echo "Starting pigpiod daemon" + +sudo systemctl start pigpiod +sudo systemctl enable pigpiod + +base64 -d << UPD +CiBfX19fX18gICAgIF9fX19fXyAgICAgX18gICAgX18gICAgIF9fX19fXyAgIF9fICAgICAgICAgX18gICAgIF9fX19fXyAgICAgICAgICAgICAgICAgIAovXCAgX19fXCAgIC9cICBfXyBcICAgL1wgIi0uLyAgXCAgIC9cICA9PSBcIC9cIFwgICAgICAgL1wgXCAgIC9cICA9PSBcICAgICAgICAgICAgICAgICAKXCBcIFxfX19fICBcIFwgXC9cIFwgIFwgXCBcLS4vXCBcICBcIFwgIF8tLyBcIFwgXF9fX18gIFwgXCBcICBcIFwgIF9fPCAgICAgICAgICAgICAgICAgCiBcIFxfX19fX1wgIFwgXF9fX19fXCAgXCBcX1wgXCBcX1wgIFwgXF9cICAgIFwgXF9fX19fXCAgXCBcX1wgIFwgXF9fX19fXCAgICAgICAgICAgICAgIAogIFwvX19fX18vICAgXC9fX19fXy8gICBcL18vICBcL18vICAgXC9fLyAgICAgXC9fX19fXy8gICBcL18vICAgXC9fX19fXy8gICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiBfXyAgX18gICAgIF9fX19fXyAgICAgIF9fX19fXyAgIF9fX19fXyAgICAgICAgX19fX18gICAgIF9fX19fXyAgICAgX19fX19fICAgX19fX19fICAgIAovXCBcL1wgXCAgIC9cICA9PSBcICAgIC9cX18gIF9cIC9cICBfXyBcICAgICAgL1wgIF9fLS4gIC9cICBfXyBcICAgL1xfXyAgX1wgL1wgIF9fX1wgICAKXCBcIFxfXCBcICBcIFwgIF8tLyAgICBcL18vXCBcLyBcIFwgXC9cIFwgICAgIFwgXCBcL1wgXCBcIFwgIF9fIFwgIFwvXy9cIFwvIFwgXCAgX19cICAgCiBcIFxfX19fX1wgIFwgXF9cICAgICAgICAgXCBcX1wgIFwgXF9fX19fXCAgICAgXCBcX19fXy0gIFwgXF9cIFxfXCAgICBcIFxfXCAgXCBcX19fX19cIAogIFwvX19fX18vICAgXC9fLyAgICAgICAgICBcL18vICAgXC9fX19fXy8gICAgICBcL19fX18vICAgXC9fL1wvXy8gICAgIFwvXy8gICBcL19fX19fLyA= +UPD +echo "" +echo "" + +service complib restart +systemctl enable complib diff --git a/client_s2/setup.py b/client_s2/setup.py new file mode 100644 index 0000000..464b3f1 --- /dev/null +++ b/client_s2/setup.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +import setuptools +import os + +base_dir = os.path.dirname(__file__) +readme_path = os.path.join(base_dir, "README.md") +if os.path.exists(readme_path): + with open(readme_path) as stream: + long_description = stream.read() +else: + long_description = "" + +setuptools.setup( + name="complib", + author="F-WuTs", + author_email="joel.klimont@comp-air.at", + description="", + summary="Robot client library for the compAIR competition", + platforms=["any"], + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/F-WuTS/compLIB", + packages=setuptools.find_packages(), + include_package_data=True, + classifiers=[ + "Programming Language :: Python :: 3.7", + "License :: Other/Proprietary License", + "Operating System :: Unix" + ], + license="proprietary" +)