### Example of Mackup Link Install Steps for Git Source: https://github.com/lra/mackup/blob/master/README.md Illustrates the sequence of operations performed when 'mackup link install' is executed for the git application, assuming Dropbox is configured as the Mackup folder. ```bash cp ~/.gitconfig ~/Dropbox/Mackup/.gitconfig rm ~/.gitconfig ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig ``` -------------------------------- ### Install uv and Run Tests Source: https://github.com/lra/mackup/blob/master/tests/README.md Use this command to install the uv tool and then execute the test suite. ```bash brew install uv make test ``` -------------------------------- ### Example Test Output Source: https://github.com/lra/mackup/blob/master/tests/README.md This is an example of the expected output after running the tests successfully. ```text . ---------------------------------------------------------------------- Ran 1 test in 0.016s OK ``` -------------------------------- ### Mackup Link Install Flow Diagram (Legacy) Source: https://github.com/lra/mackup/blob/master/doc/ARCHITECTURE.md Details the steps involved in the legacy 'mackup link install' command, which moves files to the Mackup folder and creates symbolic links in their original locations. ```text User runs: mackup link install ↓ main.py parses command ↓ config.py loads .mackup.cfg ↓ appsdb.py loads application definitions ↓ mackup.py iterates through applications ↓ application.py for each app: - Moves config files to Mackup storage folder - Creates symlinks from original location to storage ↓ Files in storage: ~/Dropbox/Mackup/ Symlinks in home: ~/.config → ~/Dropbox/Mackup/.config ``` -------------------------------- ### Install Mackup with Homebrew Source: https://github.com/lra/mackup/blob/master/README.md Use this command to install Mackup on macOS or Linux systems that have Homebrew installed. After installation, run 'mackup backup' to initiate the backup process. ```bash # Install Mackup brew install mackup # Launch it and back up your files mackup backup ``` -------------------------------- ### Install uv and Run Mackup Source: https://github.com/lra/mackup/blob/master/doc/develop.md Installs the uv tool for dependency management and packaging in Python. After installation, you can edit files and check the project version or run tests. ```sh # Install the tool for dependency management and packaging in Python pipx install uv You can now edit files and see the impact of your changes uv run mackup --version make test ``` -------------------------------- ### Install Links for Application Settings with Mackup Source: https://github.com/lra/mackup/blob/master/README.md This command installs symbolic links for your application settings, pointing from their original locations to the files within your Mackup folder. This is the primary command for setting up synced configurations in link mode. ```bash mackup link install ``` -------------------------------- ### Add New Application Configuration Source: https://github.com/lra/mackup/blob/master/doc/ARCHITECTURE.md Example of an INI-style configuration file for adding a new application to Mackup. This defines application name and paths for configuration files. ```ini [application] name = My Application [configuration_files] .myapprc .myapp/ [xdg_configuration_files] myapp/config.yml ``` -------------------------------- ### Link Install Specific Application Source: https://github.com/lra/mackup/blob/master/README.md Move local config files to the Mackup folder and create symbolic links. Note: The 'link' strategy may not work correctly on macOS. ```bash mackup link install [application] ``` -------------------------------- ### Install Mackup with PIP Source: https://github.com/lra/mackup/blob/master/README.md Install Mackup using pip if you are not on macOS/Linux or prefer not to use Homebrew. Ensure pip is installed and up-to-date. Run 'mackup backup' after installation. ```bash # Install Mackup with PIP pip install --upgrade mackup # Launch it and back up your files mackup backup ``` -------------------------------- ### Install Mackup with Homebrew Source: https://github.com/lra/mackup/blob/master/INSTALL.md Use this command for a straightforward installation of Mackup on macOS and GNU/Linux systems via Homebrew. After installation, verify by running 'mackup -h'. ```bash brew install mackup mackup -h ``` -------------------------------- ### Configure File System Storage with Custom Path and Directory Source: https://github.com/lra/mackup/blob/master/doc/README.md Example of configuring file system storage with a specific path and a custom directory name for Mackup files. ```ini [storage] engine = file_system path = dotfiles directory = backup ``` -------------------------------- ### Example of Mackup Link Command for Git Source: https://github.com/lra/mackup/blob/master/README.md Demonstrates the core action of the 'mackup link' command, which is to create a symbolic link from the application's configuration file to its location in the Mackup folder. ```bash ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig ``` -------------------------------- ### Get Help Source: https://github.com/lra/mackup/blob/master/README.md Display the help message for Mackup, providing information on available commands and options. ```bash mackup -h ``` -------------------------------- ### Install Mackup with PIP Source: https://github.com/lra/mackup/blob/master/INSTALL.md Install Mackup using Python's package installer (PIP). This method is an alternative to Homebrew for macOS and GNU/Linux. Run 'mackup -h' to confirm the installation. ```bash pip install mackup mackup -h ``` -------------------------------- ### Restore Files with Homebrew Source: https://github.com/lra/mackup/blob/master/README.md On a new workstation, use this command to install Mackup via Homebrew and then restore your backed-up application files. This command assumes Mackup is already installed. ```bash # Install Mackup brew install mackup # Launch it and restore your files mackup restore ``` -------------------------------- ### List Supported Mackup Applications Source: https://github.com/lra/mackup/blob/master/doc/configuration_merge_guide.md Run `mackup list` to get a comprehensive list of applications that Mackup supports for configuration syncing. ```bash mackup list ``` -------------------------------- ### Custom File Synchronization Configuration Source: https://github.com/lra/mackup/blob/master/doc/ARCHITECTURE.md Example of a custom configuration file for syncing arbitrary files and directories. This allows users to extend Mackup beyond supported applications. ```ini [application] name = My Custom Files [configuration_files] .custom_file custom_directory/ ``` -------------------------------- ### Develop Mackup Locally Source: https://github.com/lra/mackup/blob/master/doc/README.md Use 'make develop' to replace the installed Mackup with your local modifications for testing. ```bash make develop ``` -------------------------------- ### Create Symbolic Links for Application Settings with Mackup Source: https://github.com/lra/mackup/blob/master/README.md This command creates symbolic links for your application settings, pointing from their original locations to the files within your Mackup folder. It's a simplified version of 'mackup link install' that only creates the links. ```bash mackup link ``` -------------------------------- ### Install Mackup from Homebrew Master Branch Source: https://github.com/lra/mackup/blob/master/INSTALL.md Install the latest development version of Mackup directly from the Homebrew master branch. This is useful for accessing the newest features before they are officially released. Note the command to switch to the master branch if needed. ```bash # Install master brew install --HEAD # Check if you are using the master or stale package brew switch mackup mackup -h ``` -------------------------------- ### Upgrade Mackup with PIP Source: https://github.com/lra/mackup/blob/master/INSTALL.md Upgrade Mackup to the latest version using PIP. This command ensures you have the most recent release installed. Check the installation with 'mackup -h'. ```bash pip install --upgrade mackup mackup -h ``` -------------------------------- ### Uninstall Mackup with PIP Source: https://github.com/lra/mackup/blob/master/INSTALL.md Uninstall Mackup using Python's package installer (PIP). ```bash pip uninstall mackup ``` -------------------------------- ### Uninstall Links for a Specific Application with Mackup Source: https://github.com/lra/mackup/blob/master/README.md To revert only a single application's settings, provide the application name to the 'mackup link uninstall' command. This unlinks only that specific app, leaving the rest of your setup and Mackup configuration intact. ```bash mackup link uninstall git ``` -------------------------------- ### Copy Mackup Configuration Sample Source: https://github.com/lra/mackup/blob/master/doc/README.md Copy the sample .mackup.cfg file to your home directory. ```bash cp mackup/doc/.mackup.cfg ~/ ``` -------------------------------- ### Sample Backup Commands for Machine A Source: https://github.com/lra/mackup/blob/master/doc/configuration_merge_guide.md Use these commands to back up bash configuration files on Machine A before merging. ```bash mkdir ~/bash_backup cp ~/.bash_profile ~/bash_backup/bash_profile.bak cp ~/.bash_login ~/bash_backup/bash_login.bak ...plus any other bash config files you want to keep ``` -------------------------------- ### List Supported Applications Source: https://github.com/lra/mackup/blob/master/doc/README.md Run 'mackup list' to verify that your newly added applications are recognized. ```bash $ mackup list Supported applications: [...] - my-files - nethack [...] ``` -------------------------------- ### Create Mackup Configuration Directories Source: https://github.com/lra/mackup/blob/master/doc/README.md Use these commands to create the necessary directories for custom Mackup configurations in your home directory. ```bash mkdir ~/.mackup touch ~/.mackup/nethack.cfg touch ~/.mackup/my-files.cfg ``` -------------------------------- ### Configure Mackup to Sync an Application Source: https://github.com/lra/mackup/blob/master/doc/configuration_merge_guide.md Add the application name to the `.mackup.cfg` file to specify which application's configurations should be synced. ```text [applications_to_sync] bash ``` -------------------------------- ### Create XDG Configuration Directory Source: https://github.com/lra/mackup/blob/master/doc/README.md For XDG-compliant systems, create the Mackup applications directory within ~/.config. ```bash mkdir -p ~/.config/mackup/applications touch ~/.config/mackup/applications/nethack.cfg ``` -------------------------------- ### Configure Custom Files and Directories Source: https://github.com/lra/mackup/blob/master/doc/README.md Configure Mackup to sync custom files and directories like bin, .hidden, and .gitignore. ```ini [application] name = My personal synced files and dirs [configuration_files] bin .hidden .gitignore ``` -------------------------------- ### Open Mackup Configuration File Source: https://github.com/lra/mackup/blob/master/doc/README.md Use this command to open the Mackup configuration file in your home directory using the 'vi' editor. ```bash vi ~/.mackup.cfg ``` -------------------------------- ### Mackup Restore Flow Diagram Source: https://github.com/lra/mackup/blob/master/doc/ARCHITECTURE.md Outlines the process when the 'mackup restore' command is executed, showing how configuration files are retrieved from storage and placed back into the user's home directory. ```text User runs: mackup restore ↓ main.py parses command ↓ config.py loads .mackup.cfg ↓ appsdb.py loads application definitions ↓ mackup.py iterates through applications ↓ application.py for each app: - Finds files in Mackup storage folder - Copies to home directory - Preserves permissions and timestamps ↓ Config files now in home directory ``` -------------------------------- ### Configure Google Drive Storage Source: https://github.com/lra/mackup/blob/master/doc/README.md Set the storage engine to 'google_drive' in the .mackup.cfg file to use Google Drive for storing configuration files. ```ini [storage] engine = google_drive ``` -------------------------------- ### Configure Dropbox Storage Source: https://github.com/lra/mackup/blob/master/doc/README.md Set the storage engine to 'dropbox' in the .mackup.cfg file to use Dropbox for storing configuration files. ```ini [storage] engine = dropbox ``` -------------------------------- ### Configure Nethack Application Source: https://github.com/lra/mackup/blob/master/doc/README.md Define the application name and configuration files for Nethack in its Mackup config file. ```ini [application] name = Nethack [configuration_files] .nethackrc ``` -------------------------------- ### Configure OpenSSH Directory Sync Source: https://github.com/lra/mackup/blob/master/doc/syncing-private-keys.md To sync your entire OpenSSH .ssh directory, create a ~/.mackup/ssh.cfg file with this content. This specifies the application name and the configuration files to sync. ```ini [application] name = SSH [configuration_files] .ssh ``` -------------------------------- ### Mackup File Structure Overview Source: https://github.com/lra/mackup/blob/master/doc/ARCHITECTURE.md This outlines the directory and file structure of the Mackup project, including the main Python modules, utility scripts, and the application configuration directory. ```text mackup/ ├── main.py # CLI entry point ├── mackup.py # Core orchestration engine ├── config.py # Configuration management ├── appsdb.py # Application database ├── application.py # Per-application operations ├── utils.py # Utility functions ├── constants.py # Constants and defaults └── applications/ # Built-in app configs ├── git.cfg ├── vim.cfg ├── ssh.cfg └── ... (600+ more) ``` -------------------------------- ### Link Specific Application Source: https://github.com/lra/mackup/blob/master/README.md On another workstation, create symbolic links to local config files from the Mackup folder. This command is used for linking a single application's configuration. ```bash mackup link [application] ``` -------------------------------- ### Configure Git Application with XDG Paths Source: https://github.com/lra/mackup/blob/master/doc/README.md Use the 'xdg_configuration_files' section for Git configuration files located in the XDG config directory. ```ini [application] name = Git [configuration_files] .gitconfig [xdg_configuration_files] git/config git/ignore git/attributes ``` -------------------------------- ### Restore Specific Application Source: https://github.com/lra/mackup/blob/master/README.md Restore configuration files for a single application on a new workstation. This command is useful for targeted restoration. ```bash mackup restore [application] ``` -------------------------------- ### Application Configuration File Format Source: https://github.com/lra/mackup/blob/master/doc/ARCHITECTURE.md Defines the structure for application-specific configuration files used by Mackup. Supports specifying application name, configuration files, and XDG configuration files. ```ini [application] name = Application Name [configuration_files] .config_file folder/ [xdg_configuration_files] app/config ``` -------------------------------- ### Mackup Backup Flow Diagram Source: https://github.com/lra/mackup/blob/master/doc/ARCHITECTURE.md Illustrates the sequence of operations when a user initiates the 'mackup backup' command, detailing the interaction between different Mackup components. ```text User runs: mackup backup ↓ main.py parses command ↓ config.py loads .mackup.cfg ↓ appsdb.py loads application definitions ↓ mackup.py iterates through applications ↓ application.py for each app: - Finds config files in home directory - Copies to Mackup storage folder - Preserves permissions and timestamps ↓ Files now in: ~/Dropbox/Mackup/ (or chosen storage) ``` -------------------------------- ### Edit Configuration Files with Vim Source: https://github.com/lra/mackup/blob/master/doc/configuration_merge_guide.md Use vim to edit and merge configuration files on the master machine. ```bash vim .bash_profile vim .bash_login ``` -------------------------------- ### Backup Application Settings with Mackup Source: https://github.com/lra/mackup/blob/master/README.md Use the 'mackup backup' command to back up your application configuration files to the configured Mackup folder. This is part of the copy mode operation. ```bash mackup backup ``` -------------------------------- ### Configure File System Storage Source: https://github.com/lra/mackup/blob/master/doc/README.md Use the 'file_system' engine and specify a 'path' to store configuration files in a custom directory. The path can be absolute or relative to your home directory. ```ini [storage] engine = file_system path = some/folder/in/your/home # or path = /some/folder/in/your/root ``` -------------------------------- ### Specify Applications to Sync Source: https://github.com/lra/mackup/blob/master/doc/README.md Add application names to the '[applications_to_sync]' section in .mackup.cfg to only sync specific applications. ```ini # Example, to only sync SSH and Adium: [applications_to_sync] ssh adium ``` -------------------------------- ### Backup Specific Application Source: https://github.com/lra/mackup/blob/master/README.md Back up configuration files for a single application. This overrides global settings in your .mackup.cfg. ```bash mackup backup [application] ``` -------------------------------- ### Automated Release Commands Source: https://github.com/lra/mackup/blob/master/doc/release.md Use these `make` commands to automate the release process. Specify `BUMP` for version increments (patch, minor, major) or `VERSION` to pin an exact version. This process includes checks, version bumping, lockfile syncing, committing, tagging, and pushing. ```sh make release # patch: 0.10.3 -> 0.10.4 (bug fixes) ``` ```sh make release BUMP=minor # minor: 0.10.3 -> 0.11.0 (new features) ``` ```sh make release BUMP=major # major: 0.10.3 -> 1.0.0 (breaking changes) ``` ```sh make release VERSION=1.2.3 # pin an exact version, no arithmetic ``` -------------------------------- ### Dry Run Mackup Backup Source: https://github.com/lra/mackup/blob/master/doc/configuration_merge_guide.md Use the `--dry-run --verbose backup` command to preview which configuration files Mackup will back up for an application without making any changes. ```bash mackup --dry-run --verbose backup ``` -------------------------------- ### Run Tests with Coverage Source: https://github.com/lra/mackup/blob/master/doc/develop.md Commands to execute tests with coverage reporting. This includes running tests, generating a terminal report, and opening an HTML report in the browser. ```sh # Run tests with coverage make coverage # View coverage report in terminal make coverage-report # Open HTML coverage report open htmlcov/index.html ``` -------------------------------- ### Preview Version Bump Source: https://github.com/lra/mackup/blob/master/doc/release.md Preview a version bump without making any changes to the project files. This command runs checks, bumps the version, syncs the lockfile, and commits, tags, and pushes. ```sh uv version --bump --dry-run ``` -------------------------------- ### Upgrade Mackup with Homebrew Source: https://github.com/lra/mackup/blob/master/INSTALL.md Update your Homebrew packages and then upgrade Mackup to the latest available version. Verify the upgrade by running 'mackup -h'. ```bash brew update brew upgrade mackup -h ``` -------------------------------- ### Configure iCloud Storage Source: https://github.com/lra/mackup/blob/master/doc/README.md Set the storage engine to 'icloud' in the .mackup.cfg file to store configuration files in the iCloud Drive folder. ```ini [storage] engine = icloud ``` -------------------------------- ### Specify Custom Configuration File Source: https://github.com/lra/mackup/blob/master/doc/README.md Use the `--config-file` option to specify a custom location for your Mackup configuration file when running commands. ```bash mackup --config-file ~/.mackup-custom.cfg backup ``` -------------------------------- ### Revert to Official Mackup Version Source: https://github.com/lra/mackup/blob/master/doc/README.md Run 'make undevelop' to revert to the official Mackup version after local testing. ```bash make undevelop ``` -------------------------------- ### Restore Application Settings with Mackup Source: https://github.com/lra/mackup/blob/master/README.md Use the 'mackup restore' command to restore your application configuration files from the configured Mackup folder. This is part of the copy mode operation. ```bash mackup restore ``` -------------------------------- ### Link Uninstall Specific Application Source: https://github.com/lra/mackup/blob/master/README.md Copy synced config files back to their original locations and remove symbolic links. Scoping to an application skips the global uninstall confirmation. ```bash mackup link uninstall [application] ``` -------------------------------- ### Specify Applications to Ignore Source: https://github.com/lra/mackup/blob/master/doc/README.md Add application names to the '[applications_to_ignore]' section in .mackup.cfg to prevent syncing specific applications. ```ini # Example, to not sync SSH and Adium: [applications_to_ignore] ssh adium ``` -------------------------------- ### Uninstall All Mackup Links Source: https://github.com/lra/mackup/blob/master/README.md This command initiates the process of reverting all linked application settings to their original state. It removes symlinks and copies files back from the Mackup directory. ```bash # Just run this mackup link uninstall ``` -------------------------------- ### Uninstall Links for Application Settings with Mackup Source: https://github.com/lra/mackup/blob/master/README.md This command reverts your application settings by removing symbolic links and copying files back from the Mackup folder to their original locations. The Mackup folder and its contents are preserved. ```bash mackup link uninstall ``` -------------------------------- ### Configure Custom Directory for iCloud Storage Source: https://github.com/lra/mackup/blob/master/doc/README.md Specify a custom directory name within iCloud Drive for Mackup files. ```ini [storage] engine = icloud directory = .config/mackup ``` -------------------------------- ### Uninstall Mackup with Homebrew Source: https://github.com/lra/mackup/blob/master/INSTALL.md Remove Mackup from your system using the Homebrew package manager. ```bash brew uninstall mackup ``` -------------------------------- ### Perform Code Quality Checks Source: https://github.com/lra/mackup/blob/master/doc/develop.md Executes various code quality checks including linting, type checking, unit tests, and coverage tests. Individual checks can also be run. ```sh # Run all checks (ruff, mypy, pytest) make check # Run individual checks make ruff # Code linting make mypy # Type checking make test # Unit tests make coverage # Tests with coverage ``` -------------------------------- ### Monitor iCloud Sync Source: https://github.com/lra/mackup/blob/master/doc/README.md Use this command to monitor if your iCloud files are being synced. ```sh brctl monitor com.apple.CloudDocs ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.