RDFM - The Rusty DotFiles Manager

Related tags

Utilities rdfm
Overview
                    d8888b.   d88888b.   8888888b  8888b  d8888
                    88  `8D    88   `8D   88'       88'YbdP`88 
                    88oobY'    88    88   88ooo     88  88  88 
                    88`8b      88    88   88        88      88 
                    88 `88.    88   .8D   88        88      88 
                   d88b  d88  Y88888D'   d88b      d88b    d88b
                        
                            The Rusty DotFiles Manager.
                            Copyleft (ɔ) 2021, Wafelack

Introduction

RDFM is the Rusty DotFiles Manager, based on a homemade linking system and configured by a simple file ; it is intended for everyone who needs an easy and reliable way to manage and share dotfiles.

Roadmap

  • Dotfiles adding.
  • Dotfiles linking.
  • Setup command.
  • Dotfiles pulling.
  • XDG_CONFIG_HOME support.
  • Default target name.
  • Reverse linking.

Installation

  • To install RDFM you can either:
  1. Recommended Build the project from source
  2. Run cargo install rdfm
  3. Run bruh install rdfm
  4. Download the latest binary from the releases page

Getting Started

In this guide, the $FOLDER variable will refer to your $XDG_CONFIG_HOME folder if it is set, or $HOME if it is not.

Setting up rdfm

RDFM can be set up with the command rdfm setup, that will create a $FOLDER/.dotfiles/ directory and a $FOLDER/.dotfiles/dotfiles.rdfm file.

Adding dotfiles

You can add dotfiles to the $FOLDER/.dotfiles/dotfiles.rdfm file with the rdfm add $src $dest command that can be used as following:

$ rdfm add ~/.vim/ vim/.vim
Successfully added `/home/wafelack/.vim/` to dotfiles as `vim/.vim`
$ cat ~/.dotfiles/dotfiles.rdfm
# This file is created by rdfm and is not intended for manual editing.
/home/wafelack/.vim/->/home/wafelack/.dotfiles/vim/.vim
$

Removing dotfiles

To remove dotfiles from $FOLDER/.dotfiles/dotfiles.rdfm, you can use the rdfm remove $pattern command that will remove every line containing one or more occurences of $pattern.

Proceeding linking

To proceed linking and copy your dotfiles to the $FOLDER/.dotfiles folder, you'll use the rdfm proceed command.

Pulling dotfiles

To pull dotfiles from an external repo, you can use rdfm pull $repo as following:

$ rdfm pull https://github.com/wafelack/dotfiles
Successfully pulled `https://github.com/wafelack/dotfiles` into `~/.dotfiles`
$

Contributing

Legal

RDFM is distributed under the GNU Affero General Public License version 3.0 (AGPL-3.0) as described in the LICENSE file.

Build from source

  • Clone the project: git clone [email protected]:Wafelack/rdfm.git.
  • cd in rdfm/ and run cargo build --release.
  • Add the produced binary somewhere in your $PATH.
Comments
  • [Improvement] Default target name

    [Improvement] Default target name

    By default it might be nice that the $dest of the add command is just the same directory relative to home. That is, instead of specifying rdfm add .vimrc .vimrc it could by default infer the destination from rdfm add .vimrc. Typically I'll want to use the destination file that reflects the structure in my home directory.

    enhancement 
    opened by rutrum 3
  • [Improvement] Support XDG Base Directory

    [Improvement] Support XDG Base Directory

    XDG Base Directory standard[1][2] defines a relocatable dotfile directory that keeps the home directory less cluttered. It would be great if rdfm supported reading this environment variable, and using that path if present.

    enhancement 
    opened by pandruszkow 2
  • Add Cargo.lock

    Add Cargo.lock

    Hey! You need to commit Cargo.lock file because it's a binary project. See more info here: https://doc.rust-lang.org/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries Also you can remove it from .gitignore: https://github.com/Wafelack/rdfm/blob/master/.gitignore#L2

    opened by orhun 1
  • [enhancement] A «reverse proceed» on pull

    [enhancement] A «reverse proceed» on pull

    Hello,

    It would be great if a «reverse proceed» happens on dotfile pull, id est, transfering the content of the ~/.dotfiles/ folder to the $XDG_CONFIG_HOME or $HOME folder.

    Regards, Wafelack.

    enhancement 
    opened by Wafelack 1
  • [Bug] Accidental remove of newlines when using remove command

    [Bug] Accidental remove of newlines when using remove command

    This should reproduce my issue from a new install.

    rdfm setup
    rdfm add .vimrc .vimrc
    rdfm add .vimrc vim/.vimrc
    rdfm remove vim/.vimrc
    

    That produces a rdfm file that appears invalid.

    $ cat .dotfiles/dotfiles.rdfm
    # This file is created by rdfm and is not intended for manual editing..vimrc->/home/rutrum/.dotfiles/.vimrc
    

    That is, there are no newlines in the file anymore.

    bug 
    opened by rutrum 1
Releases(0.1.1)
Owner
Wafelack
I make computer beep boop beep beep boop.
Wafelack
Rusty Armor Builds - Monster Hunter Rise Armor Set Creation Tool

RAB Rusty Armor Builds - Monster Hunter Rise Armor Set Creation Tool Armor files used by RAB

null 28 Oct 3, 2022
Rusty Rootkit: Windows Kernel Driver in Rust for Red Teamers

Windows Kernel Driver in Rust (Rusty Rootkit) for Red Teamers Features (Development in progress) Protect / unprotect process (Done) Elevate to NT AUTH

null 283 Jan 1, 2023
[DEPRECATED] password manager thing

NOTE: this is pretty much abandoned, I recommend Bitwarden now. There is an export command in the CLI that produces CSV suitable for import into Bitwa

null 312 Oct 22, 2022
Remote Secret Editor for AWS Secret Manager

Barberousse - Remote Secrets Editor About Usage Options Printing Editing Copying RoadMap 1.0 1.1 Future About A project aimed to avoid downloading sec

Mohamed Zenadi 18 Sep 28, 2021
Cross-platform bookmarks manager for your shell

shellmark: bookmark manager for shell THIS IS AN EARLY ALPHA. It works for me, but requires better UX and more polish. shellmark is a cross-platform b

Artem Pyanykh 25 Nov 10, 2022
A tiling window manager for Windows 10 based on binary space partitioning

yatta BSP Tiling Window Manager for Windows 10 Getting Started This project is still heavily under development and there are no prebuilt binaries avai

Jade 143 Nov 12, 2022
GRM — Git Repository Manager

GRM helps you manage git repositories in a declarative way. Configure your repositories in a TOML file, GRM does the rest.

Hannes Körber 32 Dec 30, 2022
A lambda extension to hot reload parameters from SSM Parameter Store, Secrets Manager, DynamoDB, AppConfig

A lambda extension to hot reload parameters from SSM Parameter Store, Secrets Manager, DynamoDB, AppConfig

Jake Scott 7 Jun 12, 2022
Minimal, flexible & user-friendly X and Wayland tiling window manager with rust

SSWM Minimal, flexible & user-friendly X and Wayland tiling window manager but with rust. Feel free to open issues and make pull requests. [Overview]

Linus Walker 19 Aug 28, 2023
A dotfiles manager, with real time fle watching and 100% less sym-links!

Kubo A dotfile manager that watches files in real time. Usage Create a directory called .kubo in $HOME, then create a file called kubo.toml in .kubo.

StandingPad 5 Jul 24, 2023
A game made for the Rusty Jam https://itch.io/jam/rusty-jam

Murder-User Dungeon Introduction Tony is a young man. Finally having its own apartment is a good thing! He will learn how to live by himself and how t

null 62 Dec 6, 2022
A tool to simplify reprovisioning a fresh OS. Installs packages and manages dotfiles.

[[TOC]] Comtrya This is better, yes? Warning This tool is ridiculously early in its development. I'm building out features as I migrate my dotfiles ov

David McKay 2 Dec 29, 2022
A tool to simplify reprovisioning a fresh OS. Installs packages and manages dotfiles.

Comtrya This is better, yes? Warning This tool is ridiculously early in its development. I'm building out features as I migrate my dotfiles over. Thos

Comtrya 272 Jan 7, 2023
🦀 Syncing dotfiles and more

DT DT allows you to sync/populate configuration files at will. It currently provides a CLI tool dt-cli. Usage The command line interface dt-cli takes

Gaoyang Zhang 17 Dec 16, 2022
Tool for managing dotfiles directories; Heavily based on rcm.

Paro paro : to prepare, get ready / set, put / furnish, supply. Tool for managing dotfiles directories; Heavily based on rcm. TODO Rust Boilerplate CI

Rafael Delboni 7 Nov 20, 2022
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
Rusty Object Notation

Rusty Object Notation RON is a simple readable data serialization format that looks similar to Rust syntax. It's designed to support all of Serde's da

ron-rs 2.3k Jan 1, 2023
A rusty dynamically typed scripting language

dyon A rusty dynamically typed scripting language Tutorial Dyon-Interactive Dyon Snippets /r/dyon Dyon script files end with .dyon. To run Dyon script

PistonDevelopers 1.5k Dec 27, 2022
rusty-donut - ASCII raymarching inside a terminal

ASCII raymarching inside a terminal

drip 14 Feb 9, 2022