Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hainesr/dotfiles
My dotfiles
https://github.com/hainesr/dotfiles
configuration dotfiles hacktoberfest linux
Last synced: 28 days ago
JSON representation
My dotfiles
- Host: GitHub
- URL: https://github.com/hainesr/dotfiles
- Owner: hainesr
- License: bsd-3-clause
- Created: 2015-11-03T17:16:53.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-11-30T07:34:22.000Z (2 months ago)
- Last Synced: 2024-11-30T08:29:50.857Z (2 months ago)
- Topics: configuration, dotfiles, hacktoberfest, linux
- Language: Shell
- Homepage:
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: ReadMe.md
Awesome Lists containing this project
README
# My dotfiles and other $HOME configuration
## Robert Haines### Setup
To install these files in `$HOME` run `make` in the root of this repository. You can install just the dotfiles with `make dots` and just the bin files with `make bins`. The `$HOME/bin` directory will be created if needs be.
If you have any sensitive information (for example access keys, etc) you can put them in a file called `$HOME\.extra` and the `.bash_profile` in this setup will pull it in automatically. You can create a file called `dot/extra` in this repository directory and it will be installed with the other dotfiles. ***Do not check in `.extra` or `dot/extra`!***
### Homebrew (MacOS)
I've started adding support for this as I now have a Mac. Hopefully I won't break Linux support as well, but it might need a couple of iterations to get it all working as expected out-of-the-box for both platforms.
All this requires modern versions of things, so install the latest `bash`, and set it be your default shell. Then install `coreutils` and these scripts will make sure you get reasonable versions of `ls`, etc. You'll also want to install bash completions, and for some reason they don't include completions for `git` by default, so you'll need to add those yourself. If you install `lesspipe` then these scripts will make use of it as well.
### Items in the `bin` directory
#### Docker executable wrappers
These are needed for the executables in docker images to work correctly. They are required in situations where programs need to be run outside of a fully initialised shell environment, e.g. `p4merge` being called from `git mergetool`.
Current wrappers are: `anaconda`, `jekyll`, `mencoder`, `p4merge`, `xnview`.
#### docker-cleanup
A convenience script to clean up old/stale containers and images.
#### greplace
A sort of find/replace across multiple files. Quite useful for small changes in many files, such as changing the copyright year across a whole codebase. Changes are ultimately made in place, so this is a destructive action. **USE WITH CAUTION!**
*Usage:*
```shell
$ greplace xxx yyy file1 [file2 ... fileN]
```Replaces all occurences of `xxx` with `yyy` in all files.
#### progress
For each line of input (stdin) output a 'dot'. This is useful for monitoring the progress of a long running operation, without seeing all of its output streaming past.
The 'dot' can be specified as the first parameter but defaults to '.'. If you want to use a character that has special significance in a shell environment - such as `#`, `&`, `|`, `*`, `\`, and so on - then use quotes, e.g. '`*`'.
*Usage:*
```shell
$ some-script-with-lots-of-output | progress [dot]
```### Software/package specific notes
#### npm: Node Package Manager
[npm][npm] is set up so that global packages are installed in the `~/.node` directory by default. `~/.node/bin` is also added to `PATH` once it exists.
### Licence
BSD. See LICENCE for details.
[npm]: https://www.npmjs.com/