This commit is contained in:
nelle 2023-08-10 10:13:32 -06:00
parent c592f54854
commit c18e3005c1
2 changed files with 77 additions and 74 deletions

View file

@ -1,32 +1,30 @@
# archfi # obos-fi
### Fork of [MatMoul's Archfi](https://github.com/MatMoul)
Just a simple bash script wizard to install Ourobor.OS after you have booted on the official Ourobor.OS install media.
Just a simple bash script wizard to install Arch Linux after you have booted on the official Arch Linux install media.
With this script, you can install Arch Linux with two simple terminal commands. With this script, you can install Ourobor.OS with two simple terminal commands.
This wizard is made to install minimum packages (Base, bootloader and optionally archdi). This wizard is made to install minimum packages (Base, bootloader and optionally obosdi).
At the end of this wizard, you can install or launch [archdi](https://github.com/MatMoul/archdi) (Arch Linux Desktop Install) to install and configure desktop packages. At the end of this wizard, you can install or launch [obosdi](https://git.ouroboros.group/Ouroboros/obosdi) (Ourobor.OS Desktop Install) to install and configure desktop packages.
You can watch my videos to see how to use it [here](https://www.youtube.com/playlist?list=PLytHgIKLV1caHlCrcTSkm5OF2WSVI1_Sq). You can watch MatMoul's videos to see how to use it [here](https://www.youtube.com/playlist?list=PLytHgIKLV1caHlCrcTSkm5OF2WSVI1_Sq).
## How to use ## How to use
First, boot with the [last Arch Linux image](https://www.archlinux.org/download/) with a [bootable device](https://wiki.archlinux.org/index.php/USB_flash_installation_media). First, boot with the last Ourobor.OS image:
[Releases](https://git.ouroboros.group/Ouroboros/Ourobor.OS/releases/) | [Downloads](https://files.nullafati.xyz/OS-Images/OuroborOS/) with a [bootable device](https://wiki.archlinux.org/index.php/USB_flash_installation_media).
Then make sure you have Internet connection on the Arch iso. If you have a wireless connection the [`iwctl`](https://wiki.archlinux.org/index.php/Iwd#iwctl) command might be useful to you. You can also read the [Network configuration](https://wiki.archlinux.org/index.php/Network_configuration) from the Arch Linux guide for more detailed instructions. Then make sure you have Internet connection on the Arch iso. If you have a wireless connection the [`iwctl`](https://wiki.archlinux.org/index.php/Iwd#iwctl) command might be useful to you. You can also read the [Network configuration](https://wiki.archlinux.org/index.php/Network_configuration) from the Arch Linux guide for more detailed instructions.
Then download the script with from the command line: Then download the script with from the command line:
curl -LO archfi.sf.net/archfi curl -LO git.ouroboros.group/Ouroboros/obos-fi/raw/branch/master/archfi
If SourceForge is down, use this instead:
curl -LO matmoul.github.io/archfi
Finally, launch the script: Finally, launch the script:
sh archfi sh obosfi
Then follow the on-screen instructions to completion. Then follow the on-screen instructions to completion.
@ -34,7 +32,7 @@ If you require extra help, visit the provided video playlist and follow my examp
## More custom install ## More custom install
sh archfi -cpl {URL of your custom package list} sh obosfi -cpl {URL of your custom package list}
You can find a sample custom package list file in the samples folder. You can find a sample custom package list file in the samples folder.
@ -42,8 +40,8 @@ You can find a sample custom package list file in the samples folder.
You can test your script with this command : You can test your script with this command :
sh archfi -t {githubusername} {branchname} sh obosfi -t {githubusername} {branchname}
Example : Example :
sh archfi -t matmoul master sh obosfi -t matmoul master

View file

@ -1,19 +1,24 @@
#!/bin/bash #!/bin/bash
# Arch Linux Fast Install (archfi) # Ourobor.OS Fast Install (obos-fi)
# -------------------------------- # --------------------------------
# author : MatMoul # archfi author : MatMoul
# https://github.com/MatMoul # https://github.com/MatMoul
# http://sourceforge.net/u/matmoul # http://sourceforge.net/u/matmoul
# project : https://github.com/MatMoul/archfi # obosfi author : LimePotato (Ouroboros)
# http://sourceforge.net/projects/archfi/ # https://limepot.xyz/
# https://git.ouroboros.group/Ouroboros/
# https://git.ouroboros.group/LimePotato/
#
# project : https://git.ouroboros.group/Ouroboros/obos-fi
#
# license : LGPL-3.0 (http://opensource.org/licenses/lgpl-3.0.html) # license : LGPL-3.0 (http://opensource.org/licenses/lgpl-3.0.html)
# #
# reference : https://wiki.archlinux.org/index.php/Installation_guide # reference : https://wiki.archlinux.org/index.php/Installation_guide
apptitle="Arch Linux Fast Install (archfi) - Version: 2022.11.21.01.44.43 (GPLv3)" apptitle="Ourobor.OS Fast Install (obosfi) - Version: 0.0.1 (GPLv3)"
baseurl=https://raw.githubusercontent.com/MatMoul/archfi/master baseurl=https://git.ouroboros.group/Ouroboros/obos-fi/raw/branch/master
cpl=0 cpl=0
skipfont="0" skipfont="0"
fspkgs="" fspkgs=""
@ -912,12 +917,12 @@ installbase(){
done done
if [[ ${cpl} == 1 ]]; then if [[ ${cpl} == 1 ]]; then
sed -i '/^\s*$/d' /tmp/archfi-custom-package-list sed -i '/^\s*$/d' /tmp/obosfi-custom-package-list
sed -i '/^#/ d' /tmp/archfi-custom-package-list sed -i '/^#/ d' /tmp/obosfi-custom-package-list
options=() options=()
while read pkg; do while read pkg; do
options+=("${pkg}" "" on) options+=("${pkg}" "" on)
done < /tmp/archfi-custom-package-list done < /tmp/obosfi-custom-package-list
sel=$(dialog --backtitle "${apptitle}" --title "${txtinstallarchlinuxcustompackagelist}" --checklist "" 0 0 0 \ sel=$(dialog --backtitle "${apptitle}" --title "${txtinstallarchlinuxcustompackagelist}" --checklist "" 0 0 0 \
"${options[@]}" \ "${options[@]}" \
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
@ -982,7 +987,7 @@ archmenu(){
options+=("${txtedit//%1/mirrorlist}" "(${txtoptional})") options+=("${txtedit//%1/mirrorlist}" "(${txtoptional})")
options+=("${txtbootloader}" "") options+=("${txtbootloader}" "")
options+=("${txtextrasmenu}" "") options+=("${txtextrasmenu}" "")
options+=("archdi" "${txtarchdidesc}") options+=("obosdi" "${txtobosdidesc}")
sel=$(dialog --backtitle "${apptitle}" --title "${txtarchinstallmenu}" --cancel-button "${txtback}" --default-item "${nextitem}" --menu "" 0 0 0 \ sel=$(dialog --backtitle "${apptitle}" --title "${txtarchinstallmenu}" --cancel-button "${txtback}" --default-item "${nextitem}" --menu "" 0 0 0 \
"${options[@]}" \ "${options[@]}" \
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
@ -1074,11 +1079,11 @@ archmenu(){
;; ;;
"${txtextrasmenu}") "${txtextrasmenu}")
archextrasmenu archextrasmenu
nextitem="archdi" nextitem="obosdi"
;; ;;
"archdi") "obosdi")
installarchdi installobosdi
nextitem="archdi" nextitem="obosdi"
;; ;;
esac esac
archmenu "${nextitem}" archmenu "${nextitem}"
@ -1089,7 +1094,7 @@ archchroot(){
echo "arch-chroot /mnt /root" echo "arch-chroot /mnt /root"
cp ${0} /mnt/root cp ${0} /mnt/root
chmod 755 /mnt/root/$(basename "${0}") chmod 755 /mnt/root/$(basename "${0}")
echo "dialog is required for archfi, it will be installed as dep. Then it will removed when cleaning orphan." echo "dialog is required for obosfi, it will be installed as dep. Then it will removed when cleaning orphan."
echo "arch-chroot /mnt pacman -S --asdeps --needed --noconfirm dialog" echo "arch-chroot /mnt pacman -S --asdeps --needed --noconfirm dialog"
arch-chroot /mnt pacman -S --asdeps --needed --noconfirm dialog arch-chroot /mnt pacman -S --asdeps --needed --noconfirm dialog
arch-chroot /mnt /root/$(basename "${0}") --chroot ${1} ${2} arch-chroot /mnt /root/$(basename "${0}") --chroot ${1} ${2}
@ -1815,30 +1820,30 @@ archenablenetworkmanagerchroot(){
exit exit
} }
installarchdi(){ installobosdi(){
dialog --backtitle "${apptitle}" --title "archdi" --msgbox "${txtinstallarchdi}" 0 0 dialog --backtitle "${apptitle}" --title "obosdi" --msgbox "${txtinstallobosdi}" 0 0
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
options=() options=()
options+=("${txtarchdiinstallandlaunch}" "") options+=("${txtobosdiinstallandlaunch}" "")
options+=("${txtarchdilaunch}" "") options+=("${txtobosdilaunch}" "")
options+=("${txtarchdiinstall}" "") options+=("${txtobosdiinstall}" "")
sel=$(dialog --backtitle "${apptitle}" --title "${txtarchdimenu}" --cancel-button "${txtback}" --menu "" 0 0 0 \ sel=$(dialog --backtitle "${apptitle}" --title "${txtobosdimenu}" --cancel-button "${txtback}" --menu "" 0 0 0 \
"${options[@]}" \ "${options[@]}" \
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
case ${sel} in case ${sel} in
"${txtarchdiinstallandlaunch}") archchroot archdiinstallandlaunch;; "${txtobosdiinstallandlaunch}") archchroot obosdiinstallandlaunch;;
"${txtarchdilaunch}") archchroot archdilaunch;; "${txtobosdilaunch}") archchroot obosdilaunch;;
"${txtarchdiinstall}") "${txtobosdiinstall}")
clear clear
archchroot archdiinstall archchroot obosdiinstall
pressanykey pressanykey
;; ;;
esac esac
fi fi
fi fi
} }
archdidownload(){ obosdidownload(){
txtselectserver="Select source server :" txtselectserver="Select source server :"
txtback="Back" txtback="Back"
options=() options=()
@ -1850,34 +1855,34 @@ archdidownload(){
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
case ${sel} in case ${sel} in
"sourceforge.net") "sourceforge.net")
archdiurl=archdi.sourceforge.net/archdi obosdiurl=obosdi.sourceforge.net/obosdi
;; ;;
"github.com") "github.com")
archdiurl=matmoul.github.io/archdi >archdi obosdiurl=matmoul.github.io/obosdi >obosdi
;; ;;
esac esac
fi fi
echo "curl -L ${archdiurl} >archdi" echo "curl -L ${obosdiurl} >obosdi"
curl -L ${archdiurl} >archdi curl -L ${obosdiurl} >obosdi
} }
archdiinstallandlaunchchroot(){ obosdiinstallandlaunchchroot(){
cd cd
archdidownload obosdidownload
sh archdi -i sh obosdi -i
archdi --chroot obosdi --chroot
exit exit
} }
archdilaunchchroot(){ obosdilaunchchroot(){
cd cd
archdidownload obosdidownload
sh archdi --chroot sh obosdi --chroot
rm archdi rm obosdi
exit exit
} }
archdiinstallchroot(){ obosdiinstallchroot(){
cd cd
archdidownload obosdidownload
sh archdi -i sh obosdi -i
exit exit
} }
# -------------------------------------------------------- # --------------------------------------------------------
@ -1997,11 +2002,11 @@ loadstrings(){
txtpressanykey="Press any key to continue." txtpressanykey="Press any key to continue."
txtarchdidesc="Full desktop install script" txtobosdidesc="Full desktop install script"
txtinstallarchdi="Arch Linux Desktop Install (archdi) is a second script who can help you to install a full workstation.\n\nYou can just launch the script or install it. Choose in the next menu." txtinstallobosdi="Arch Linux Desktop Install (obosdi) is a second script who can help you to install a full workstation.\n\nYou can just launch the script or install it. Choose in the next menu."
txtarchdiinstallandlaunch="Install and run archdi" txtobosdiinstallandlaunch="Install and run obosdi"
txtarchdiinstall="Install archdi" txtobosdiinstall="Install obosdi"
txtarchdilaunch="Launch archdi" txtobosdilaunch="Launch obosdi"
} }
# -------------------------------------------------------- # --------------------------------------------------------
@ -2012,16 +2017,16 @@ loadstrings(){
while (( "$#" )); do while (( "$#" )); do
case ${1} in case ${1} in
--help) --help)
echo "archfi" echo "obosfi"
echo "------" echo "------"
echo "-cpl | --custom-package-list url Set custom package list url" echo "-cpl | --custom-package-list url Set custom package list url"
echo "-sf | --skip-font Skip setfont from language files" echo "-sf | --skip-font Skip setfont from language files"
echo "-efiX -efi0 : disable EFI, -efi1 efi inst, -efi2 efi hybrid inst" echo "-efiX -efi0 : disable EFI, -efi1 efi inst, -efi2 efi hybrid inst"
echo "-t | --test ghusername ghbranch Test archfi script and language" echo "-t | --test ghusername ghbranch Test obosfi script and language"
exit 0 exit 0
;; ;;
-cpl | --custom-package-list) -cpl | --custom-package-list)
curl -L ${2} > /tmp/archfi-custom-package-list curl -L ${2} > /tmp/obosfi-custom-package-list
if [[ "$?" != "0" ]]; then if [[ "$?" != "0" ]]; then
echo "Error downloading custom package list" echo "Error downloading custom package list"
exit 0 exit 0
@ -2030,11 +2035,11 @@ while (( "$#" )); do
;; ;;
-sf | --skip-font) skipfont=1;; -sf | --skip-font) skipfont=1;;
-t | --test) -t | --test)
curl -L https://raw.githubusercontent.com/${2}/archfi/${3}/archfi > archfi curl -L https://raw.githubusercontent.com/${2}/obosfi/${3}/obosfi > obosfi
sh archfi -tt ${2} ${3} sh obosfi -tt ${2} ${3}
exit 0 exit 0
;; ;;
-tt) baseurl="https://raw.githubusercontent.com/${2}/archfi/${3}";; -tt) baseurl="https://raw.githubusercontent.com/${2}/obosfi/${3}";;
-efi0) efimode=0;; -efi0) efimode=0;;
-efi1) -efi1)
eficomputer=1 eficomputer=1
@ -2068,9 +2073,9 @@ if [ "${chroot}" = "1" ]; then
'syslinuxbootloaderefiinstall') archsyslinuxinstallbootloaderefichroot ${args};; 'syslinuxbootloaderefiinstall') archsyslinuxinstallbootloaderefichroot ${args};;
'systemdbootloaderinstall') archsystemdinstallchroot ${args};; 'systemdbootloaderinstall') archsystemdinstallchroot ${args};;
'refindbootloaderinstall') archrefindinstallchroot ${args};; 'refindbootloaderinstall') archrefindinstallchroot ${args};;
'archdiinstallandlaunch') archdiinstallandlaunchchroot;; 'obosdiinstallandlaunch') obosdiinstallandlaunchchroot;;
'archdiinstall') archdiinstallchroot;; 'obosdiinstall') obosdiinstallchroot;;
'archdilaunch') archdilaunchchroot;; 'obosdilaunch') obosdilaunchchroot;;
esac esac
else else
echo "Init pacman, please wait..." echo "Init pacman, please wait..."
@ -2087,7 +2092,7 @@ else
efimode=1 efimode=1
fi fi
fi fi
cat << EOF > dialog.archfi cat << EOF > dialog.obosfi
use_shadow = OFF use_shadow = OFF
title_color = (BLACK,WHITE,OFF) title_color = (BLACK,WHITE,OFF)
button_label_active_color = (WHITE,BLUE,ON) button_label_active_color = (WHITE,BLUE,ON)
@ -2099,11 +2104,11 @@ tag_key_selected_color = (WHITE,BLUE,ON)
check_color = tag_color check_color = tag_color
check_selected_color = tag_selected_color check_selected_color = tag_selected_color
EOF EOF
export DIALOGRC="dialog.archfi" export DIALOGRC="dialog.obosfi"
loadstrings loadstrings
EDITOR=nano EDITOR=nano
mainmenu mainmenu
rm dialog.archfi rm dialog.obosfi
fi fi
exit 0 exit 0