#include "process/check_update_activation_command.h"
#include "worker.h"
#include "utils_internal.h"

#include <QDebug>

CheckUpdateActivationCommand::CheckUpdateActivationCommand(QString const &command,
                                                           Worker *worker,
                                                           int nextCommandIndex,
                                                           int start_timeout,
                                                           int finish_timeout)
  : UpdateCommand(command, worker, nextCommandIndex, start_timeout, finish_timeout) {
}

void CheckUpdateActivationCommand::finished(int exitCode, QProcess::ExitStatus exitStatus) {
    qCritical() << __func__ << ":" << __LINE__ << command() << exitCode << exitStatus;
    return UpdateCommand::finished(exitCode, exitStatus);
}

void CheckUpdateActivationCommand::readyReadStandardOutput() {
    QProcess *p = (QProcess *)sender();
    if (p) {
        Worker *w = worker();
        if (w) {
            QString s = p->readAllStandardOutput().trimmed();
            if (s == internal::UPDATE_REQUESTED) {
                emit w->showUpdateRequest(internal::UPDATE_REQUESTED);
            } else
            if (s == internal::UPDATE_NOT_NECESSARY) {
                emit w->showUpdateRequest(internal::UPDATE_NOT_NECESSARY);
            } else
            if (s == internal::UPDATE_NOT_REQUESTED) {
                emit w->showUpdateRequest(internal::UPDATE_NOT_REQUESTED);
            } else
            if (s == internal::NO_CUSTOMER_REPOSITORY) {
                emit w->showUpdateRequest(internal::NO_CUSTOMER_REPOSITORY);
            }
        }
    }
}