fix: the auto-update plugin now also installs launchers and service files via setup.py (closes #470)

This commit is contained in:
Simone Margaritelli 2019-10-31 12:48:15 +01:00
parent 279d885ec6
commit 783ac61594
10 changed files with 73 additions and 62 deletions

View File

@ -0,0 +1,2 @@
allow-hotplug eth0
iface eth0 inet dhcp

View File

@ -0,0 +1,2 @@
auto lo
iface lo inet loopback

View File

@ -0,0 +1,7 @@
allow-hotplug usb0
iface usb0 inet static
address 10.0.0.2
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.1

View File

@ -0,0 +1,2 @@
allow-hotplug wlan0
iface wlan0 inet static

2
builder/data/usr/bin/hdmioff Executable file
View File

@ -0,0 +1,2 @@
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -o

2
builder/data/usr/bin/hdmion Executable file
View File

@ -0,0 +1,2 @@
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -p

View File

@ -44,6 +44,36 @@
"source": "data/usr/bin/monstart", "source": "data/usr/bin/monstart",
"destination": "/usr/bin/monstart" "destination": "/usr/bin/monstart"
}, },
{
"type": "file",
"source": "data/usr/bin/hdmion",
"destination": "/usr/bin/hdmion"
},
{
"type": "file",
"source": "data/usr/bin/hdmioff",
"destination": "/usr/bin/hdmioff"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/lo-cfg",
"destination": "/etc/network/interfaces.d/lo-cfg"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/wlan0-cfg",
"destination": "/etc/network/interfaces.d/wlan0-cfg"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/usb0-cfg",
"destination": "/etc/network/interfaces.d/usb0-cfg"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/eth0-cfg",
"destination": "/etc/network/interfaces.d/eth0-cfg"
},
{ {
"type": "file", "type": "file",
"source": "data/etc/systemd/system/pwngrid-peer.service", "source": "data/etc/systemd/system/pwngrid-peer.service",

View File

@ -280,22 +280,6 @@
remote_src: yes remote_src: yes
mode: 0755 mode: 0755
- name: create hdmion script
copy:
dest: /usr/bin/hdmion
mode: 0755
content: |
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -p
- name: create hdmioff script
copy:
dest: /usr/bin/hdmioff
mode: 0755
content: |
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -o
- name: add HDMI powersave to rc.local - name: add HDMI powersave to rc.local
blockinfile: blockinfile:
path: /etc/rc.local path: /etc/rc.local
@ -329,39 +313,6 @@
# #
when: not user_config.stat.exists when: not user_config.stat.exists
- name: configure lo interface
copy:
dest: /etc/network/interfaces.d/lo-cfg
content: |
auto lo
iface lo inet loopback
- name: configure wlan interface
copy:
dest: /etc/network/interfaces.d/wlan0-cfg
content: |
allow-hotplug wlan0
iface wlan0 inet static
- name: configure usb interface
copy:
dest: /etc/network/interfaces.d/usb0-cfg
content: |
allow-hotplug usb0
iface usb0 inet static
address 10.0.0.2
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.1
- name: configure eth0 interface (pi2/3/4)
copy:
dest: /etc/network/interfaces.d/eth0-cfg
content: |
allow-hotplug eth0
iface eth0 inet dhcp
- name: enable ssh on boot - name: enable ssh on boot
file: file:
path: /boot/ssh path: /boot/ssh

View File

@ -143,20 +143,9 @@ def install(display, update):
if not os.path.exists(source_path): if not os.path.exists(source_path):
source_path = "%s-%s" % (source_path, update['available']) source_path = "%s-%s" % (source_path, update['available'])
# setup.py is going to install data files for us
os.system("cd %s && pip3 install ." % source_path) os.system("cd %s && pip3 install ." % source_path)
data_path = os.path.join(source_path, "builder/data")
for source in glob.glob("%s/**" % data_path, recursive=True):
if os.path.isfile(source):
dest = source.replace(data_path, '')
dest_path = os.path.dirname(dest)
if not os.path.isdir(dest_path):
os.makedirs(dest_path)
logging.info("[update] installing %s to %s ..." % (source, dest))
os.system("mv '%s' '%s'" % (source, dest))
os.system("systemctl daemon-reload")
return True return True

View File

@ -1,7 +1,29 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from setuptools import setup, find_packages from setuptools import setup, find_packages
import pwnagotchi import os
import glob
import shutil
setup_path = os.path.dirname(__file__)
data_path = os.path.join(setup_path, "builder/data")
for source_filename in glob.glob("%s/**" % data_path, recursive=True):
if os.path.isfile(source_filename):
dest_filename = source_filename.replace(data_path, '')
dest_folder = os.path.dirname(dest_filename)
print("installing %s to %s ..." % (source_filename, dest_filename))
try:
if not os.path.isdir(dest_folder):
os.makedirs(dest_folder)
shutil.copyfile(source_filename, dest_filename)
except Exception as e:
print("error installing %s: %s" % (source_filename, e))
# reload systemd units
os.system("systemctl daemon-reload")
required = [] required = []
with open('requirements.txt') as fp: with open('requirements.txt') as fp:
@ -10,6 +32,8 @@ with open('requirements.txt') as fp:
if line != "": if line != "":
required.append(line) required.append(line)
import pwnagotchi
setup(name='pwnagotchi', setup(name='pwnagotchi',
version=pwnagotchi.version, version=pwnagotchi.version,
description='(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFI pwning.', description='(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFI pwning.',