From b144f1dfc085fc02c845c8f83973bb753645aede Mon Sep 17 00:00:00 2001 From: Bart Ribbers Date: Tue, 11 Aug 2020 18:18:31 +0200 Subject: [PATCH] [mkinitfs] New module This module allows the generation of the initramfs in Alpine Linux based systems (excluding postmarketOS). Very bare bones, but then again it doesn't need much. It uses the Alpine Linux tool "mkinitfs" to do the job. --- src/modules/mkinitfs/main.py | 59 ++++++++++++++++++++++++++++++++ src/modules/mkinitfs/module.desc | 5 +++ 2 files changed, 64 insertions(+) create mode 100644 src/modules/mkinitfs/main.py create mode 100644 src/modules/mkinitfs/module.desc diff --git a/src/modules/mkinitfs/main.py b/src/modules/mkinitfs/main.py new file mode 100644 index 000000000..7deac3914 --- /dev/null +++ b/src/modules/mkinitfs/main.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# === This file is part of Calamares - === +# +# Copyright 2014-2015, Philip Müller +# Copyright 2014, Teo Mrnjavac +# Copyright 2017, Alf Gaida +# Copyright 2019, Adriaan de Groot +# +# 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 . + +import libcalamares +from libcalamares.utils import target_env_call + + +import gettext +_ = gettext.translation("calamares-python", + localedir=libcalamares.utils.gettext_path(), + languages=libcalamares.utils.gettext_languages(), + fallback=True).gettext + + +def pretty_name(): + return _("Creating initramfs with mkinitfs.") + + +def run_mkinitfs(): + """ + Creates initramfs, even when initramfs already exists. + + :return: + """ + return target_env_call(['mkinitfs']) + + +def run(): + """ + Starts routine to create initramfs. It passes back the exit code + if it fails. + + :return: + """ + return_code = run_mkinitfs() + + if return_code != 0: + return ( _("Failed to run mkinitfs on the target"), + _("The exit code was {}").format(return_code) ) diff --git a/src/modules/mkinitfs/module.desc b/src/modules/mkinitfs/module.desc new file mode 100644 index 000000000..06541fb87 --- /dev/null +++ b/src/modules/mkinitfs/module.desc @@ -0,0 +1,5 @@ +--- +type: "job" +name: "mkinitfs" +interface: "python" +script: "main.py"