Git Product home page Git Product logo

sdfm's Introduction

sdfm - Simple Dotfile Manager

sdfm is a Simple Dotfile Manager, written in Rust.

It uses a git repo to sync your chosen dotfiles, with different devices using different branches but able to sync with the master branch (i.e. to push and pull some changes upstream whilst maintaining device-specific differences for resolution settings, etc.)

Current status

sdfm init works to upload the current state of your dotfiles to a repo with SSH authentication. The SSH passphrase should be passed in the SSH_PASSPHRASE environment variable:

SSH_PASSPHRASE="password" ./sdfm init https://gitlab.com/username/sdfm-dotfiles.git -t master

Currently the only default dotfiles scanned for is the i3 config.

TODO:

  • Make sdfm init work for both empty (no prior commits) and non-empty repos.
  • Implement sdfm pull to set up sdfm using an existing sdfm dotfiles repo, on a new machine (i.e. to copy your dotfiles from another machine).
  • Make sdfm init and sdfm pull correctly obey base and target branch arguments.
  • Implement sdfm sync to sync locally modified dotfiles with target branch (and merge with upstream branch if requested).
  • Do not directly write to dotfiles in case of merge conflicts, but force resolution by user first.
  • Add option to sdfm sync to only merge in changes without writing to remote branches.
  • Implement sdfm edit to edit list of dotfiles being tracked in current branch.
  • Add logging, enabled with verbose flag.
  • Add headless argument to sdfm init, to not trigger interactive edits with $EDITOR. This should be mandatory if not running in TTY.
  • Add argument to sdfm init to provide dotfiles list to be tracked, for headless mode.
  • Add context to error messages.
  • Add cleanup when in error state.
  • Add sdfm clean command to remove current sdfm configuration.

sdfm's People

Contributors

jamesmcm avatar

Stargazers

Ethan Fritz avatar Nic FitzGerald avatar GAURAV avatar

Watchers

 avatar James Cloos avatar  avatar

Forkers

hooneun

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.