28 lines
946 B
TypeScript
28 lines
946 B
TypeScript
import { Base, BaseContext } from "../../../src/lib.ts";
|
|
|
|
export { build };
|
|
|
|
const build: Base = async (c) => {
|
|
// installs base
|
|
await c.sh(`pacstrap -K -c '${c.root_dir}' base`);
|
|
await c.sh(`rm -fr '${c.root_dir}/etc/securetty' '${c.root_dir}/usr/share/factory/etc/securetty'`);
|
|
|
|
await c.sh_in(`pacman -Syu`);
|
|
await c.sh_in(`sed -i 's/^SigLevel = .*$/SigLevel = Never/g' /etc/pacman.conf`);
|
|
await pacman(c, "nano", "git", "base-devel");
|
|
await c.sh_in(`systemctl enable systemd-networkd.service`);
|
|
|
|
// ssh
|
|
await c.sh_in(`printf 'root:jesuisunevoute' | chpasswd --crypt-method DES`);
|
|
await pacman(c, "openssh");
|
|
await c.sh_in(`
|
|
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
|
|
systemctl enable sshd.service
|
|
`);
|
|
const port = c.available_port(2250);
|
|
c.redirect(port, 22);
|
|
};
|
|
|
|
async function pacman(c: BaseContext, ...packages: string[]) {
|
|
await c.sh_in(`pacman -S --noconfirm '${packages.join("' '")}'`);
|
|
}
|