mirror of
https://github.com/Snigdha-OS/snigdhaos-blackbox.git
synced 2025-09-21 12:05:02 +02:00
🛠️ build(ongoing): under const*
This commit is contained in:
4
main.cpp
4
main.cpp
@@ -1,14 +1,12 @@
|
||||
#include "snigdhaosblackbox.h"
|
||||
// #include "./ui_snigdhaosblackbox.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
// const char* INTERNET_CHECK_URL = "https://snigdhaos.org/";
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
SnigdhaOSBlackBox w;
|
||||
SnigdhaOSBlackBox w(nullptr, a.arguments().length() > 1 ? a.arguments()[1] : "");
|
||||
w.show();
|
||||
return a.exec();
|
||||
}
|
||||
|
@@ -20,7 +20,7 @@ SnigdhaOSBlackBox::~SnigdhaOSBlackBox()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void SnigdhaOSBlackbox::doInternetUpRequest(){
|
||||
void SnigdhaOSBlackBox::doInternetUpRequest(){
|
||||
QNetworkAccessManager* = network_manager = new QNetworkAccessManager();
|
||||
auto network_reply = network_manager->head(QNetworkRequest(QString(INTERNET_CHECK_URL)));
|
||||
|
||||
@@ -43,3 +43,65 @@ void SnigdhaOSBlackbox::doInternetUpRequest(){
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void SnigdhaOSBlackBox::doUpdate(){
|
||||
if (qEnvironmentVaribaleSet("SNIGDHAOS_BLACKBOX_SELFUPDATE")) {
|
||||
updateState(State::SELECT);
|
||||
return;
|
||||
}
|
||||
auto process = new QProcess(this);
|
||||
QTemporaryFile* file = new QTemporaryFile(this);
|
||||
file->open();
|
||||
file->setAutoRemove(true);
|
||||
process->start("/usr/lib/snigdhaos/launch-terminal", QStringList() << QString("sudo pacman -Syyu 2>&1 && rm \"" + file->fileName() + "\"; read -p 'Press Ebter to Exit'"));
|
||||
connect(process,QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this, [this, process, file](int exitcode, QProcess::ExitStatus status){
|
||||
process->deleteLater();
|
||||
file->deleteLater();
|
||||
|
||||
if (exitcode == 0 && !file->exists()){
|
||||
relaunchSelf("POST_UPDATE");
|
||||
}
|
||||
else{
|
||||
relaunchSelf("UPDATE_RETRY");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void SnigdhaOSBlackBox::doApply(){
|
||||
QStringList packages;
|
||||
QStringList setup_commands;
|
||||
QStringList prepare_commands;
|
||||
|
||||
auto checkboxList = ui->selectWidget_tabs->findChildren<QcheckBox*>();
|
||||
|
||||
for (auto checkbox : checkboxList){
|
||||
if (checkbox->isChecked()){
|
||||
packages += checkbox->property("packages").toStringList();
|
||||
setup_commands += checkbox->property("setup_commands").toStringList();
|
||||
prepare_commands += checkbox->property("prepare_commands").toStringList();
|
||||
}
|
||||
}
|
||||
|
||||
if (packages.empty()){
|
||||
updateState(State::SUCCESS);
|
||||
return;
|
||||
}
|
||||
|
||||
if (packages.contains("docker")){
|
||||
setup_commands += "systemctl enable --now docker.socket";
|
||||
}
|
||||
if (packages.contains("virt-manager-meta") && packages.contains("gnome-boxes")){
|
||||
setup_commands += "systemctl enable --now libvirtd";
|
||||
}
|
||||
|
||||
packages.removeDuplicates();
|
||||
|
||||
QTemporaryFile* prepareFile = new QTemporaryFile(this);
|
||||
prepareFile->setAutoRemove(true);
|
||||
prepareFile->open();
|
||||
QTextStream prepareStream(prepareFile);
|
||||
prepareStream << prepare_commands.join('\n');
|
||||
prepareFile->close();
|
||||
QTemporaryFile* packagesFiles = new QTemporaryFile(this);
|
||||
|
||||
}
|
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QAbstractButton>
|
||||
#include <QNetwork>
|
||||
#include <QNetwork/QNetworkAccessManager>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui {
|
||||
@@ -16,10 +16,26 @@ class SnigdhaOSBlackBox : public QMainWindow
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SnigdhaOSBlackBox(QWidget *parent = nullptr);
|
||||
enum class State {
|
||||
QUIT,
|
||||
WELCOME,
|
||||
INTERNET,
|
||||
UPDATE,
|
||||
UPDATE_RETRY,
|
||||
SELECT,
|
||||
APPLY,
|
||||
APPLY_RETRY,
|
||||
SUCCESS
|
||||
};
|
||||
|
||||
SnigdhaOSBlackBox(QWidget *parent = nullptr, QString state = "WELCOME");
|
||||
~SnigdhaOSBlackBox();
|
||||
|
||||
private:
|
||||
Ui::SnigdhaOSBlackBox *ui;
|
||||
QDateTime executable_modify_date;
|
||||
State currentState;
|
||||
|
||||
void doInternetUpRequest();
|
||||
};
|
||||
#endif // SNIGDHAOSBLACKBOX_H
|
||||
|
Reference in New Issue
Block a user