Skip to content

Latest commit

 

History

History
340 lines (233 loc) · 10.3 KB

README.md

File metadata and controls

340 lines (233 loc) · 10.3 KB

GitHub Release Date GitHub workflow status GitHub License Made with love GitHub Repo stars

Banner

dotload

dotload - This is a simple, intuitive and fast⚡ tool for installing configurations (dotfiles) and other necessary tools on any machine!

Installation · Report Bug · Request Feature

Ukrainian Polish

ℹ️ About the project

Screenshot Screenshot

dotload works by cloning the specified user's GitHub dotfiles repository

This tool was created to make it as easy as possible to install dotfiles, required development tools (such as nodejs, php, etc.) and other packages.

🤔 How does it work?

This tool makes symbolic links to your dotfiles from ~/.dotload to $HOME directory

It can also make symbolic links to folders (including subfolders) whose name starts with a dot, for example .configs

Warning

Dotfiles with identical names will be inevitably overwritten with new ones from your repository!

For example, if you have a file ~/.bashrc on your computer and in the repository, it will be overwritten with a new one from the repository, before cloning them, make sure that they are yours or you have made a backup of previous configurations

⚙️ Installation

You can install dotload using the following package managers:

apt (PPA)

You will also receive further updates with this method

sudo add-apt-repository ppa:salumin/tools
sudo apt update
sudo apt install dotload
Homebrew

With brew you can install this tool on macOS (and Linux too)

ℹ️ Note: If you don't have brew installed, install it now with this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

📥 Install:

brew tap okineadev/dotload
brew install dotload
With install.sh (Reccomended) ✅

With this method, you can install dotload on almost any system, including Termux

📥 Install:

curl -sL https://cutt.ly/dotload-install | bash

🗑️ Uninstall:

sudo rm $PREFIX/bin/dotload && hash -r

ℹ️ Note: If you want to remove this tool from Termux, you need to run the above command without sudo

From sources

With this method, you can easily modify the installation and be sure of security.

Steps to install from sources:

  1. Clone the repository
git clone https://github.com/cli-stuff/dotload.git --depth=1
  1. Go to the project folder
cd dotload
  1. Install the tools

If you don't have make installed, you need to install it:

sudo apt install make

There is also support for task.

📥 Install:

make install

💡 Tip: If you prefer to use the more modern task instead of GNU make , you can use this command:

task install

🗑️ Uninstall:

make uninstall
# Or
task uninstall
Termux

You will also receive further updates with this method

# Add Termux User Repository
pkg install tur-repo
pkg update && pkg install dotload

Or you can run without installation on any OS with this command:

bash <(curl -sL https://cutt.ly/dotload) @username

Compatibility table

Linux logo
Linux
Termux logo
Termux
macOS logomacOS logo
macOS
Windows logo
Windows (on msys shell)

🚀 Usage

dotload @username
dotload @username/repo_name
dotload https://github.com/username/dotfiles.git

Where username is the GitHub username whose dotfiles you want to clone.

repo_name - Name of your dotfiles repository, if not specified - dotfiles name will be used by default

You can also use URLs of repositories such as GitLab, Codeberg, etc.

Warning

The username cannot contain emojis, spaces or other non-standard characters

Advanced Usage

dotload @username branch_name

Tip

You can also use -b or --branch flags:

dotload @<username> [--branch branch_name | -b branch_name]
dotload <repo_url> [--branch branch_name | -b branch_name]

Where branch_name is the branch of the repository you want to clone. If not specified, the default branch is used. This can be useful if you have multiple machine usage scenarios


Use the --help flag to get help:

dotload --help
# Help page...

There is also support for manpages:

man dotload

Custom installation scripts

You can also add an installation script to your dotfiles repository to fully automate the installation and get more features

The installation file can have the following names and locations:

  • install.sh
  • install
  • bootstrap.sh
  • bootstrap
  • script/bootstrap
  • setup.sh
  • setup
  • script/setup

If none of these files are found, then any files or folders in your selected dotfiles repository starting with . are automatically symlinked to the $HOME directory.

Configuration

You can also specify a custom installation script or make it optional in dotload.conf, for this read the dotload.conf documentation

🛣️ Roadmap

  • Add multilingual README.md support
    • 🇺🇦 Ukrainian
    • 🇵🇱 Polish
    • 🇩🇪 German
  • Write instructions for developers (package assembly)
  • Rewrite the function of creating deb-packages to support different versions of Ubuntu - ❌ Closed
  • Add installation options such as Snap, AUR, RPM
    • Snap
    • AUR - ❌ Closed
    • RPM - ❌ Closed

🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

You can start developing on GitHub Codespaces right away

Open in GitHub Codespaces

This repository has ⚡prebuilds that allow you to skip installing packages and tools.

Or use the usual method on your computer:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please make sure to update tests as appropriate.

Also, please read our Code of Conduct, and follow it in all your interactions with the project.

📝 License

This project is MIT licensed.

See LICENSE

📨 Contact

Telegram: @okineadev

❤️ Support

This project is completely free and open source.

If you liked this tool - I would be very grateful if you could support me financially

Here are the details for transfers: