On an Arch-based distribution as root, run the following:
git clone https://gitlab.com/aeth_/arch-autoconf.git
cd arch-autoconf
bash autoconf.sh
arch-autoconf is a fork of LARBS, a script that autoinstalls and autoconfigures a fully-functioning Arch Linux environment.
By default, arch-autoconf uses the programs here in progs.csv and installs my dotfiles repo here, but you can easily change this by either modifying the default variables at the beginning of the script or giving the script one of these options:
-r
: custom dotfiles repository (URL)-p
: custom programs list/dependencies (local file or URL)-a
: a custom AUR helper (must be able to install with-S
unless you change the relevant line in the script-w
: custom grub/lightdm wallpaper-f
: custom lightdm user icon
The script will parse the given programs list and install all of them. Note that the programs file must be a three column .csv
.
The first column is a "tag" that determines how the program is installed, "" (blank) for the main repository, A
for via the AUR, G
if the program is a git repository that is meant to be installed with make && sudo make install
, or P
if the package needs to be installed via pip.
The second column is the name of the program in the repository, or the link to the git repository, and the third column is a description of the program. During installation, the script will print out this information in a grammatical sentence.
Depending on your own build, you may want to tactically order the programs in your programs file. arch-autoconf will install from the top to the bottom.
If you include commas in your program descriptions, be sure to include double quotes around the whole description to ensure correct parsing.
The script is extensively divided into functions for easier readability and trouble-shooting. Most everything should be self-explanatory.
The main work is done by the installationloop
function, which iterates through the programs file and determines based on the tag of each program, which commands to run to install it. You can easily add new methods of installations and tags as well.
Note that programs from the AUR can only be built by a non-root user. What the script does to bypass this by default is to temporarily allow the newly created user to use sudo
without a password (so the user won't be prompted for a password multiple times in installation). This is done ad-hocly, but effectively with the newperms
function. At the end of installation, newperms
removes those settings, giving the user the ability to run only several basic sudo commands without a password (shutdown
, reboot
, ecc.).