Added files to git repo
This commit is contained in:
268
configure.sh
Executable file
268
configure.sh
Executable file
@ -0,0 +1,268 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
|
||||
BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")"
|
||||
|
||||
|
||||
cat << EOF
|
||||
#######################################
|
||||
## ##
|
||||
## $(cat "${BASEDIR}/title") Script ##
|
||||
## ##
|
||||
## Jean <jean@easthighnerd.net> ##
|
||||
## ##
|
||||
#######################################
|
||||
|
||||
|
||||
#################
|
||||
## ##
|
||||
## Configure ##
|
||||
## ##
|
||||
#################
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
printf \
|
||||
'ZOL_FEDORA_VER="2-6"\n' | \
|
||||
tee \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'(NVMe) SSD or HDD?\n'
|
||||
select OPTION in 'SSD' 'HDD'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
'SSD'|'HDD')
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf \
|
||||
'Invalid option\n'
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf \
|
||||
"DISK_TYPE=\"${OPTION}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
printf \
|
||||
'\nGet disk from:\n'
|
||||
select OPTION in '/dev/disk/by-id/' '/dev/'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
'/dev/disk/by-id/'|'/dev/')
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf \
|
||||
'Invalid option\n'
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
if [[ "${OPTION}" == '/dev/disk/by-id/' ]]; then
|
||||
DRIVES="$(ls -Ago /dev/disk/by-id/ | grep -v 'sr' | grep -v 'dm-' | grep -v 'nvme-eui.' | grep -v '\-part' | grep -v 'wwn-' | grep -v '_[1-9] -> ' | grep -v 'total' | sed 's|^.*\:[0-5][0-9] ||g; s| -> .*$||g' | tr -d '[:blank:]')"
|
||||
|
||||
printf \
|
||||
'\nSelect the disk you want to use:\n'
|
||||
|
||||
DRIVES=( ${DRIVES} )
|
||||
shopt -s extglob
|
||||
MENU="@(${DRIVES[0]}"
|
||||
|
||||
for ((i=1;i<${#DRIVES[@]};i++)); do
|
||||
MENU+="|${DRIVES[$i]}"
|
||||
done
|
||||
|
||||
MENU+=")"
|
||||
|
||||
select DRIVE in "${DRIVES[@]}"
|
||||
do
|
||||
case ${DRIVE} in
|
||||
${MENU})
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf \
|
||||
'Invalid option\n'
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf \
|
||||
"DISK=\"/dev/disk/by-id/${DRIVE}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
elif [[ "${OPTION}" == '/dev/' ]]; then
|
||||
DRIVES="$(lsblk -do name | grep -v 'loop' | grep -v 'sr' | grep -v 'zram' | grep -v 'NAME' | tr -d '[:blank:]')"
|
||||
|
||||
printf \
|
||||
'\nSelect the disk you want to use:\n'
|
||||
|
||||
DRIVES=( ${DRIVES} )
|
||||
shopt -s extglob
|
||||
MENU="@(${DRIVES[0]}"
|
||||
|
||||
for ((i=1;i<${#DRIVES[@]};i++)); do
|
||||
MENU+="|${DRIVES[$i]}"
|
||||
done
|
||||
|
||||
MENU+=")"
|
||||
|
||||
select DRIVE in "${DRIVES[@]}"
|
||||
do
|
||||
case ${DRIVE} in
|
||||
${MENU})
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf \
|
||||
'Invalid option\n'
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf \
|
||||
"DISK=\"/dev/${DRIVE}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
fi
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
HOSTNAME='-'
|
||||
|
||||
while [[ "${HOSTNAME}" == '-' ]] || [[ -z "${HOSTNAME}" ]] || [[ "${HOSTNAME}" = *' '* ]] || [[ "${HOSTNAME}" = *_* ]]; do
|
||||
printf \
|
||||
'\nEnter a hostname for this machine (no spaces or underscores):\n'
|
||||
read \
|
||||
-r \
|
||||
HOSTNAME
|
||||
|
||||
if [[ "${HOSTNAME}" = *' '* ]] || [[ "${HOSTNAME}" = *_* ]]; then
|
||||
printf \
|
||||
'ERROR:\tNo spaces or underscores in the hostname!\n'
|
||||
fi
|
||||
done
|
||||
|
||||
printf \
|
||||
"HOSTNAME=\"${HOSTNAME}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
USERNAME='-'
|
||||
|
||||
while [[ "${USERNAME}" == '-' ]] || [[ -z "${USERNAME}" ]] || [[ "${USERNAME}" = *' '* ]] || [[ "${USERNAME}" = *[A-Z]* ]]; do
|
||||
printf \
|
||||
'\nEnter a name for the new user account (lowercase, no spaces):\n'
|
||||
read \
|
||||
-r \
|
||||
USERNAME
|
||||
|
||||
if [[ "${USERNAME}" = *' '* ]] || [[ "${USERNAME}" = *[A-Z]* ]]; then
|
||||
printf \
|
||||
'ERROR:\tNo spaces or uppercase letters in the username!\n'
|
||||
fi
|
||||
done
|
||||
|
||||
printf \
|
||||
"USERNAME=\"${USERNAME}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
printf \
|
||||
'\nEnable SWAP?\n'
|
||||
select OPTION in 'yes' 'no'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
'yes'|'no')
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf \
|
||||
'Invalid option\n'
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf \
|
||||
"ENABLE_SWAP=\"${OPTION}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
printf \
|
||||
'\nEnable encryption?\n'
|
||||
select OPTION in 'yes' 'no'
|
||||
do
|
||||
case "${OPTION}" in
|
||||
'yes'|'no')
|
||||
break
|
||||
;;
|
||||
*)
|
||||
printf \
|
||||
'Invalid option\n'
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf \
|
||||
"ENCRYPTION=\"${OPTION}\"\n" | \
|
||||
tee \
|
||||
--append \
|
||||
"${BASEDIR}/system.conf" \
|
||||
&> \
|
||||
/dev/null
|
||||
|
||||
printf \
|
||||
'\033[2J\033[H'
|
||||
|
||||
cat << EOF
|
||||
|
||||
Configuration stored in '${BASEDIR}/system.conf'
|
||||
|
||||
Press any key to return to the main menu
|
||||
EOF
|
||||
|
||||
read \
|
||||
-srn \
|
||||
1
|
Reference in New Issue
Block a user