Tool for managing dotfiles directories; Heavily based on rcm.

Related tags

Command-line paro
Overview

Paro

paro : to prepare, get ready / set, put / furnish, supply.

Tool for managing dotfiles directories; Heavily based on rcm.

TODO

  • Rust Boilerplate
  • CI Pipeline to lint and run test
  • Base Features
    • Parse inputs using Clap
      • Add inputs to a internal settings structure
    • Parse config files
      • Add config settings to the internal settings structure
    • Option to override host name from config (-B --hostname)
    • Add defaults to the internal settings structure if nothing is defined
    • Read .dotfile folder(s) and files structure and store it
    • Consider multiple dotfiles folders configuration and reorganize file list (-a --add-dir)
    • Consider ignore files and filters then from the list (-x --exclude)
    • Consider .dot files and filters then from the list
    • Consider inclusion list for extra files and reorganize file list (-i --include)
    • Consider tags and tag folders and reorganize file list (-t --tag)
    • Consider hosts and host folders and reorganize file list
    • Make the top level files hidden in the destination file list
    • Get action list and link/copy the files
    • Dialog to ask to override existing files if already exists in your home directory but does not match the file in your dotfiles directory
    • Option to always override (-f --force)
    • Add drop/delete command, this deletes dotfiles managed by paro (-d --down)
    • Add dry-run command (-D --dry-run)
    • Add version command (-v --version)
  • CI Pipeline to build releases
    • Linux (x86_64)
    • Linux (arm)
    • Macos (x86_64)
    • Macos (arm)
  • Documentation
  • Instalation Script (Like rustup install)
  • Extras Features
    • Configuration to override the destination file path will be symlinked or copied (-n --destination)
    • Sync command (delete files that are set to be ignored) (-S --sync)
    • Create an inclusion list for already doted files in your dotfiles directory to be included as symlink or copy (-I --include-dotted)
    • Split config files in two where you have configs and ignore files in different files
  • Maybe Features
    • Execute Hooks (Pre/Post)
    • Skip hooks (-K --skip-hooks)
    • Option to always copy files instead symlinking them. (-C --copy)
    • Consider inclusion list to always copy files instead symlinking them. (-c --include-copy)
    • Option to install git hooks to run paro sync on post-commit and post-merge hooks

CLI Usage

paro [OPTIONS]

Options

-a, --add-dir

Install dotfiles directories from the . This can be repeated with additional patterns.

-B, --hostname

Override the computer hostname by . Shall return the standard host name for the current machine.

-d, --down

Remove all the rc files that the paro suite knows about, This can be further controlled with the -t, -B and -a flags.

-D, --dry-run

Shows what paro would do without causing the effects. A simulated or practice performance; rehearsal.

-f, --force

Override if the file already exists in your home directory, does not prompt for how to handle it.

-h, --help

Print help information

-i, --include

Install files that match . Despite being excluded by the -x flag or a setting in the config. This can be repeated with additional patterns.

-n, --destination

Override the destination folder by . By default this value is the current user home directory.

-t, --tag

Do not install files that match . Tagged files go in a directory named for the tag, prefixed with tag-. Therefore, files under .dotfiles/tag-git are only installed when installing using the git tag. This can be repeated with additional patterns.

-V, --version

Print version information

-x, --exclude

Do not install files that match . This can be repeated with additional patterns.

Note: paro -h prints a short and concise overview while paro --help gives all details.

Contributing

If you find any dead links, misinformation or any improvements in this software at all Emails, PRs and Issues are highly encouraged.

License

This is free and unencumbered software released into the public domain.
For more information, please refer to http://unlicense.org

You might also like...
Quickly find all blackhole directories with a huge amount of filesystem entries in a flat structure
Quickly find all blackhole directories with a huge amount of filesystem entries in a flat structure

findlargedir About Findlargedir is a tool specifically written to help quickly identify "black hole" directories on an any filesystem having more than

Semi-persistent, scoped test directories

Semi-persistent, scoped test directories This crate aims to make it easier to use temporary directories in tests, primarily by calling the testdir!()

Wraps cargo to move target directories to a central location [super experimental]

targo Wraps cargo to move target directories to a central location [super experimental] To use, cargo install --git https://github.com/sunshowers/targ

Temporary files and directories with UTF-8 paths.

camino-tempfile A secure, cross-platform, temporary file library for Rust with UTF-8 paths. This crate is a wrapper around tempfile that works with th

Bookmark directories for easy directory-hopping in the terminal
Bookmark directories for easy directory-hopping in the terminal

markd Bookmark directories for easy directory-hopping in the terminal. All it takes is one command markd to bookmark your current directory, or use th

Utility to display a tree view of directories.

TreeCraft v0.2.3 (16 October 2023) TreeCraft is a command-line utility written in pure Rust that helps you visualize directory structures in ASCII for

Remove files or directories.

Wrm - Remove files or directories Installation Run the following Cargo command: cargo install wrm Usage To move files to trash($HOME/.local/share/wrm

A utility for managing cargo dependencies from the command line.

cargo edit This tool extends Cargo to allow you to add, remove, and upgrade dependencies by modifying your Cargo.toml file from the command line. Curr

An utility application to help managing your C++ OI workspaces.

oi_helper oi_helper is an utility application to help managing your C++ OI workspaces. Why oi_helper We all know that we often need a project manager

Releases(0.0.1)
  • 0.0.1(Sep 6, 2022)

    What's Changed

    • feat: Adds basic rust arg+config boilerplate by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/1
    • feat: Adds lint&test CI by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/2
    • feat: Adds tags parsers by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/3
    • feat: Adds defaults for config files and host by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/4
    • docs: Adds docs about cli usage by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/5
    • feat: Read .dotfile folder(s) and files structure and store it by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/6
    • feat: Consider ignore files and filters then from the list by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/7
    • refact: Add Configuration to override the destination by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/8
    • refact: Introduces a better default logic by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/9
    • refact: Moves Settings to its own file by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/10
    • feat: Read includes and include files by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/11
    • feat: Consider tags & hostname folders by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/12
    • refact: Simplify select-files a lil by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/13
    • refact: Better folder structure and new settings by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/14
    • test: Adds depths calc tests by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/15
    • feat: Hide files on top level by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/16
    • feat: Adds teminal helper to ask user by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/17
    • test: Using faketty action to run tests by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/18
    • Add verbosity command by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/19
    • docs: Adds config and defauls & move todos by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/20
    • feat: Add drop/delete command by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/21
    • feat: Adds pipeline to build bins by @rafaeldelboni in https://github.com/rafaeldelboni/paro/pull/22

    New Contributors

    • @rafaeldelboni made their first contribution in https://github.com/rafaeldelboni/paro/pull/1

    Full Changelog: https://github.com/rafaeldelboni/paro/commits/0.0.1

    Source code(tar.gz)
    Source code(zip)
    paro-0.0.1-aarch64-apple-darwin.zip(651.00 KB)
    paro-0.0.1-aarch64-unknown-linux-gnu.zip(727.18 KB)
    paro-0.0.1-x86_64-apple-darwin.zip(688.18 KB)
    paro-0.0.1-x86_64-unknown-linux-gnu.zip(775.54 KB)
Owner
Rafael Delboni
:%s/bio/developer/gi
Rafael Delboni
No non-sense dotfiles linker

dotlink A simple program that can help you link all your dotfiles in place. Supports multiple presets, in order to avoid linking every file in every m

null 26 Apr 19, 2023
Manage your dotfiles and packages with ease. Define your $HOME as Code 💻 🚀 ✨

EnvHub is a simple tool to manage dotfiles and packages accross multiple machines. Written in Rust, internally it uses nix/homebrew/pkgx/devbox to man

Tsiry Sandratraina 8 Oct 27, 2023
A cli tool to download specific GitHub directories or files

cloneit A cli tool to download specific GitHub directories or files. Installation From git git clone https://github.com/alok8bb/cloneit cd cloneit car

Alok 54 Dec 20, 2022
Voila is a domain-specific language launched through CLI tool for operating with files and directories in massive amounts in a fast & reliable way.

Voila is a domain-specific language designed for doing complex operations to folders & files. It is based on a CLI tool, although you can write your V

Guillem Jara 86 Dec 12, 2022
RnR is a command-line tool to securely rename multiple files and directories that supports regular expressions

RnR is a command-line tool to securely rename multiple files and directories that supports regular expressions. Features Batch rename files and direct

Ismael González Valverde 219 Dec 31, 2022
A minimalist tool for managing block-lists from the terminal.

Block List A minimalist hosts-based tool for managing block lists and ad-blocking. This project uses the excellent and regularly updated Unified Hosts

Oliver Brotchie 7 Aug 14, 2022
A fast and robust MLOps tool for managing data and pipelines

xvc A Fast and Robust MLOps Swiss-Army Knife in Rust ⌛ When to use xvc? Machine Learning Engineers: When you manage large quantities of unstructured d

Emre Sahin 6 Dec 15, 2022
A Modern And Secure CLI Tool For Managing Environment Variables

Envio is a command-line tool that simplifies the management of environment variables across multiple profiles. It allows users to easily switch between different configurations and apply them to their current environment

Humble Penguin 536 Apr 16, 2023
booky is a minimalstic Tui tool for managing your growing book collection.

booky booky is a minimalistic TUI tool for managing your growing book collection. It is writtin in Rust and uses diesel as it's orm together with sqli

null 3 Jul 21, 2023
Find and clean heavy build or cache directories.

ProjClean Find and clean heavy build or cache directories. ProjClean finds directories such as node_modules(node), target(rust), build(java) and their

null 42 Sep 25, 2022