https://github.com/emilte/home
Setup for home directory
https://github.com/emilte/home
bash git shell
Last synced: 2 months ago
JSON representation
Setup for home directory
- Host: GitHub
- URL: https://github.com/emilte/home
- Owner: emilte
- Created: 2022-06-05T18:36:58.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-20T15:46:13.000Z (over 2 years ago)
- Last Synced: 2024-03-20T17:00:28.268Z (over 2 years ago)
- Topics: bash, git, shell
- Language: Python
- Homepage:
- Size: 142 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Home sweet home
I've finally published my local setup, [check it out](https://youtu.be/pqky5B179nM?t=73)!
## Sandbox
If you want a preview of this setup, you should try this!
I have provided a simple Dockerfile [/DockerFile](/DockerFile) for sandbox testing.
Command to open a new container (can safely be repeated):
> NOTE: This does not run the installation, continue in the section [for other users](#for-non-emil-users).
```sh
cd ~ && rm -rf /tmp/docker-home-testing && mkdir /tmp/docker-home-testing && cd /tmp/docker-home-testing && curl -LJO https://raw.githubusercontent.com/emilte/home/master/Dockerfile && docker build --force-rm --rm -t home-test . ; docker run -it home-test
```
> This command will:
>
> 1. Create a temporary directory in `/tmp/docker-home-testing`.
> 2. Fetch Dockerfile.
> 3. Build image and run container.
If you only want the last part of starting a new clean container (can safely be repeated):
```sh
docker build --force-rm --rm -t home-test . ; docker run -it home-test
```
> Does only step 3 above.
## Full installation:
Dedicated to myself, you should probably see the section [for other users](#for-non-emil-users).
> WARNING: This command will ensure that the home directory reflects this repo. The old setup will be backed up in a branch named `home-old`.
```sh
cd ~ && git init && git config --global user.email "you@example.com" && git config --global user.name "Your Name" && git remote add origin git@github.com:emilte/home.git && git fetch --all && git checkout -b "home-old" && git add . && git commit -m "Old home directory" && git checkout master -f ; bash .configure_bash.sh n
```
```sh
/bin/bash -c "shopt -s dotglob && cd ~ && git clone git@github.com:emilte/home.git && mv -iv home/{.,}* ~"
```
## For non-Emil users
You probably don't want the exact same setup as me.
Run this command for interactive installation:
> WARNING: This command will ensure that the home directory reflects this repo. The old setup will be backed up in a branch named `home-old`.
> WARNING: Never blindly trust commands you didn't write yourself. I advice you to inspect commands before running them.
```sh
cd ~ && git init && git config --global user.email "you@example.com" && git config --global user.name "Your Name" && git remote add origin https://github.com/emilte/home.git && git fetch --all && git checkout -b "home-old" && git add . && git commit -m "Old home directory" && git checkout master -f ; bash .configure_bash.sh y
```
> This command will:
>
> 1. `cd ~`
> Go to home directory.
> 2. `git init`
> Hack to clone repo into non-empty existing path.
> https://stackoverflow.com/questions/50361138/destination-path-already-exists-and-is-not-an-empty-directory
> 3. `git config --global user.email "you@example.com" && git config --global user.name "Your Name"`
> Added because git complained about missing config. This will be overwritten soon anyway.
> 4. `git remote add origin https://github.com/emilte/home.git`
> Set this repo as remote.
> 5. `git fetch --all`
> Fetch all branches and changes to prepare for incoming changes.
> 6. `git checkout -b "home-old"`
> Create branch `home-old` for current setup.
> 7. `git add .`
> Stage all files and folders in current setup.
> 8. `git commit -m "Old home directory"`
> Commit current setup to branch `home-old`.
> 9. `git checkout master -f`
> Force new setup in home directory.
> 10. `bash .configure_bash.sh y`
> Run configuration for bash in interactive mode.
## Sources:
1. https://stackoverflow.com/a/45514197/12616507
2. https://stackoverflow.com/questions/50361138/destination-path-already-exists-and-is-not-an-empty-directory
3. https://curl.se/docs/manpage.html
4. https://codefather.tech/blog/bash-unary-operator-expected/
5. https://ryanstutorials.net/bash-scripting-tutorial/bash-if-statements.php
6. https://stackoverflow.com/a/2642592/12616507
7. https://hub.docker.com/_/ubuntu
8. https://ggkbase-help.berkeley.edu/how-to/install-pyenv/
9. https://unix.stackexchange.com/a/594845
10. https://stackoverflow.com/a/6212408/12616507
11. https://github.com/emilyst/home
12. https://github.com/emilte/terminal
13. https://linuxize.com/post/bash-functions/