2021-02-13 17:55:50 +01:00
|
|
|
# Luke's Auto-Rice Bootstrapping Scripts (LARBS)
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
## Installation:
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2021-02-13 17:55:50 +01:00
|
|
|
On an Arch-based distribution as root, run the following:
|
2018-08-02 02:25:18 +02:00
|
|
|
|
|
|
|
```
|
2019-02-07 12:47:57 +01:00
|
|
|
curl -LO larbs.xyz/larbs.sh
|
2019-04-05 00:38:03 +02:00
|
|
|
sh larbs.sh
|
2018-08-02 02:25:18 +02:00
|
|
|
```
|
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
That's it.
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
## What is LARBS?
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
LARBS is a script that autoinstalls and autoconfigures a fully-functioning
|
|
|
|
and minimal terminal-and-vim-based Arch Linux environment.
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2020-11-12 00:33:20 +01:00
|
|
|
LARBS can be run on a fresh install of Arch or Artix Linux, and provides you
|
|
|
|
with a fully configured diving-board for work or more customization.
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
## Customization
|
|
|
|
|
2023-01-22 06:14:57 +01:00
|
|
|
By default, LARBS uses the programs [here in progs.csv](static/progs.csv) and installs
|
2018-08-03 23:03:52 +02:00
|
|
|
[my dotfiles repo (voidrice) here](https://github.com/lukesmithxyz/voidrice),
|
|
|
|
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
|
|
|
|
|
|
|
|
### The `progs.csv` list
|
|
|
|
|
|
|
|
LARBS will parse the given programs list and install all given programs. 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 or `G` if the program is a
|
2021-02-13 17:55:50 +01:00
|
|
|
git repository that is meant to be `make && sudo make install`ed.
|
2018-08-03 23:03:52 +02:00
|
|
|
|
|
|
|
The second column is the name of the program in the repository, or the link to
|
2021-02-13 17:55:50 +01:00
|
|
|
the git repository, and the third column is a description (should be a verb
|
2018-08-03 23:03:52 +02:00
|
|
|
phrase) that describes the program. During installation, LARBS will print out
|
|
|
|
this information in a grammatical sentence. It also doubles as documentation
|
2021-02-13 17:55:50 +01:00
|
|
|
for people who read the CSV and want to install my dotfiles manually.
|
2018-08-03 23:03:52 +02:00
|
|
|
|
|
|
|
Depending on your own build, you may want to tactically order the programs in
|
|
|
|
your programs file. LARBS will install from the top to the bottom.
|
|
|
|
|
2020-09-06 22:44:15 +02:00
|
|
|
If you include commas in your program descriptions, be sure to include double
|
|
|
|
quotes around the whole description to ensure correct parsing.
|
2018-08-03 23:03:52 +02:00
|
|
|
|
|
|
|
### The script itself
|
|
|
|
|
2020-04-05 13:32:11 +02:00
|
|
|
The script is extensively divided into functions for easier readability and
|
2019-01-13 03:15:49 +01:00
|
|
|
trouble-shooting. Most everything should be self-explanatory.
|
2018-08-03 23:03:52 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
LARBS 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`,
|
|
|
|
`pacman -Syu`).
|