altercation/archblocks — 139★ on GitHub (Shell). Arch Linux Modular Install Script
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
ArchBlocks - a minimal, modular, manual install framework
WHAT:
ArchBlocks is a very lightweight framework for creating quick, modular, non-interactive Arch Linux install scripts tailored to specific systems. It is accessible via a single quick curl downloadable script (from, for example, github).
WHERE:
Example repo at https://github.com/altercation/archblocks
Arch BBS: https://bbs.archlinux.org/viewtopic.php?id=149597
EXAMPLE:
Boot Arch install media (in the example config I expect an EFI boot, but it's trivial to make this work for non EFI):
(this then sources the blocks of code remotely and configures the system based on the specific blocks called and variables set in in; see below)
WHAT IT ISN'T:
ArchBlocks is not an interactive general purpose script that asks you what you'd like. You must customize it (or its blocks) as much as any other install script. ArchBlocks simply makes this process easier to maintain as a single project that is applicable for multiple systems.
WHY:
Many somewhat experienced Arch users end up building lightweight install scripts to set up their systems. I've been wanting to modularize my own install scripts such that multiple, different system types (laptop/server/desktop/headless) can reuse most of the common elements easily and swap out blocks of code as needed.
AND YET it's easy to make something like this far too complex. To paraphrase the Ruby community: Arch is Simple so Our Utilities Are Simple. ArchBlocks kickstarts off a single "configuration" script and loads blocks from a single directory (remote or local, doesn't matter).
(I've previously written extensive additions to AIF before it was frozen in carbonite, and that experience convinced me of the value of a non-interactive, simple install script based approach).
NO REALLY, WHY NOT JUST MONOLITHIC INSTALL SCRIPTS, WHY MODULAR:
There is install code that may be impacted by changes to Arch, or I sometimes want to improve the way I handle some part of the installation. This may impact multiple systems. Rather than update and maintain five different manual install scripts, modular is better approach. A simple example is the various NETWORK_* blocks. I can keep using the default network setup method in most of my scripts and use a light weight / minimal network install method by just swapping out a block. This minimal install script can be revised and all systems that I install with it in future will make use of the revision.
BUT INSTALLING ARCH IS EASY
It is. It's mostly the filesystem and bootloader varieties which create complexity for me. This addresses that.
Another benefit of this modular approach is I can include post-flight app installation a per machine basis (my server gets nginx, my laptop gets dwarffortress). All automated.
DETAILS:
Each system I install gets a single config file (the "tau" script in the example above is a laptop). This script loads a few very lightweight helper functions (maintained in a lib file for reuse across "config" scripts) and then loads blocks from the (surprise) blocks directory (local or remote). These blocks are almost all just simple blocks of bash script. The only exceptions should be very clear from the example: there are a few functions that are very specific to the filesytem configuration that must be sprinkled throughout the code. These functions and their intended sequence in the script are easily identified by name such as FILESYSTEM_PRE_BASEINSTALL (in this case FILESYSTEM_PRE_BASEINSTALL is either a null function or does something as defined in the FILESYSTEM block).
A config/install script (the only script you need to manually execute) looks like this (actual script I use to install Arch on a Thinkpad x220):
The blocks subdirectory (the only subdirectory used) contains blocks of simple bash script and looks something like this (note the variants in items like NETWORK... I am working on alternates for FILESYSTEM and BOOTLOADER as well, but the principle should be clear)::
Does altercation/archblocks have a project website?
No homepage URL was recorded for altercation/archblocks in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
Does altercation/archblocks have any tags?
TopGit's last sync did not record any GitHub topics for altercation/archblocks. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on altercation/archblocks?
The most recent commit recorded on altercation/archblocks was 5.3 years ago, based on the GitHub push timestamp. The repository has 35 forks — one of the better signals of community interest.
How many stars does altercation/archblocks have?
altercation/archblocks has 139 GitHub stars — refresh the page for the live number, or check github.com/altercation/archblocks. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What language is altercation/archblocks written in?
altercation/archblocks is written primarily in Shell. GitHub's language field is based on the largest share of bytes in the default branch.
Where do I read more about altercation/archblocks?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/altercation/archblocks is the definitive source.
Read full README in the tab above.
Want a second opinion on archblocks?
Ask an AI that can read this page — one click and you get its take on archblocks.