Files
axe-os/utilities.bash
ag-tsotetsi 409517b49f re-edit
2026-03-22 21:30:15 +02:00

88 lines
2.0 KiB
Bash

#!/usr/bin/env bash
create_directories() {
if [ ! -d "$SYSROOT" ]; then
mkdir -p "$SYSROOT"/{etc,cross,sources,usr,dev,proc,sys,run}
mkdir -p "$SYSROOT"/usr/{bin,sbin,lib,include}
mkdir -p "$SYSROOT"/var/{cache,lib,run}
for directory in bin sbin lib; do
ln -fs usr/$directory "$SYSROOT"/$directory
done
ln -fs usr/lib "$SYSROOT"/lib64
ln -fs run "$SYSROOT"/var/run
ln -fs run/lock "$SYSROOT"/var/lock
install -d -m 0750 "$SYSROOT"/root
install -d -m 1777 "$SYSROOT"/tmp "$SYSROOT"/var/tmp
fi
}
create_files() {
if [[ ! -L "$SYSROOT"/etc/mtab ]]; then
sudo ln -s proc/self/mounts "$SYSROOT"/etc/mtab
cat > "$SYSROOT"/etc/hosts <<- "EOF"
127.0.0.1 localhost axe
::1 localhost
EOF
cat > "$SYSROOT"/etc/passwd <<- "EOF"
root:x:0:0:root:/root:/usr/bin/bash
uuidd:x:6:6::/dev/null:/usr/bin/nologin
messagebus:x:7:7::/run/dbus:/usr/bin/nologin
nobody:x:65534:65534::/dev/null:/usr/bin/nologin
EOF
cat > "$SYSROOT"/etc/group <<- "EOF"
root:x:0:
tty:x:1:
audio:x:2:
video:x:3:
input:x:4:
wheel:x:5:
uuidd:x:6:
messagebus:x:7:
users:x:999:
nogroup:x:65534:
EOF
fi
}
create_sysroot() {
create_directories
create_files
}
change_owner() {
sudo chown -R root:root "$SYSROOT"/{bin,cross,dev,etc,lib,lib64,proc,sys,root,run,sbin,sys,tmp,usr,var}
}
do_mount() {
if ! mountpoint -q "$SYSROOT/dev"; then
sudo mount --bind /dev "$SYSROOT"/dev
sudo mount -t devpts devpts -o gid=1,mode=0620 "$SYSROOT"/dev/pts
sudo mount -t proc proc "$SYSROOT"/proc
sudo mount -t sysfs sysfs "$SYSROOT"/sys
sudo mount -t tmpfs tmpfs "$SYSROOT"/run
if [ -h "$SYSROOT"/dev/shm ]; then
sudo install -d -m 1777 "$SYSROOT"$(realpath /dev/shm)
else
sudo mount -t tmpfs -o nosuid,nodev tmpfs "$SYSROOT"/dev/shm
fi
fi
}
do_unmount() {
sudo mountpoint -q "$SYSROOT"/dev/shm
sudo umount "$SYSROOT"/dev/shm
sudo umount "$SYSROOT"/dev/pts
sudo umount "$SYSROOT"/{sys,proc,run,dev}
}
fetch() {
wget -N -c --show-progress -q -P "$SOURCES" $1
}