An open API service indexing awesome lists of open source software.

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

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/