d9b322a1c5a2ecdf47fd1e401ac655e23e7975c6
fullupgrade
Minimal Bash tools for Arch Linux maintenance and Git release automation.
Overview
This repository contains two small Bash scripts:
fullupgrade: updates an Arch Linux system and performs cleanupmakerelease.sh: automates a Git release fromdevtomain
The project is intentionally small and focused on a simple, opinionated workflow.
Requirements
- Bash
pacmanforfullupgradegitformakerelease.sh- root privileges for
fullupgrade - a local Git repository with
devandmainbranches formakerelease.sh
fullupgrade
fullupgrade performs the following steps:
- updates
archlinux-keyring - runs a full system synchronization with
pacman -Syu --noconfirm - removes orphaned packages if any are found
- cleans the pacman cache with
pacman -Sc --noconfirm
Usage
sudo ./fullupgrade
Notes
- The script must be run as
root. - It does not ask for confirmation.
- It can remove packages and clean the package cache, so review the output carefully.
makerelease.sh
makerelease.sh automates a Git release workflow:
- checks that the current branch is
devfor real releases - verifies the working tree is clean
- optionally computes a new version from an increment shortcut
- displays the chosen release tag
- asks for confirmation before any Git action
- switches to
main - merges
devintomain - pushes
main - creates an annotated tag
- pushes tags
- switches back to the original branch on exit
Usage
./makerelease.sh VERSION
./makerelease.sh +0.0.1
./makerelease.sh +0.1
./makerelease.sh +1
./makerelease.sh --dry-run VERSION
./makerelease.sh --dry-run +0.0.1
./makerelease.sh --dry-run +0.1
./makerelease.sh --dry-run +1
Examples
./makerelease.sh 1.2.0
./makerelease.sh --dry-run +0.0.1
Notes
- Run the script from a clean, local Git repository.
- Make sure the
devbranch contains the changes you want to release. VERSIONis used directly as the tag name.- If
VERSIONstarts with+, it is treated as an increment based on the latest existing tag. --dry-runcan be used from any branch and only prints the computed tag.- In normal mode, the computed tag is shown and a confirmation is required before Git actions run.
- The script may fail if Git state is unexpected or if a tag already exists.
- The tag message is automatically generated as
Release <version>.
Status
This repository is intentionally minimal.
fullupgradeis hardened withset -euo pipefail.makerelease.shnow includes clean-tree checks, duplicate tag protection, increment shortcuts, dry-run support from any branch, and a trap to return to the original branch on exit.
License
GPLv3
Languages
Shell
100%