New dummycpp C++ job module (ported from dummypython).
This commit is contained in:
parent
00d9f211f5
commit
0ae41dd286
@ -67,6 +67,7 @@ sequence:
|
|||||||
- users
|
- users
|
||||||
- summary
|
- summary
|
||||||
- exec:
|
- exec:
|
||||||
|
# - dummycpp
|
||||||
# - dummyprocess
|
# - dummyprocess
|
||||||
# - dummypython
|
# - dummypython
|
||||||
- partition
|
- partition
|
||||||
|
9
src/modules/dummycpp/CMakeLists.txt
Normal file
9
src/modules/dummycpp/CMakeLists.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
calamares_add_plugin( dummycpp
|
||||||
|
TYPE job
|
||||||
|
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
||||||
|
SOURCES
|
||||||
|
DummyCppJob.cpp
|
||||||
|
LINK_LIBRARIES
|
||||||
|
calamares
|
||||||
|
SHARED_LIB
|
||||||
|
)
|
144
src/modules/dummycpp/DummyCppJob.cpp
Normal file
144
src/modules/dummycpp/DummyCppJob.cpp
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||||
|
*
|
||||||
|
* Copyright 2014, Teo Mrnjavac <teo@kde.org> (original dummypython code)
|
||||||
|
* Copyright 2016, Kevin Kofler <kevin.kofler@chello.at>
|
||||||
|
*
|
||||||
|
* Calamares 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 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "DummyCppJob.h"
|
||||||
|
|
||||||
|
#include <QProcess>
|
||||||
|
#include <QDateTime>
|
||||||
|
#include <QThread>
|
||||||
|
|
||||||
|
#include "CalamaresVersion.h"
|
||||||
|
#include "JobQueue.h"
|
||||||
|
#include "GlobalStorage.h"
|
||||||
|
|
||||||
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
|
DummyCppJob::DummyCppJob( QObject* parent )
|
||||||
|
: Calamares::CppJob( parent )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DummyCppJob::~DummyCppJob()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString
|
||||||
|
DummyCppJob::prettyName() const
|
||||||
|
{
|
||||||
|
return tr( "Dummy C++ Job" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static QString variantListToString( const QVariantList& variantList );
|
||||||
|
static QString variantMapToString( const QVariantMap& variantMap );
|
||||||
|
static QString variantHashToString( const QVariantHash& variantHash );
|
||||||
|
|
||||||
|
|
||||||
|
static QString
|
||||||
|
variantToString( const QVariant& variant )
|
||||||
|
{
|
||||||
|
switch ( variant.type() )
|
||||||
|
{
|
||||||
|
case QVariant::Map:
|
||||||
|
return variantMapToString( variant.toMap() );
|
||||||
|
|
||||||
|
case QVariant::Hash:
|
||||||
|
return variantHashToString( variant.toHash() );
|
||||||
|
|
||||||
|
case QVariant::List:
|
||||||
|
case QVariant::StringList:
|
||||||
|
return variantListToString( variant.toList() );
|
||||||
|
|
||||||
|
default:
|
||||||
|
return variant.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static QString
|
||||||
|
variantListToString( const QVariantList& variantList )
|
||||||
|
{
|
||||||
|
QStringList result;
|
||||||
|
for ( const QVariant& variant : variantList )
|
||||||
|
result.append( variantToString( variant ) );
|
||||||
|
return '{' + result.join(',') + '}';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static QString
|
||||||
|
variantMapToString( const QVariantMap& variantMap )
|
||||||
|
{
|
||||||
|
QStringList result;
|
||||||
|
for ( auto it = variantMap.constBegin(); it != variantMap.constEnd(); ++it )
|
||||||
|
result.append( it.key() + '=' + variantToString( it.value() ) );
|
||||||
|
return '[' + result.join(',') + ']';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static QString
|
||||||
|
variantHashToString( const QVariantHash& variantHash )
|
||||||
|
{
|
||||||
|
QStringList result;
|
||||||
|
for ( auto it = variantHash.constBegin(); it != variantHash.constEnd(); ++it )
|
||||||
|
result.append( it.key() + '=' + variantToString( it.value() ) );
|
||||||
|
return '<' + result.join(',') + '>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Calamares::JobResult
|
||||||
|
DummyCppJob::exec()
|
||||||
|
{
|
||||||
|
// Ported from dummypython
|
||||||
|
QProcess::execute( "/bin/sh", QStringList() << "-c" << "touch ~/calamares-dummycpp" );
|
||||||
|
QString accumulator = QDateTime::currentDateTimeUtc().toString( Qt::ISODate ) + '\n';
|
||||||
|
accumulator += QStringLiteral( "Calamares version: " ) + CALAMARES_VERSION_SHORT + '\n';
|
||||||
|
accumulator += QStringLiteral( "This job's name: " ) + prettyName() + '\n';
|
||||||
|
accumulator += QStringLiteral( "Configuration map: %1\n" ).arg( variantMapToString( m_configurationMap ) );
|
||||||
|
accumulator += QStringLiteral( " *** globalstorage test ***\n" );
|
||||||
|
Calamares::GlobalStorage *globalStorage = Calamares::JobQueue::instance()->globalStorage();
|
||||||
|
accumulator += QStringLiteral( "lala: " ) + (globalStorage->contains( "lala" ) ? QStringLiteral( "true" ) : QStringLiteral( "false" )) + '\n';
|
||||||
|
accumulator += QStringLiteral( "foo: " ) + (globalStorage->contains( "foo" ) ? QStringLiteral( "true" ) : QStringLiteral( "false" )) + '\n';
|
||||||
|
accumulator += QStringLiteral( "count: " ) + QString::number( globalStorage->count() ) + '\n';
|
||||||
|
globalStorage->insert( "item2", "value2" );
|
||||||
|
globalStorage->insert( "item3", 3 );
|
||||||
|
accumulator += QStringLiteral( "keys: %1\n" ).arg( globalStorage->keys().join( ',' ) );
|
||||||
|
accumulator += QStringLiteral( "remove: %1\n" ).arg( QString::number( globalStorage->remove( "item2" ) ) );
|
||||||
|
accumulator += QStringLiteral( "values: %1 %2 %3\n" ).arg(
|
||||||
|
globalStorage->value( "foo" ).toString(),
|
||||||
|
globalStorage->value( "item2" ).toString(),
|
||||||
|
globalStorage->value( "item3" ).toString() );
|
||||||
|
|
||||||
|
emit progress( 0.1 );
|
||||||
|
cDebug() << "[DUMMYCPP]: " << accumulator;
|
||||||
|
|
||||||
|
QThread::sleep( 3 );
|
||||||
|
|
||||||
|
return Calamares::JobResult::ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
DummyCppJob::setConfigurationMap( const QVariantMap& configurationMap )
|
||||||
|
{
|
||||||
|
m_configurationMap = configurationMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
CALAMARES_PLUGIN_FACTORY_DEFINITION( DummyCppJobFactory, registerPlugin<DummyCppJob>(); )
|
51
src/modules/dummycpp/DummyCppJob.h
Normal file
51
src/modules/dummycpp/DummyCppJob.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||||
|
*
|
||||||
|
* Copyright 2016, Kevin Kofler <kevin.kofler@chello.at>
|
||||||
|
*
|
||||||
|
* Calamares 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 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DUMMYCPPJOB_H
|
||||||
|
#define DUMMYCPPJOB_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QVariantMap>
|
||||||
|
|
||||||
|
#include <CppJob.h>
|
||||||
|
|
||||||
|
#include <utils/PluginFactory.h>
|
||||||
|
|
||||||
|
#include <PluginDllMacro.h>
|
||||||
|
|
||||||
|
class PLUGINDLLEXPORT DummyCppJob : public Calamares::CppJob
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit DummyCppJob( QObject* parent = nullptr );
|
||||||
|
virtual ~DummyCppJob();
|
||||||
|
|
||||||
|
QString prettyName() const override;
|
||||||
|
|
||||||
|
Calamares::JobResult exec() override;
|
||||||
|
|
||||||
|
void setConfigurationMap( const QVariantMap& configurationMap ) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QVariantMap m_configurationMap;
|
||||||
|
};
|
||||||
|
|
||||||
|
CALAMARES_PLUGIN_FACTORY_DECLARATION( DummyCppJobFactory )
|
||||||
|
|
||||||
|
#endif // DUMMYCPPJOB_H
|
18
src/modules/dummycpp/dummycpp.conf
Normal file
18
src/modules/dummycpp/dummycpp.conf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
syntax: "YAML map of anything"
|
||||||
|
example:
|
||||||
|
whats_this: "module-specific configuration"
|
||||||
|
from_where: "dummycpp.conf"
|
||||||
|
a_list:
|
||||||
|
- "item1"
|
||||||
|
- "item2"
|
||||||
|
- "item3"
|
||||||
|
- "item4"
|
||||||
|
a_list_of_maps:
|
||||||
|
- name: "an Item"
|
||||||
|
contents:
|
||||||
|
- "an element"
|
||||||
|
- "another element"
|
||||||
|
- name: "another item"
|
||||||
|
contents:
|
||||||
|
- "not much"
|
7
src/modules/dummycpp/module.desc
Normal file
7
src/modules/dummycpp/module.desc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Module metadata file for dummycpp job
|
||||||
|
# Syntax is YAML 1.2
|
||||||
|
---
|
||||||
|
type: "job"
|
||||||
|
name: "dummycpp"
|
||||||
|
interface: "qtplugin"
|
||||||
|
load: "libcalamares_job_dummycpp.so"
|
Loading…
Reference in New Issue
Block a user