Skip to content

Commit

Permalink
Merge pull request #90 from drauger-os-development/dev
Browse files Browse the repository at this point in the history
Fix installation reporting infastructure
  • Loading branch information
Batcastle authored Jan 15, 2023
2 parents b71e378 + 346c370 commit a38440a
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 30 deletions.
4 changes: 2 additions & 2 deletions DEBIAN/control
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
Package: system-installer
Version: 2.4.6
Version: 2.4.8
Maintainer: Thomas Castleman <[email protected]>
Homepage: https://github.com/drauger-os-development/system-installer
Section: admin
Architecture: amd64
Priority: important
Depends: arch-install-scripts, python3 (>=3.6.7-1~18.04), bash, gir1.2-gtk-3.0 (>=3.24.12-1ubuntu1), coreutils (>=8.28-1ubuntu1), apt (>=1.6.11), squashfs-tools (>=1:4.3-6ubuntu0.18.04.1), zenity (>=3.28.1-1), grub2-common (>=2.02-2ubuntu8.13), initramfs-tools (>=0.130ubuntu3.8), systemd (>=237-3ubuntu10.24), locales (>=2.27-3ubuntu1), procps (>=2:3.3.12-3ubuntu1.1), grep (>=3.1-2), keyboard-configuration, util-linux (>=2.34-0.1ubuntu2), python3-parted (>=3.11.2), python3-psutil (>=5.5.0), python3-apt (>=2.0.0), python3-pycurl, python3-gnupg (>=0.4.5), python3-xmltodict (>=0.11.0)
Depends: arch-install-scripts, python3 (>=3.6.7-1~18.04), bash, gir1.2-gtk-3.0 (>=3.24.12-1ubuntu1), coreutils (>=8.28-1ubuntu1), apt (>=1.6.11), squashfs-tools (>=1:4.3-6ubuntu0.18.04.1), zenity (>=3.28.1-1), grub2-common (>=2.02-2ubuntu8.13), initramfs-tools (>=0.130ubuntu3.8), systemd (>=237-3ubuntu10.24), locales (>=2.27-3ubuntu1), procps (>=2:3.3.12-3ubuntu1.1), grep (>=3.1-2), keyboard-configuration, util-linux (>=2.34-0.1ubuntu2), python3-parted (>=3.11.2), python3-psutil (>=5.5.0), python3-apt (>=2.0.0), python3-urllib3 (>=1.26.5-1~exp1), python3-gnupg (>=0.4.5), python3-xmltodict (>=0.11.0)
Description: System Installer for Drauger OS
System Installer for Drauger OS
26 changes: 26 additions & 0 deletions DEBIAN/postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/bash
# -*- coding: utf-8 -*-
#
# postinst.sh
#
# Copyright 2023 Thomas Castleman <[email protected]>
#
# This program 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.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
#
if $(groups live | grep -vq "syslog"); then
usermod -aG syslog live
fi
28 changes: 28 additions & 0 deletions DEBIAN/postrm
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash
# -*- coding: utf-8 -*-
#
# postrm.sh
#
# Copyright 2023 Thomas Castleman <[email protected]>
#
# This program 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.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
#
if [ "$1" = "purge" ]; then
user=$(grep "1000" /etc/passwd | sed 's/:/ /g' | awk '{print $1}')
groups=$(groups $user | sed "s/$user : //" | sed 's/syslog//' | sed 's/ /,/g' | sed 's/,,/,/g')
usermod -G "$groups" "$user"
fi
2 changes: 1 addition & 1 deletion etc/system-installer/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"local_repo": "/run/live/medium/repo",
"distro": "Drauger OS",
"report": {
"recv_keys": "https://download-optimizer.draugeros.org/keys/public_keys.asc",
"recv_keys": "https://download.draugeros.org/keys/public_keys.asc",
"upload": "rsync://rsync.draugeros.org/reports-upload"
},
"ping servers": [
Expand Down
2 changes: 1 addition & 1 deletion usr/bin/system-installer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

using namespace std;

str VERSION = "2.4.6";
str VERSION = "2.4.8";
str R = "\033[0;31m";
str G = "\033[0;32m";
str Y = "\033[1;33m";
Expand Down
2 changes: 1 addition & 1 deletion usr/share/system-installer/UI/confirm.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ def __init__(self, settings):
self.grid.attach(label31, 4, 6, 1, 1)

label32 = Gtk.Label()
label32.set_markup(settings["COMPAT_MODE"])
label32.set_markup(str(settings["COMPAT_MODE"]))
label32.set_justify(Gtk.Justification.CENTER)
label32 = self._set_default_margins(label32)
self.grid.attach(label32, 5, 6, 1, 1)
Expand Down
21 changes: 5 additions & 16 deletions usr/share/system-installer/UI/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -1693,22 +1693,11 @@ def options(self, button):

def options_next(self, button):
"""Set update and extras settings"""
if self.extras.get_active():
self.data["EXTRAS"] = 1
else:
self.data["EXTRAS"] = 0
# if self.updates.get_active():
# self.data["UPDATES"] = 1
# else:
self.data["UPDATES"] = 0
if self.login.get_active():
self.data["LOGIN"] = 1
else:
self.data["LOGIN"] = 0
if self.compat_mode.get_active():
self.data["COMPAT_MODE"] = 1
else:
self.data["COMPAT_MODE"] = 0
self.data["EXTRAS"] = self.extras.get_active()
# self.data["UPDATES"] = self.updates.get_active()
self.data["UPDATES"] = False
self.data["LOGIN"] = self.login.get_active()
self.data["COMPAT_MODE"] = self.compat_mode.get_active()
global OPTIONS_COMPLETION
OPTIONS_COMPLETION = "COMPLETED"
self.main_menu("clicked")
Expand Down
18 changes: 9 additions & 9 deletions usr/share/system-installer/UI/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import json
import gnupg
import gi
import curl
import urllib3

# Configuration required to use some of these libs
gi.require_version('Gtk', '3.0')
Expand Down Expand Up @@ -313,18 +313,18 @@ def send_report(self, widget):
self.show_all()

try:
copyfile(self.path, "/mnt/var/mail/installation_report.txt")
copyfile(self.path, "/mnt/var/log/installation_report.txt")
except:
pass

try:
# Get keys
cURL = curl.Curl()
with open("../../../etc/system-installer/settings.json",
http = urllib3.PoolManager()
with open("/etc/system-installer/settings.json",
"r") as config:
URL = json.load(config)["report"]
cURL.set_url(URL["recv_keys"])
key = cURL.get().decode()
data = http.request("GET", URL["recv_keys"]).data
key = data.decode()
# Import keys
result = gpg.import_keys(key)
# Encrypt file using newly imported keys
Expand Down Expand Up @@ -419,7 +419,7 @@ def generate_message(self):
"""write installation report to disk"""
report_code = time.time()
output = {}
self.path = "/var/mail/installation_report-%s.dosir" % (report_code)
self.path = "/var/log/installation_report-%s.dosir" % (report_code)
output['Installation Report Code'] = report_code
try:
output['system-installer Version'] = check_output(["system-installer", "-v"]).decode()
Expand All @@ -445,7 +445,7 @@ def generate_message(self):
if self.log.get_active():
try:
with open("/tmp/system-installer.log", "r") as log:
output['INSTALLATION LOG'] = log.read()
output['INSTALLATION LOG'] = log.read().split("\n")
except FileNotFoundError:
output['INSTALLATION LOG'] = 'Log does not exist.'
else:
Expand All @@ -467,7 +467,7 @@ def generate_message(self):
with open(self.path, "w+") as message:
json.dump(output, message, indent=1)
except PermissionError:
with open(home + "/installation_report.txt", "w+") as message:
with open(getenv("HOME") + "/installation_report.txt", "w+") as message:
json.dump(output, message, indent=1)

def message_accept(self, widget):
Expand Down

0 comments on commit a38440a

Please sign in to comment.