-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdater.cpp
More file actions
68 lines (57 loc) · 2.97 KB
/
Copy pathupdater.cpp
File metadata and controls
68 lines (57 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// Copyright (C) 2023 Jeremy Nieth
#include "updater.h"
#include "ui_updater.h"
#include <QStringList>
Updater::Updater(QWidget *parent) :
QFrame(parent),
ui(new Ui::Updater)
{
ui->setupUi(this);
setStyle(QStyleFactory::create("Fusion"));
setAttribute(Qt::WA_AcceptTouchEvents);
setAttribute(Qt::WA_DeleteOnClose);
ui->textEdit->insertPlainText("### Starting updater...\n");
process = new QProcess(this);
process->setWorkingDirectory("/opt/shinygui/updater/compiled");
connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(processOutput()));
connect(process, SIGNAL(readyReadStandardError()), this, SLOT(processOutput()));
connect(process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished()));
//commands.append(QPair<QString, QString>("### Creating temporary update folder...\n", "mkdir /opt/shinygui/temp"));
//commands.append(QPair<QString, QString>("### Downloading update files...\n", "wget https://github.com/razorlikes/shinygui/archive/refs/heads/main.zip -O /opt/shinygui/temp/update_temp.zip --limit-rate=1M -nv"));
//commands.append(QPair<QString, QString>("### Extracting update files...\n", "unzip -q /opt/shinygui/temp/update_temp.zip -d /opt/shinygui/temp/"));
//commands.append(QPair<QString, QString>("", "mv /opt/shinygui/temp/shinygui/* /opt/shinygui/temp/"));
//commands.append(QPair<QString, QString>("", "rmdir /opt/shinygui/temp/shinygui"));
commands.append(QPair<QString, QString>("### Running qmake...\n", "qmake /opt/shinygui/updater/"));
commands.append(QPair<QString, QString>("### Compiling new files...\n", "make -j 2"));
//commands.append(QPair<QString, QString>("### Cleaning up...\n", "make -C /opt/shinygui/ clean"));
//commands.append(QPair<QString, QString>("", "rm /opt/shinygui/Makefile"));
//commands.append(QPair<QString, QString>("", "rm -rf /opt/shinygui/temp"));
commands.append(QPair<QString, QString>("### Replacing files...\n", "cp -f ./shinygui /opt/shinygui/"));
commands.append(QPair<QString, QString>("### Restarting GUI...", "sudo /etc/init.d/gui restart"));
}
Updater::~Updater()
{
delete ui;
}
void Updater::processOutput()
{
ui->textEdit->insertPlainText(process->readAll());
ui->textEdit->ensureCursorVisible();
}
void Updater::processFinished()
{
ui->textEdit->insertPlainText(commands[index].first);
ui->textEdit->ensureCursorVisible();
if (index + 1 < commands.size())
process->start(commands[index++].second);
else if (index + 1 == commands.size())
process->startDetached(commands[index].second);
}
void Updater::on_pushButton_pressed()
{
this->close();
}
void Updater::on_pushButton_2_pressed()
{
processFinished();
}