All Projects → marcospb19 → dotao

marcospb19 / dotao

Licence: BSD-3-Clause license
WIP modern dotfiles manager

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to dotao

DotFiles
Aliases, functions and shell utilities.
Stars: ✭ 22 (+46.67%)
Mutual labels:  dotfiles-manager
kirby-backup-widget
Kirby panel widget to easily backup your site content.
Stars: ✭ 25 (+66.67%)
Mutual labels:  backup
n3dr
Nexus3 Disaster Recovery (N3DR) is a tool that is capable of downloading all artifacts from a Nexus3 server and to migrate them to another Nexus3 server. Note that some repository formats are not supported at the moment.
Stars: ✭ 110 (+633.33%)
Mutual labels:  backup
linux-android-backup
Back up your device without vendor lock-ins, using insecure software or root. Supports encryption and compression out of the box. Works cross-platform.
Stars: ✭ 119 (+693.33%)
Mutual labels:  backup
github-diff-explorer
The GitHub Diff Explorer is a Chrome/Firefox extension that generates a seamless file explorer with a minimalist focus.
Stars: ✭ 27 (+80%)
Mutual labels:  organization
blackhole
🌌 A semi-temporary directory for Windows, macOS & Linux
Stars: ✭ 35 (+133.33%)
Mutual labels:  organization
BaNG
Backup Next Generation for Linux & Mac using rsync (support hardlinks and btrfs snapshots), Web-Frontend, Statistics, History-Merger)
Stars: ✭ 28 (+86.67%)
Mutual labels:  backup
PSDotFiles
Bringing simple dotfiles management to Windows with PowerShell
Stars: ✭ 55 (+266.67%)
Mutual labels:  dotfiles-manager
docker-db-backup
Backup mutltiple databases types on a scheduled basis with many customizable options
Stars: ✭ 302 (+1913.33%)
Mutual labels:  backup
terraform-aws-efs-backup
Terraform module designed to easily backup EFS filesystems to S3 using DataPipeline
Stars: ✭ 40 (+166.67%)
Mutual labels:  backup
pddcat
🐈 NSFW. Organise your porn download directory.
Stars: ✭ 42 (+180%)
Mutual labels:  organization
LifeTime
LifeTime app
Stars: ✭ 35 (+133.33%)
Mutual labels:  organization
airtable local backup
Create local backups of airtable databases
Stars: ✭ 32 (+113.33%)
Mutual labels:  backup
btrfs-backup
A simple, flexible script for versioned backups using btrfs and rsync
Stars: ✭ 59 (+293.33%)
Mutual labels:  backup
dontfiles
Personal do(n)tfiles
Stars: ✭ 20 (+33.33%)
Mutual labels:  dotfiles-manager
downstagram
Command line tool to download and backup all your Instagram photos
Stars: ✭ 32 (+113.33%)
Mutual labels:  backup
infrastructure
This repo contains all information about machine maintenance.
Stars: ✭ 75 (+400%)
Mutual labels:  backup
irsync
rsync on interval, via command line binary or docker container. Server and IOT builds for pull or push based device content management.
Stars: ✭ 19 (+26.67%)
Mutual labels:  backup
esop
Cloud-enabled backup and restore tool for Apache Cassandra
Stars: ✭ 40 (+166.67%)
Mutual labels:  backup
rbackup
Shell script for encrypted backups with rsync and GnuPG
Stars: ✭ 22 (+46.67%)
Mutual labels:  backup

See permissions AT https://github.com/marcospb19/permissions !!

THIS README IS JUST A SCRATCH, TOOL IS NOT FINISHED.

DOTÃO

dotao is a modern dotfiles manager that keeps you in control.

A dotfiles manager is a tool that helps organizing your dotfiles (configuration files), making it easy to backup, share, remove and reapply the settings.

ABOUT

It is designed to work nicely with git, because you can:

  • Monitor and revert file changes.
  • Change history is compressed.
  • Upload backups.
  • Share dotfiles with friends.

However, using it with git is optional.


dotao uses a dotao.tsml:

  • It keeps track of your dotfiles folder.
  • Allows for some specific file and folder configuration.
  • Allows for system-specific conditional layouts.
  • Is human readable and editable.

This file is updated automatically by commands, you don't have to edit manually, but you can.


dotao uses symlinks to:

  • Link imported files to their original location.
  • You can still use them as if they were there.

INSTALLATION

Installing the binary

Run this script.

curl -s https://raw.githubusercontent.com/marcospb19/dotao/master/install.sh | sh

Compiling from source

Wiki - Compiling from source.

USAGE

There are three main steps for using dotao:

  1. Creating a new ~/dotfiles/ folder.
    • Containing a dotao.tsml file.
  2. Importing your files into ~/dotfiles/.
    • Moving files and updating dotao.tsml accordingly.
  3. Linking imported files.
    • Creating symlinks to their original location.

Commands used in this tutorial for each step:

  1. dotao init
  2. dotao import
  3. dotao link

The second and third steps are repeatable.

Creating

In your user's home directory, create dotfiles/ and enter it.

mkdir dotfiles
cd dotfiles

Now ask dotao to create a dotao.tsml configuration file.

dotao init

Importing

Here's an example with zsh configuration files, to show how to easily import files to your folder.

zsh files usually stay in the home directory:

~/.zshrc
~/.aliases
~/.functions
~/.profile

In this step, we will use the import command to:

  • Create a zsh folder.
  • Move each file.
  • Update dotao.tsml with files info.

The folder will look like:

Showing the tree directory structure, dotfiles/zsh contains 4 the files inside

Files moved:

~/.aliases     ->  ~/dotfiles/zsh/.aliases
~/.functions  ->  ~/dotfiles/zsh/.functions
~/.profile   ->  ~/dotfiles/zsh/.profile
~/.zshrc    ->  ~/dotfiles/zsh/.zshrc

The command used:

dotao import zsh ~/.aliases ~/.functions ~/.profile ~/.zshrc

Linking

dotao.tsml holds all the information needed to create the links.

So let's link it!

dotao link

Now your files are accessible by your applications at the same place just like before.

(Hint: before linking, run dotao status to see a linkage report.)

Applying to other systems

Now that your files are inside of one folder, let's assume that you have uploaded to github.

Now in another system, clone your dotfiles and enter the folder:

git clone https://github.com/marcospb19/dotfiles # Use your URL
cd dotfiles

Inside of the folder, run dotao status to see if there are any conflicts:

dotao status

Once you have solved every conflict:

dotao link

Done, all your configs applied in another system.

COMMANDS

dotao usage is all based on commands (similar to how the git CLI works).

dotao COMMAND ...

Commands may accept specific subcommands, arguments and flags.

dotao init

Creates a dotao.tsml file, initiating dotfiles folder.

dotao update

TODO INFO

dotao import

Creates the necessary folders inside of ~/dotfiles/, moves the files, and updates dotao.tsml.

So dotao import is just a convenient command that merges functionality from 3 other commands:

  1. mkdir
  2. mv
  3. dotao update

dotao status

Reads dotao.tsml, scans your dotfiles folder, and displays a report of:

  • Is there something left to link?
  • Is any file missing?
  • Is there a file already in the target path?
    • Is it a file or folder?
    • If it is already a link, but points to the wrong place
  • Are multiple files pointing to a same conflicting location?

Much like git status does, it can be used at any moment.

WIKI

Check our wiki.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].