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.27 kB
JavaScript
/**
* ./src/krill/prepare.d/users.tsx
* 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 React from 'react';
import { shx } from '../../../lib/utils.js';
import Users from '../../components/users.js';
import getHostname from '../../lib/get_hostname.js';
import getPassword from '../../lib/get_password.js';
import getUserfullname from '../../lib/get_userfullname.js';
import getUsername from '../../lib/get_username.js';
import { confirm } from './confirm.js';
/**
* USERS
*/
export async function users() {
let { fullname } = this.krillConfig;
let username = this.krillConfig.name;
if (username === '' || username === undefined) {
username = 'artisan';
}
let { password } = this.krillConfig;
if (password === '' || password === undefined) {
password = 'evolution';
}
let { rootPassword } = this.krillConfig;
if (rootPassword === '' || rootPassword === undefined) {
rootPassword = 'evolution';
}
let { hostname } = this.krillConfig;
if (hostname === '' || hostname === undefined) {
hostname = shx.exec('cat /etc/hostname', { silent: true }).stdout.trim();
}
let autologin = false;
const sameUserPassword = true;
let usersElem;
while (true) {
usersElem = React.createElement(Users, { autologin: autologin, fullname: fullname, hostname: hostname, password: password, rootPassword: rootPassword, sameUserPassword: sameUserPassword, username: username });
if (await confirm(usersElem, "Confirm Users datas?")) {
break;
}
fullname = await getUserfullname(fullname);
if (fullname !== '')
username = fullname.trim().split(' ')[0].toLowerCase();
username = await getUsername(username);
password = await getPassword(username, password);
rootPassword = await getPassword('root', password);
hostname = await getHostname(hostname);
autologin = autologin;
}
return {
autologin,
fullname,
hostname,
password,
rootPassword,
username
};
}