Shell Linux

Sys-Config

A powerful automation tool designed to streamline package installation across Linux distributions via JSON.

Role
Systems Automation Developer
Ownership
Independent build
Scope
Cross-distro setup
Delivery
Source + terminal demo

The Challenge

Rebuilding a Linux environment usually means repeating package installation, privilege checks, and distribution-specific commands by hand. Sys-Config turns that setup into a repeatable JSON configuration that can be used across Debian, Fedora, and Arch-based systems.

My Role

I designed and implemented the shell workflow, including package-manager detection, configuration validation, dependency bootstrapping, privilege handling, and interactive selection between different machine profiles.

What I Delivered

  • Distribution awareness: Detects and works with apt, dnf, and pacman environments.
  • Configuration-driven setup: Reads JSON profiles so laptop, server, or other setups stay reproducible.
  • Dependency bootstrapping: Installs required helpers such as jq before validating and processing the configuration.
  • Privilege handling: Adapts commands for root and sudo-based execution.
  • Flexible operation: Supports interactive profile selection and unattended workflows.

Key Decisions

  • JSON as the interface: Machine profiles remain readable, portable, and easy to version without modifying the shell program.
  • Native package managers: The tool works with each distribution's existing package system instead of adding another setup framework.
  • Validate before changing the system: Configuration checks happen before the installation workflow proceeds, reducing avoidable partial setups.

Outcome

The result is a lightweight setup utility that can reproduce useful Linux environments from a small configuration file. The terminal demo shows the full path from dependency detection and validation through profile selection and package installation.

Tech Stack

  • Automation: Bash and Linux shell tooling
  • Configuration: JSON and jq
  • Package systems: apt, dnf, and pacman