╔═╗╔═╗╔╦╗╦ ╦╔═╗ ╚═╗║╣ ║ ║ ║╠═╝ ╚═╝╚═╝ ╩ ╚═╝╩ Cross-platform file synchronizer
Still in early development and not stable, please be careful if you plan to try it.
This program allows you to automatically update your development ecosystem
(file structure hierarchy, git repo, dotfiles, etc) from or to this repository,
making your tools and directories deployment faster while switching environments
or computers.
Working on Linux and Windows, but BSD and Mac will soon be available.
This repository currently uses my configuration. If you want this to work on your side, you should fork or copy to configure it the way you want it to work.
- All plaftorms: Python 3
- Windows: Powershell 7
Linux
bash -c "cd $HOME && git clone [email protected]:algadea/.setup.git \
&& cd .setup && python initialization.py"
Windows
Invoke-Expression 'Set-Location $HOME;
git clone [email protected]:algadea/.setup.git;
Set-Location .\.setup\;
python initialization.py'
BSD
Work in progress...
Mac
Work in progress...
This is the complete list of dotfiles and config that are used in this script.
- Alias
- Directory
- Editor: Vim | Neovim | Vscode
- Font
- Git
- Shell: Bash | Fish | Powershell | Zsh
- Terminal Emulator: Alacritty | Gnome-terminal | Terminator | Windows-terminal
- Terminal Multiplexer: Tmux
- Terminal Prompt: Starship
Precise all the repo that you want to setup in your HOME in the dir.conf file stored in dotfiles/directory.
- this dir.conf
$HOME/Dev/42/42API [email protected]:algadea/42API.git
$HOME/Dev/42/Common-Core [email protected]:algadea/Common-core.git
$HOME/Dev/Github/algadea [email protected]:algadea/algadea.git
$HOME/Dev/Project/AdventOfCode [email protected]:algadea/AdventOfCode.git
$HOME/Dev/Project/Exercism [email protected]:algadea/Exercism.git
$HOME/Dev/Project/Portfolio [email protected]:algadea/Portfolio.git
$HOME/Dev/Template [email protected]:algadea/Template.git
- should give
HOME/ └── Dev/ ├── 42/ │ ├── 42API/ │ └── Common-core/ ├── Github/ │ └── algadea ├── Project/ │ ├── AdventOfCode/ │ ├── Exercism/ │ └── Portfolio/ └── Template/
- install the script binary into the $HOME/.local/bin directory
- install all the doftiles and config locally
- git clone all repositories specified in dir.conf locally
- update all local dotfiles by checking if there are differences with the ones stored into the setup directory
- update all local git repositoriesstored in the dir.conf file by using
git pull
in their respective directory
- if possible, update all remote repo from directories specified in the dir.conf
file by performing:
git add . && git commit -m "Update files" && git push origin
- update all dotfiles and config stored into the setup directory then push everything to the remote directory of this script
These are futures options that will give more functionalities to this script
- setup --set-dir
Work in progress...
- setup --unset-dir
Work in progress...
- setup --set-font
Work in progress...
- setup --unset-font
Work in progress...