Merge pull request #152 from calamares/python-branding
Give Python modules access to the branding information.
This commit is contained in:
commit
df47842fc7
@ -10,6 +10,17 @@ A dictionary with the following keys:
|
|||||||
|
|
||||||
- `installPath`: device where the boot loader should be installed ("/dev/sda", "/dev/sdb1"...)
|
- `installPath`: device where the boot loader should be installed ("/dev/sda", "/dev/sdb1"...)
|
||||||
|
|
||||||
|
## branding
|
||||||
|
|
||||||
|
A dictionary with the following keys (loaded from branding.desc):
|
||||||
|
|
||||||
|
- `productName`: distribution unversioned product name (long version)
|
||||||
|
- `shortProductName`: distribution unversioned product name (short version)
|
||||||
|
- `version`: distribution version number (long version)
|
||||||
|
- `shortVersion`: distribution version number (short version)
|
||||||
|
- `versionedName`: distribution product name and version (long version)
|
||||||
|
- `shortVersionedName`: distribution product name and version (short version)
|
||||||
|
|
||||||
## partitions
|
## partitions
|
||||||
|
|
||||||
A list of dictionaries, one per partition. The dictionary contains the following keys:
|
A list of dictionaries, one per partition. The dictionary contains the following keys:
|
||||||
|
@ -3,6 +3,7 @@ componentName: default
|
|||||||
|
|
||||||
strings:
|
strings:
|
||||||
productName: Generic GNU/Linux
|
productName: Generic GNU/Linux
|
||||||
|
shortProductName: Generic
|
||||||
version: 1.0 LTS
|
version: 1.0 LTS
|
||||||
shortVersion: 1.0
|
shortVersion: 1.0
|
||||||
versionedName: Generic GNU/Linux 1.0 LTS "Rusty Trombone"
|
versionedName: Generic GNU/Linux 1.0 LTS "Rusty Trombone"
|
||||||
|
@ -316,5 +316,6 @@ CalamaresApplication::onPluginsReady()
|
|||||||
void
|
void
|
||||||
CalamaresApplication::initJobQueue()
|
CalamaresApplication::initJobQueue()
|
||||||
{
|
{
|
||||||
new Calamares::JobQueue( this );
|
Calamares::JobQueue *jobQueue = new Calamares::JobQueue( this );
|
||||||
|
Calamares::Branding::instance()->setGlobals( jobQueue->globalStorage() );
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
#include "Branding.h"
|
#include "Branding.h"
|
||||||
|
|
||||||
|
#include "GlobalStorage.h"
|
||||||
#include "utils/CalamaresUtils.h"
|
#include "utils/CalamaresUtils.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
#include "utils/YamlUtils.h"
|
#include "utils/YamlUtils.h"
|
||||||
@ -26,6 +27,7 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
|
#include <QVariantMap>
|
||||||
|
|
||||||
#include <yaml-cpp/yaml.h>
|
#include <yaml-cpp/yaml.h>
|
||||||
|
|
||||||
@ -48,7 +50,8 @@ QStringList Branding::s_stringEntryStrings =
|
|||||||
"version",
|
"version",
|
||||||
"shortVersion",
|
"shortVersion",
|
||||||
"versionedName",
|
"versionedName",
|
||||||
"shortVersionedName"
|
"shortVersionedName",
|
||||||
|
"shortProductName"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -200,6 +203,16 @@ Branding::slideshowPaths() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Branding::setGlobals( GlobalStorage* globalStorage ) const
|
||||||
|
{
|
||||||
|
QVariantMap brandingMap;
|
||||||
|
foreach ( const QString& key, s_stringEntryStrings )
|
||||||
|
brandingMap.insert( key, m_strings.value( key ) );
|
||||||
|
globalStorage->insert( "branding", brandingMap );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Branding::bail( const QString& message )
|
Branding::bail( const QString& message )
|
||||||
{
|
{
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
namespace Calamares
|
namespace Calamares
|
||||||
{
|
{
|
||||||
|
|
||||||
|
class GlobalStorage;
|
||||||
|
|
||||||
class UIDLLEXPORT Branding : public QObject
|
class UIDLLEXPORT Branding : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -40,7 +42,8 @@ public:
|
|||||||
Version,
|
Version,
|
||||||
ShortVersion,
|
ShortVersion,
|
||||||
VersionedName,
|
VersionedName,
|
||||||
ShortVersionedName
|
ShortVersionedName,
|
||||||
|
ShortProductName
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImageEntry : short
|
enum ImageEntry : short
|
||||||
@ -63,6 +66,13 @@ public:
|
|||||||
QPixmap image( Branding::ImageEntry imageEntry, const QSize& size ) const;
|
QPixmap image( Branding::ImageEntry imageEntry, const QSize& size ) const;
|
||||||
QStringList slideshowPaths() const;
|
QStringList slideshowPaths() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a map called "branding" in the global storage, and inserts an
|
||||||
|
* entry for each of the branding strings. This makes the branding
|
||||||
|
* information accessible to the Python modules.
|
||||||
|
*/
|
||||||
|
void setGlobals( GlobalStorage* globalStorage ) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static Branding* s_instance;
|
static Branding* s_instance;
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
# Gummiboot configuration files settings, set preferred distribution name and amount of time before
|
# Gummiboot configuration files settings, set kernel and initramfs file names
|
||||||
# default selection boots
|
# and amount of time before default selection boots
|
||||||
distribution: KaOS-kf5
|
|
||||||
kernel: /vmlinuz-linux
|
kernel: /vmlinuz-linux
|
||||||
img: /initramfs-linux.img
|
img: /initramfs-linux.img
|
||||||
fallback: /initramfs-linux-fallback.img
|
fallback: /initramfs-linux-fallback.img
|
||||||
|
@ -53,7 +53,8 @@ def get_uuid():
|
|||||||
|
|
||||||
|
|
||||||
def create_conf(uuid, conf_path):
|
def create_conf(uuid, conf_path):
|
||||||
distribution = libcalamares.job.configuration["distribution"]
|
branding = libcalamares.globalstorage.value("branding")
|
||||||
|
distribution = branding["shortProductName"]
|
||||||
kernel = libcalamares.job.configuration["kernel"]
|
kernel = libcalamares.job.configuration["kernel"]
|
||||||
img = libcalamares.job.configuration["img"]
|
img = libcalamares.job.configuration["img"]
|
||||||
partitions = libcalamares.globalstorage.value("partitions")
|
partitions = libcalamares.globalstorage.value("partitions")
|
||||||
@ -79,7 +80,8 @@ def create_conf(uuid, conf_path):
|
|||||||
|
|
||||||
|
|
||||||
def create_fallback(uuid, fallback_path):
|
def create_fallback(uuid, fallback_path):
|
||||||
distribution = libcalamares.job.configuration["distribution"]
|
branding = libcalamares.globalstorage.value("branding")
|
||||||
|
distribution = branding["shortProductName"]
|
||||||
kernel = libcalamares.job.configuration["kernel"]
|
kernel = libcalamares.job.configuration["kernel"]
|
||||||
fb_img = libcalamares.job.configuration["fallback"]
|
fb_img = libcalamares.job.configuration["fallback"]
|
||||||
partitions = libcalamares.globalstorage.value("partitions")
|
partitions = libcalamares.globalstorage.value("partitions")
|
||||||
@ -105,11 +107,13 @@ def create_fallback(uuid, fallback_path):
|
|||||||
|
|
||||||
|
|
||||||
def create_loader(loader_path):
|
def create_loader(loader_path):
|
||||||
distribution = libcalamares.job.configuration["distribution"]
|
branding = libcalamares.globalstorage.value("branding")
|
||||||
|
distribution = branding["shortProductName"]
|
||||||
timeout = libcalamares.job.configuration["timeout"]
|
timeout = libcalamares.job.configuration["timeout"]
|
||||||
|
file_name_sanitizer = str.maketrans(" /", "_-")
|
||||||
lines = [
|
lines = [
|
||||||
'timeout %s\n' % timeout,
|
'timeout %s\n' % timeout,
|
||||||
'default %s\n' % distribution,
|
'default %s\n' % distribution.translate(file_name_sanitizer),
|
||||||
]
|
]
|
||||||
|
|
||||||
with open(loader_path, 'w') as f:
|
with open(loader_path, 'w') as f:
|
||||||
@ -122,11 +126,13 @@ def install_bootloader(boot_loader, fw_type):
|
|||||||
if fw_type == 'efi':
|
if fw_type == 'efi':
|
||||||
install_path = libcalamares.globalstorage.value("rootMountPoint")
|
install_path = libcalamares.globalstorage.value("rootMountPoint")
|
||||||
uuid = get_uuid()
|
uuid = get_uuid()
|
||||||
distribution = libcalamares.job.configuration["distribution"]
|
branding = libcalamares.globalstorage.value("branding")
|
||||||
|
distribution = branding["shortProductName"]
|
||||||
|
file_name_sanitizer = str.maketrans(" /", "_-")
|
||||||
conf_path = os.path.join(
|
conf_path = os.path.join(
|
||||||
install_path, "boot", "loader", "entries", "%s.conf" % distribution)
|
install_path, "boot", "loader", "entries", "%s.conf" % distribution.translate(file_name_sanitizer))
|
||||||
fallback_path = os.path.join(
|
fallback_path = os.path.join(
|
||||||
install_path, "boot", "loader", "entries", "%s-fallback.conf" % distribution)
|
install_path, "boot", "loader", "entries", "%s-fallback.conf" % distribution.translate(file_name_sanitizer))
|
||||||
loader_path = os.path.join(
|
loader_path = os.path.join(
|
||||||
install_path, "boot", "loader", "loader.conf")
|
install_path, "boot", "loader", "loader.conf")
|
||||||
partitions = libcalamares.globalstorage.value("partitions")
|
partitions = libcalamares.globalstorage.value("partitions")
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
rootMountPoint: /tmp/mount
|
rootMountPoint: /tmp/mount
|
||||||
bootLoader:
|
bootLoader:
|
||||||
installPath: /dev/sdb
|
installPath: /dev/sdb
|
||||||
|
branding:
|
||||||
|
shortProductName: "Generic Distro"
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
# Replace 'LinuxDistribution' with your distribution name - for example with 'Manjaro'
|
|
||||||
distributor: LinuxDistribution
|
|
@ -56,7 +56,7 @@ def modify_grub_default(partitions, root_mount_point, distributor):
|
|||||||
elif lines[i].startswith("GRUB_CMDLINE_LINUX_DEFAULT"):
|
elif lines[i].startswith("GRUB_CMDLINE_LINUX_DEFAULT"):
|
||||||
lines[i] = kernel_cmd
|
lines[i] = kernel_cmd
|
||||||
elif lines[i].startswith("#GRUB_DISTRIBUTOR") or lines[i].startswith("GRUB_DISTRIBUTOR"):
|
elif lines[i].startswith("#GRUB_DISTRIBUTOR") or lines[i].startswith("GRUB_DISTRIBUTOR"):
|
||||||
lines[i] = "GRUB_DISTRIBUTOR=%s" % distributor
|
lines[i] = "GRUB_DISTRIBUTOR='%s'" % distributor.replace("'", "'\\''")
|
||||||
|
|
||||||
with open(default_grub, 'w') as grub_file:
|
with open(default_grub, 'w') as grub_file:
|
||||||
grub_file.write("\n".join(lines) + "\n")
|
grub_file.write("\n".join(lines) + "\n")
|
||||||
@ -66,5 +66,6 @@ def modify_grub_default(partitions, root_mount_point, distributor):
|
|||||||
def run():
|
def run():
|
||||||
partitions = libcalamares.globalstorage.value("partitions")
|
partitions = libcalamares.globalstorage.value("partitions")
|
||||||
root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
|
root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
|
||||||
distributor = libcalamares.job.configuration["distributor"]
|
branding = libcalamares.globalstorage.value("branding")
|
||||||
|
distributor = branding["shortProductName"]
|
||||||
return modify_grub_default(partitions, root_mount_point, distributor)
|
return modify_grub_default(partitions, root_mount_point, distributor)
|
||||||
|
Loading…
Reference in New Issue
Block a user