Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cli-stuff/dotload
๐ Simple tool for installing dotfiles on any machine!
https://github.com/cli-stuff/dotload
automation configuration dotfiles linux packages tools
Last synced: about 1 month ago
JSON representation
๐ Simple tool for installing dotfiles on any machine!
- Host: GitHub
- URL: https://github.com/cli-stuff/dotload
- Owner: cli-stuff
- License: mit
- Created: 2024-03-31T19:26:20.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-11-19T09:32:57.000Z (about 2 months ago)
- Last Synced: 2024-11-29T05:29:05.410Z (about 1 month ago)
- Topics: automation, configuration, dotfiles, linux, packages, tools
- Language: Shell
- Homepage:
- Size: 7.32 MB
- Stars: 23
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
**dotload** - **Simple** and **intuitive** tool for installing dotfiles on any machine!
[**Installation**](#%EF%B8%8F-installation) ยท [**Report Bug**](https://github.com/cli-stuff/dotload/issues/new?labels=bug&template=bug_report.md) ยท [**Request Feature**](https://github.com/cli-stuff/dotload/issues/new?labels=enhancement&template=feature_request.md)
## โน๏ธ About the project
`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 and other required 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 run without installation on **any** OS with this command:
```bash
bash <(curl -sL https://cutt.ly/dotload) @username
```If you want to install it on your system, you can run the following command:
```bash
curl -sL https://cutt.ly/dotload-install | bash
```๐๏ธ **Uninstall**:
```bash
sudo rm ${PREFIX:-/usr$([ "$(uname)" = "Darwin" ] && echo "/local")}/bin/dotload && hash -r
```> [!NOTE]
> If you want to remove this tool from **Termux**, you need to run the above command without `sudo`### Additional installation methods
Homebrew
With [**brew**](https://brew.sh/) you can install this tool on **macOS** (and **Linux** too)
> โน๏ธ Note: If you don't have [**brew**](https://brew.sh/) installed, install it **now** with this command:
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
๐ฅ **Install**:
```bash
brew tap cli-stuff/dotload
brew install dotload
```Termux
You will also receive further updates with this method
```bash
# Add Termux User Repository
pkg install tur-repo
pkg update && pkg install dotload
```### Compatibility table
|
**Linux** | **Termux** |**macOS** | **Windows** (on [msys shell](https://www.msys2.org/)) |
| :-------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| โ | โ | โ | โ |## ๐ Usage
```bash
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
```bash
dotload @username branch_name
```> [!TIP]
> You can also use `-b` or `--branch` flags:```bash
dotload @ [--branch branch_name | -b branch_name]
dotload [--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:
```bash
dotload --help
# Help page...
```### 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**](docs/dotload_conf.md)## ๐ค 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**](https://github.com/features/codespaces) right away
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/cli-stuff/dotload?quickstart=1)
This repository has โก[**prebuilds**](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/about-github-codespaces-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 RequestPlease make sure to update tests as appropriate.
Also, please read our [**Code of Conduct**](CODE_OF_CONDUCT.md), and follow it in all your interactions with the project.
## ๐ License
This project is [**MIT**](https://opensource.org/license/MIT) licensed.
See [**LICENSE**](LICENSE)
## ๐จ Contact
**Telegram:** [@okineadev](https://t.me/okineadev)