3.4 KiB
Bootstrap
A collection of bootstrap scripts for setting up tools and configurations I use across new machines, servers, and development environments.
The goal is simple: reduce the number of manual steps required after installing an operating system and make my setup reproducible.
Available Scripts
| Script | Description |
|---|---|
install_nvim.sh |
Installs Neovim 0.11.7 and clones my Neovim configuration repository. |
install_yazi.sh |
Installs Yazi terminal file manager and its dependencies. |
More scripts will be added over time.
Usage
To bootstrap a new machine and set up the b command tool, run the following:
curl -fsSL https://adityagupta.dev/b | bash
Once bootstrapped, you can run any installer script using the b command followed by its shortcut name. You can also chain multiple installations by separating their names with a comma:
b nvim
b yazi
b nvim,yazi
What the Neovim Installer Does
The Neovim bootstrap script:
- Detects the Linux distribution.
- Installs required dependencies (
git,wget,tar). - Checks whether Neovim 0.11.7 is already installed.
- Prompts before installing or upgrading Neovim.
- Installs the official Neovim binary to
/opt/nvim. - Creates a symlink at
/usr/local/bin/nvim. - Clones my Neovim configuration into
~/.config/nvim.
What the Yazi Installer Does
The Yazi bootstrap script:
- Detects the Linux distribution.
- Prompts before installing or upgrading Yazi.
- Installs Yazi:
- Arch Linux: Installs
yazivia pacman. - Debian / Ubuntu: Downloads the latest
.debrelease package from GitHub and installs it. - Fedora: Enables the COPR repository (
lihaohong/yazi) and installsyazi(initially skipping weak dependencies).
- Arch Linux: Installs
- Subsequently installs the dependencies (
ffmpeg,7zip/p7zip-full,jq,poppler,fd/fd-find,ripgrep,fzf,zoxide,resvg,imagemagick) to make Yazi available quicker. - Configures a shell wrapper function
yin~/.bashrcand~/.zshrcthat allows changing directory on exit.
Supported distributions:
- Arch Linux
- Debian / Ubuntu
- Fedora
Philosophy
These scripts are designed for my own systems first.
That means they may make assumptions about:
- Preferred software choices
- Directory layouts
- Configuration locations
- Existing infrastructure
The scripts are intentionally straightforward Bash scripts that can be inspected and modified before execution.
Repository Structure
.
├── bootstrap.sh
├── routes.sh
└── installers/
├── install_nvim.sh
└── install_yazi.sh
Future Plans
Potential additions include:
- Development environment bootstrap
- Workstation setup
- Server provisioning
- Dotfile installation
- Container and virtualization tooling
- Personal utilities
Security
Running scripts directly from the internet is convenient but should always be approached with caution.
If you do not trust the source, inspect the script before executing it:
curl -fsSL https://git.adityagupta.dev/sortedcord/bootstrap/raw/branch/master/bootstrap.sh
curl -fsSL https://git.adityagupta.dev/sortedcord/bootstrap/raw/branch/master/routes.sh
and review the contents before piping it into a shell.
License
MIT