🛠️ build(ongoing): under const*

This commit is contained in:
Eshan Roy
2024-11-19 03:51:53 +05:30
parent 6629238f76
commit 59c6e10192
3 changed files with 82 additions and 6 deletions

View File

@@ -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();
}

View File

@@ -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)));
@@ -42,4 +42,66 @@ void SnigdhaOSBlackbox::doInternetUpRequest(){
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);
}

View File

@@ -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