penguins-eggs
Version:
A remaster system tool, compatible with Almalinux, Alpine, Arch, Debian, Devuan, Fedora, Manjaro, Opensuse, Ubuntu and derivatives
43 lines (42 loc) • 1.53 kB
JavaScript
/**
* ./src/classes/incubation/customize/customize-partitions.ts
* penguins-eggs v.25.7.x / ecmascript 2020
* author: Piero Proietti
* email: piero.proietti@gmail.com
* license: MIT
*/
import yaml from 'js-yaml';
import fs from 'node:fs';
import { exec } from '../../../lib/utils.js';
import Pacman from '../../pacman.js';
/**
* customize module partition
* add/remove filesystem available
*/
export async function customizePartitions() {
const filePartition = '/etc/calamares/modules/partition.conf';
const partition = yaml.load(fs.readFileSync(filePartition, 'utf8'));
// detect filesystem type
const test = await exec(`df -T / | awk 'NR==2 {print $2}'`, { capture: true, echo: false });
partition.defaultFileSystemType = test.data.trim();
/**
* Determino i filesystem disponibili
*/
partition.availableFileSystemTypes = ['ext4'];
if (Pacman.packageIsInstalled('progs') || Pacman.packageIsInstalled('btrfsprogs') || Pacman.packageIsInstalled('btrfs-progs')) {
partition.availableFileSystemTypes.push('btrfs');
}
if (Pacman.packageIsInstalled('xfsprogs')) {
partition.availableFileSystemTypes.push('xfs');
}
if (Pacman.packageIsInstalled('f2fs-tools')) {
partition.availableFileSystemTypes.push('f2fs');
}
// Cannot work here
// if (!fs.existsSync('/sys/firmware/efi')) {
// if (partition.efi) {
// delete partition.efi
// }
// }
fs.writeFileSync(filePartition, yaml.dump(partition), 'utf-8');
}