diff options
author | David P. <megver83@parabola.nu> | 2024-02-22 19:20:44 -0300 |
---|---|---|
committer | David P. <megver83@parabola.nu> | 2024-02-22 19:20:44 -0300 |
commit | c08dd4465ae9b51d12f4b3af9c85a17724dd8744 (patch) | |
tree | 228f43ae02509cf9d5ecbc3dd72763d95d1dec12 | |
parent | b016140ef1776ac15d4cf0827260f0a87230946c (diff) |
Add replace.sh
This script is meant to do simple copy-paste from partial profiles to full profiles from archiso.
Partial profiles include the necessary files from rebranding and supporting linux-libre, mainly.
I'll document more about this in the future.
-rw-r--r-- | releng-openrc/airootfs/etc/mkinitcpio.conf | 67 | ||||
-rw-r--r-- | releng-openrc/airootfs/etc/ssh/sshd_config | 116 | ||||
-rwxr-xr-x | replace.sh | 41 |
3 files changed, 41 insertions, 183 deletions
diff --git a/releng-openrc/airootfs/etc/mkinitcpio.conf b/releng-openrc/airootfs/etc/mkinitcpio.conf deleted file mode 100644 index d3a5186..0000000 --- a/releng-openrc/airootfs/etc/mkinitcpio.conf +++ /dev/null @@ -1,67 +0,0 @@ -# vim:set ft=sh -# MODULES -# The following modules are loaded before any boot hooks are -# run. Advanced users may wish to specify all system modules -# in this array. For instance: -# MODULES=(piix ide_disk reiserfs) -MODULES=(loop speakup_soft) - -# BINARIES -# This setting includes any additional binaries a given user may -# wish into the CPIO image. This is run last, so it may be used to -# override the actual binaries included by a given hook -# BINARIES are dependency parsed, so you may safely ignore libraries -BINARIES=() - -# FILES -# This setting is similar to BINARIES above, however, files are added -# as-is and are not parsed in any way. This is useful for config files. -FILES=() - -# HOOKS -# This is the most important setting in this file. The HOOKS control the -# modules and scripts added to the image, and what happens at boot time. -# Order is important, and it is recommended that you do not change the -# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for -# help on a given hook. -# 'base' is _required_ unless you know precisely what you are doing. -# 'udev' is _required_ in order to automatically load modules -# 'filesystems' is _required_ unless you specify your fs modules in MODULES -# Examples: -## This setup specifies all modules in the MODULES setting above. -## No raid, lvm2, or encrypted root is needed. -# HOOKS=(base) -# -## This setup will autodetect all modules for your system and should -## work as a sane default -# HOOKS=(base udev autodetect block filesystems) -# -## This setup will generate a 'full' image which supports most systems. -## No autodetection is done. -# HOOKS=(base udev block filesystems) -# -## This setup assembles a pata mdadm array with an encrypted root FS. -## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. -# HOOKS=(base udev block mdadm encrypt filesystems) -# -## This setup loads an lvm2 volume group on a usb device. -# HOOKS=(base udev block lvm2 filesystems) -# -## NOTE: If you have /usr on a separate partition, you MUST include the -# usr, fsck and shutdown hooks. -HOOKS=(base udev modconf memdisk parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block filesystems keyboard) - -# COMPRESSION -# Use this to compress the initramfs image. By default, gzip compression -# is used. Use 'cat' to create an uncompressed image. -#COMPRESSION="gzip" -#COMPRESSION="bzip2" -#COMPRESSION="lzma" -COMPRESSION="xz" -#COMPRESSION="lzop" -#COMPRESSION="lz4" -#COMPRESSION="zstd" - -# COMPRESSION_OPTIONS -# Additional options for the compressor -#COMPRESSION_OPTIONS=() diff --git a/releng-openrc/airootfs/etc/ssh/sshd_config b/releng-openrc/airootfs/etc/ssh/sshd_config deleted file mode 100644 index 93f7d63..0000000 --- a/releng-openrc/airootfs/etc/ssh/sshd_config +++ /dev/null @@ -1,116 +0,0 @@ -# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $ - -# This is the sshd server system-wide configuration file. See -# sshd_config(5) for more information. - -# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin - -# The strategy used for options in the default sshd_config shipped with -# OpenSSH is to specify options with their default value where -# possible, but leave them commented. Uncommented options override the -# default value. - -#Port 22 -#AddressFamily any -#ListenAddress 0.0.0.0 -#ListenAddress :: - -#HostKey /etc/ssh/ssh_host_rsa_key -#HostKey /etc/ssh/ssh_host_ecdsa_key -#HostKey /etc/ssh/ssh_host_ed25519_key - -# Ciphers and keying -#RekeyLimit default none - -# Logging -#SyslogFacility AUTH -#LogLevel INFO - -# Authentication: - -#LoginGraceTime 2m -PermitRootLogin yes -#StrictModes yes -#MaxAuthTries 6 -#MaxSessions 10 - -#PubkeyAuthentication yes - -# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 -# but this is overridden so installations will only check .ssh/authorized_keys -AuthorizedKeysFile .ssh/authorized_keys - -#AuthorizedPrincipalsFile none - -#AuthorizedKeysCommand none -#AuthorizedKeysCommandUser nobody - -# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts -#HostbasedAuthentication no -# Change to yes if you don't trust ~/.ssh/known_hosts for -# HostbasedAuthentication -#IgnoreUserKnownHosts no -# Don't read the user's ~/.rhosts and ~/.shosts files -#IgnoreRhosts yes - -# To disable tunneled clear text passwords, change to no here! -#PasswordAuthentication yes -#PermitEmptyPasswords no - -# Change to no to disable s/key passwords -#KbdInteractiveAuthentication yes - -# Kerberos options -#KerberosAuthentication no -#KerberosOrLocalPasswd yes -#KerberosTicketCleanup yes -#KerberosGetAFSToken no - -# GSSAPI options -#GSSAPIAuthentication no -#GSSAPICleanupCredentials yes - -# Set this to 'yes' to enable PAM authentication, account processing, -# and session processing. If this is enabled, PAM authentication will -# be allowed through the KbdInteractiveAuthentication and -# PasswordAuthentication. Depending on your PAM configuration, -# PAM authentication via KbdInteractiveAuthentication may bypass -# the setting of "PermitRootLogin without-password". -# If you just want the PAM account and session checks to run without -# PAM authentication, then enable this but set PasswordAuthentication -# and KbdInteractiveAuthentication to 'no'. -UsePAM yes - -#AllowAgentForwarding yes -#AllowTcpForwarding yes -#GatewayPorts no -#X11Forwarding no -#X11DisplayOffset 10 -#X11UseLocalhost yes -#PermitTTY yes -PrintMotd no # pam does that -#PrintLastLog yes -#TCPKeepAlive yes -#PermitUserEnvironment no -#Compression delayed -#ClientAliveInterval 0 -#ClientAliveCountMax 3 -#UseDNS no -#PidFile /run/sshd.pid -#MaxStartups 10:30:100 -#PermitTunnel no -#ChrootDirectory none -#VersionAddendum none - -# no default banner path -#Banner none - -# override default of no subsystems -Subsystem sftp /usr/lib/ssh/sftp-server - -# Example of overriding settings on a per-user basis -#Match User anoncvs -# X11Forwarding no -# AllowTcpForwarding no -# PermitTTY no -# ForceCommand cvs server diff --git a/replace.sh b/replace.sh new file mode 100755 index 0000000..a059d16 --- /dev/null +++ b/replace.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +set -e + +replace_profile="$1" +profile="$2" + +if ! (( "${#@}" )); then + echo "Usage: ${0##*/} [replace_profile_dir] [profile_dir]" + echo "This script will map replace.txt under replace_profile_dir and modify files in profile_dir." +fi + +if ! [[ -d "${replace_profile}" ]]; then + echo "Please specify a valid replacements directory." + exit 1 +fi +if ! [[ -d "${profile}" ]]; then + echo "Please specify a valid profile directory." + exit 1 +fi + +mapfile -t replacements < <(grep -vE '^\s*($|#)' "$replace_profile/replace.txt") +for r in "${replacements[@]}"; do + IFS=":" read -ra files <<< "$r" + orig="${files[0]}" + dest="${files[1]}" + + #echo "Delete $orig" + rm -v "$profile/$orig" + if [[ "$r" =~ :$ ]]; then + continue + fi + + if ! (( "${#dest}" )); then + dest="$orig" + fi + #echo " -> Copying $replace_profile/$dest to $profile/$dest" + cp -v "$replace_profile/$dest" "$profile/$dest" +done + +echo "Deleting all empty dirs under $profile" +find "$profile" -type d -empty -exec rmdir {} \; |