[libcalamares] Read structured upload-server info
- Use just type and url, since port can be specified in a URL. Note that we only use host and port, not the scheme (or the path, for that matter). - Factor out understanding the *uploadServer* key to a function.
This commit is contained in:
parent
bce6f3f1b7
commit
efec12d001
@ -220,15 +220,13 @@ slideshowAPI: 2
|
|||||||
|
|
||||||
|
|
||||||
# These options are to customize online uploading of logs to pastebins:
|
# These options are to customize online uploading of logs to pastebins:
|
||||||
# - type : Defines the kind of pastebin service to be used.Currently
|
# - type : Defines the kind of pastebin service to be used. Currently
|
||||||
# it accepts two values:
|
# it accepts two values:
|
||||||
# - none : disables the pastebin functionality
|
# - none : disables the pastebin functionality
|
||||||
# - fiche : use fiche pastebin server
|
# - fiche : use fiche pastebin server
|
||||||
# - url : Defines the address of pastebin service to be used.
|
# - url : Defines the address of pastebin service to be used.
|
||||||
# Takes string as input
|
# Takes string as input. Important bits are the host and port,
|
||||||
# - port : Defines the port number to be used to send logs. Takes
|
# the scheme is not used.
|
||||||
# integer as input
|
|
||||||
uploadServer :
|
uploadServer :
|
||||||
type : "fiche"
|
type : "fiche"
|
||||||
url : "termbin.com"
|
url : "http://termbin.com:9999"
|
||||||
port : 9999
|
|
||||||
|
@ -138,6 +138,32 @@ loadStrings( QMap< QString, QString >& map,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Branding::UploadServerInfo
|
||||||
|
uploadServerFromMap( const QVariantMap& map )
|
||||||
|
{
|
||||||
|
using Type = Branding::UploadServerType;
|
||||||
|
// *INDENT-OFF*
|
||||||
|
// clang-format off
|
||||||
|
static const NamedEnumTable< Type > names {
|
||||||
|
{ "none", Type::None },
|
||||||
|
{ "fiche", Type::Fiche }
|
||||||
|
};
|
||||||
|
// clang-format on
|
||||||
|
// *INDENT-ON*
|
||||||
|
|
||||||
|
QString typestring = map[ "type" ].toString();
|
||||||
|
QString urlstring = map[ "url" ].toString();
|
||||||
|
|
||||||
|
if ( typestring.isEmpty() || urlstring.isEmpty() )
|
||||||
|
{
|
||||||
|
return Branding::UploadServerInfo( Branding::UploadServerType::None, QUrl() );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool bogus = false; // we don't care about type-name lookup success here
|
||||||
|
return Branding::UploadServerInfo( names.find( typestring, bogus ),
|
||||||
|
QUrl( urlstring, QUrl::ParsingMode::StrictMode ) );
|
||||||
|
}
|
||||||
|
|
||||||
/** @brief Load the @p map with strings from @p config
|
/** @brief Load the @p map with strings from @p config
|
||||||
*
|
*
|
||||||
* If os-release is supported (with KF5 CoreAddons >= 5.58) then
|
* If os-release is supported (with KF5 CoreAddons >= 5.58) then
|
||||||
@ -227,11 +253,7 @@ Branding::Branding( const QString& brandingFilePath, QObject* parent )
|
|||||||
} );
|
} );
|
||||||
loadStrings( m_style, doc, "style", []( const QString& s ) -> QString { return s; } );
|
loadStrings( m_style, doc, "style", []( const QString& s ) -> QString { return s; } );
|
||||||
|
|
||||||
const QVariantMap temp = CalamaresUtils::yamlMapToVariant( doc[ "uploadServer" ] );
|
m_uploadServer = uploadServerFromMap( CalamaresUtils::yamlMapToVariant( doc[ "uploadServer" ] ) );
|
||||||
for ( auto it = temp.constBegin(); it != temp.constEnd(); ++it )
|
|
||||||
{
|
|
||||||
m_uploadServer.insert( it.key(), it.value().toString() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch ( YAML::Exception& e )
|
catch ( YAML::Exception& e )
|
||||||
{
|
{
|
||||||
@ -292,12 +314,6 @@ Branding::imagePath( Branding::ImageEntry imageEntry ) const
|
|||||||
return m_images.value( s_imageEntryStrings.value( imageEntry ) );
|
return m_images.value( s_imageEntryStrings.value( imageEntry ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
QString
|
|
||||||
Branding::uploadServer( Branding::UploadServerEntry uploadServerEntry ) const
|
|
||||||
{
|
|
||||||
return m_uploadServer.value( s_uploadServerStrings.value( uploadServerEntry ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
QPixmap
|
QPixmap
|
||||||
Branding::image( Branding::ImageEntry imageEntry, const QSize& size ) const
|
Branding::image( Branding::ImageEntry imageEntry, const QSize& size ) const
|
||||||
{
|
{
|
||||||
|
@ -226,7 +226,8 @@ public:
|
|||||||
* This is both the type (which may be none, in which case the URL
|
* This is both the type (which may be none, in which case the URL
|
||||||
* is irrelevant and usually empty) and the URL for the upload.
|
* is irrelevant and usually empty) and the URL for the upload.
|
||||||
*/
|
*/
|
||||||
QPair< UploadServerType, QUrl > uploadServer() const { return m_uploadServer; }
|
using UploadServerInfo = QPair< UploadServerType, QUrl >;
|
||||||
|
UploadServerInfo uploadServer() const { return m_uploadServer; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a map called "branding" in the global storage, and inserts an
|
* Creates a map called "branding" in the global storage, and inserts an
|
||||||
@ -261,7 +262,7 @@ private:
|
|||||||
QMap< QString, QString > m_strings;
|
QMap< QString, QString > m_strings;
|
||||||
QMap< QString, QString > m_images;
|
QMap< QString, QString > m_images;
|
||||||
QMap< QString, QString > m_style;
|
QMap< QString, QString > m_style;
|
||||||
QPair< UploadServerType, QUrl > m_uploadServer;
|
UploadServerInfo m_uploadServer;
|
||||||
|
|
||||||
/* The slideshow can be done in one of two ways:
|
/* The slideshow can be done in one of two ways:
|
||||||
* - as a sequence of images
|
* - as a sequence of images
|
||||||
|
Loading…
Reference in New Issue
Block a user