Skip to content
/ mew Public

✨ A File Backup & Syncing command line tool for backing up dotfiles. 🐧

License

Notifications You must be signed in to change notification settings

ImSreyas/mew

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✨ A File Backup & Syncing command line tool for backing up dotfiles. 🐧

# dotfiles maker

What is mew

mew is a command line tool, that will help you take backup of different config files (dotfiles) and store it in the ~/dotfiles folder. Then you can push the folder to github (or any remote repo manager) for safe keeping the files. mew will help you avoid the manual copy paste of the config files in an interactive way. See in action here

Features ✨

Backup configuration files
Restore config from backup files
Sync configuration files
View files structure
Automated git push

More Details
Feature Description
Backup configuration files Take backup of each config and imp files installed in the system
Restore config from backup files Making use of the backup files
Sync configuration files Update the files to the latest version by seeing what have been changed since the last version
View files structure View the dotfiles folder structure
Automated git push Push the backup to remote repo through mew

upcoming features

Take Snapshots of config files
Target specific config files

More Details
Feature Description
Take Snapshots of config files Create multiple instance of a file on different timeline like a git commit
Target specific config files Targeting only the files we want to backup or update

Dependencies

tree

Currently supported backup

  • bash shell config
  • fish shell config
  • zsh shell config
  • aliases file
  • i3 config
  • vim config
  • kitty config
  • tmux config
  • vscode user settings
  • dnf user installed packages
  • lf config
  • vscode installed extensions
  • nvim config
  • alacritty config
  • sway
  • hyprland config
  • gitconfig
  • [ apt | pacman | aur | zypper ] (user installed packages)
  • snap (installed packages)
  • flatpak (installed packages)

How to install

Install mew

Run the installation script (./install.sh) OR run the script given below

Using git

git clone https://github.com/ImSreyas/mew.git && cd mew && sh install.sh

OR

git clone https://github.com/ImSreyas/mew.git
cd mew
sh install.sh

Using curl

curl -L -o mew.zip https://github.com/ImSreyas/mew/archive/refs/heads/main.zip && unzip mew.zip && cd mew-main && sh install.sh

OR

curl -L -o mew.zip https://github.com/ImSreyas/mew/archive/refs/heads/main.zip
unzip mew.zip
cd mew-main
sh install.sh

How to uninstall

./uninstall.sh

How to use

Run mew command in the cli to push all the dotfiles (see here) to the Dotfiles folder.

Commands

Basic commands

mew push - Push files which are changed and files which are not backed up yet (ask you for confirmation)
mew pull - Pull files from Dotfiles which are udated or not found (in its original location) to its original location (ask you for confirmation)
mew pushx - Same as mew push But it won't ask you for any confirmation, it will push everything in one go (faster version of push)
mew pullx - Same as mew pull But it won't ask you for any confirmation, it will pull everything in one go (faster version of pull)
mew show - Show the structure of Dotfiles folder (need 'tree' package)
mew remote push - Push changes in Dotfiles to remote repo (git should be configured in Dotfiles to work)

  • mew remote push 'Commit message' - To commit with a commit message
  • mew remote push - It will commit with default commit message [which is : "Dotfiles updated (from mew)"]

mew remote pull - Pull from the remote repo to Dotfiles

Preview 📸

  • push

  • pull

  • pushx

  • pullx

  • show

  • help