penguins-eggs
Version:
A remaster system tool, compatible with Almalinux, Alpine, Arch, Debian, Devuan, Fedora, Manjaro, Opensuse, Ubuntu and derivatives
64 lines (63 loc) • 2.58 kB
JavaScript
/**
* ./src/krill/modules/remove-installer-link.ts
* penguins-eggs v.25.7.x / ecmascript 2020
* author: Piero Proietti
* email: piero.proietti@gmail.com
* license: MIT
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
*/
import fs from 'node:fs';
import path from 'path';
/**
* removeHomecryptHack
*/
export default async function removeHomecryptHack() {
const targetRoot = this.installTarget;
// -------------------------------------------------------
// 1. PULIZIA SYSVINIT (Critica per il boot)
// -------------------------------------------------------
const inittabPath = path.join(targetRoot, 'etc/inittab');
if (fs.existsSync(inittabPath)) {
let content = fs.readFileSync(inittabPath, 'utf8');
// Cerca la riga modificata dal nostro hack
const hackRegex = /^1:.*tty1-unlock-wrapper\.sh.*$/m;
// Ripristina la riga standard (adatta questa stringa se usi parametri diversi per agetty)
const standardLine = '1:2345:respawn:/sbin/agetty --noclear tty1 linux';
if (hackRegex.test(content)) {
content = content.replace(hackRegex, standardLine);
fs.writeFileSync(inittabPath, content);
// console.log('- Restored standard inittab entry')
}
}
// -------------------------------------------------------
// 2. PULIZIA SYSTEMD (Cosmetica / Best Practice)
// -------------------------------------------------------
// Anche se non rompe il boot, rimuoviamo i file inutili
const systemdFiles = ['etc/systemd/system/mount-encrypted-home.service', 'etc/systemd/system/local-fs.target.wants/mount-encrypted-home.service'];
for (const fileRelPath of systemdFiles) {
const fullPath = path.join(targetRoot, fileRelPath);
if (fs.existsSync(fullPath)) {
try {
fs.unlinkSync(fullPath);
}
catch {
/* ignore */
}
}
}
// -------------------------------------------------------
// 3. RIMOZIONE SCRIPT COMUNI
// -------------------------------------------------------
const scriptFiles = ['usr/local/bin/tty1-unlock-wrapper.sh', 'usr/local/bin/mount-encrypted-home.sh'];
for (const fileRelPath of scriptFiles) {
const fullPath = path.join(targetRoot, fileRelPath);
if (fs.existsSync(fullPath)) {
try {
fs.unlinkSync(fullPath);
}
catch {
/* ignore */
}
}
}
}