Backup Formats

Pathmaster creates and manages backups of your PATH environment variable to ensure you can recover from unintended changes. This page details the backup formats and storage mechanisms.

Backup Storage Location

By default, pathmaster stores all backups in:

~/.pathmaster/backups/

This directory is created automatically when you first run a command that modifies your PATH.

PATH Backup Format

PATH backups are stored as JSON files with the naming pattern:

backup_YYYYMMDDHHMMSS.json

Where YYYYMMDDHHMMSS is the timestamp when the backup was created.

JSON Structure

Each backup file contains a simple JSON structure:

{
  "timestamp": "20250402150432",
  "path": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/home/user/bin"
}

The file includes:

  • timestamp: When the backup was created (format: YYYYMMDDHHMMSS)

  • path: The complete PATH string at the time of backup

Shell Configuration Backups

When pathmaster modifies your shell configuration files, it first creates backup copies with the extension .bak and timestamp:

~/.bashrc.bak_20250402150432

These backups preserve your original shell configuration before any modifications.

Backup Modes

Pathmaster supports different backup modes to control what gets backed up:

  • Default: Both PATH and shell configurations are backed up

  • Path Only: Only the PATH environment variable is backed up

  • Shell Only: Only shell configuration files are backed up

  • Switch: Toggle between Path Only and Shell Only modes

You can set the backup mode with the --backup-mode flag:

pathmaster --backup-mode path add ~/bin

Listing Backups

You can view all available backups with:

pathmaster history

This command displays a chronological list of backups with their timestamps, allowing you to choose which backup to restore.

Restoring from Backups

To restore from a backup, use:

# Restore from the most recent backup
pathmaster restore

# Restore from a specific backup by timestamp
pathmaster restore --timestamp 20250402150432