2018-08-02 02:25:18 +02:00
|
|
|
# Luke's Auto-Rice Bootstraping Scripts (LARBS)
|
|
|
|
|
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
## Installation:
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2018-08-04 00:50:48 +02: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
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
LARBS was originally intended to be run on a fresh install of Arch Linux, and
|
|
|
|
provides you with a fully configured diving-board for work or more
|
|
|
|
customization. But LARBS also works on already configured systems *and* other
|
|
|
|
Arch-based distros such as Manjaro, Antergos and Parabola (although Parabola,
|
|
|
|
which uses slightly different repositories might miss one or two minor
|
|
|
|
programs).
|
2018-08-02 02:25:18 +02:00
|
|
|
|
2018-08-03 23:03:52 +02:00
|
|
|
## Customization
|
|
|
|
|
2019-11-29 12:13:02 +01:00
|
|
|
By default, LARBS uses the programs [here in progs.csv](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
|
|
|
|
git repository that is meant to be `make && sudo make install`ed.
|
|
|
|
|
|
|
|
The second column is the name of the program in the repository, or the link to
|
|
|
|
the git repository, and the third comment is a description (should be a verb
|
|
|
|
phrase) that describes the program. During installation, LARBS will print out
|
|
|
|
this information in a grammatical sentence. It also doubles as documentation
|
|
|
|
for people who read the csv or who want to install my dotfiles manually.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2018-12-17 04:33:26 +01: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
|
|
|
|
|
|
|
|
The script is broken up extensively 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`).
|