<commit_before># dotfiles

Installation is as simple as:

```bash
git clone https://github.com/neechbear/dotfiles.git
dotfiles/bin/dotfiles.sh install
dotfiles/bin/dotfiles-symlink-files dotfiles/ ~
```

It may look something like this:

```
nicolaw@laptop:~$ git clone https://github.com/neechbear/dotfiles.git
Cloning into 'dotfiles'...
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.
nicolaw@laptop:~$ cd dotfiles/
nicolaw@laptop:~/dotfiles$ bin/dotfiles.sh install
‘bin/dotfiles-available-identities’ -> ‘dotfiles.sh’
‘bin/dotfiles-file-weights’ -> ‘dotfiles.sh’
‘bin/dotfiles-symlink-files’ -> ‘dotfiles.sh’
‘bin/dotfiles-normalised-files’ -> ‘dotfiles.sh’
‘bin/dotfiles-best-file’ -> ‘dotfiles.sh’
nicolaw@laptop:~/dotfiles$ bin/dotfiles-symlink-files ~/dotfiles/ ~
‘/home/nicolaw/bin/dotfiles-symlink-files’ -> ‘../dotfiles/bin/dotfiles-symlink-files’
‘/home/nicolaw/bin/dotfiles-available-identities’ -> ‘../dotfiles/bin/dotfiles-available-identities’
‘/home/nicolaw/bin/dotfiles-normalised-files’ -> ‘../dotfiles/bin/dotfiles-normalised-files’
‘/home/nicolaw/bin/dotfiles-file-weights’ -> ‘../dotfiles/bin/dotfiles-file-weights’
‘/home/nicolaw/bin/dotfiles-best-file’ -> ‘../dotfiles/bin/dotfiles-best-file’
‘/home/nicolaw/bin/dotfiles.sh’ -> ‘../dotfiles/bin/dotfiles.sh’
nicolaw@laptop:~/dotfiles$
```

You can then put files inside your dotfiles directory that will either get
symlinked in to place on all your machines, or name them with a special
`~IDENTITY` suffix, this limiting which machines that particular file will be
symlinked on.

Available identiies can be found with the `dotfiles-available-identities`
command.

```
nicolaw@laptop:~/dotfiles$ bin/dotfiles-available-identities
@laptop
@laptop.<EMAIL>
%debian
%linux
%linux-4.4.0-45-generic
@<EMAIL>
%xenial
%ubuntu
%ubuntu-16.04
%ubuntu-xenial
```

Multiple identities can be applied to a file by delimiting them with comma `,`
characters.

Composite identities requiring more than one identity to be matched can be
applied by concatinating them with the plus `+` character.

Examples:

 * `dotfiles/.bashrc~%linux`
 * `dotfiles/.bachrc~%darwin,%freebsd`
 * `dotfiles/.bash_logout~@myhostname.domain.com+%ubuntu-trusty`<commit_msg>Changed list bullet items indent<commit_after># dotfiles

Installation is as simple as:

```bash
git clone https://github.com/neechbear/dotfiles.git
dotfiles/bin/dotfiles.sh install
dotfiles/bin/dotfiles-symlink-files dotfiles/ ~
```

It may look something like this:

```
nicolaw@laptop:~$ git clone https://github.com/neechbear/dotfiles.git
Cloning into 'dotfiles'...
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.
nicolaw@laptop:~$ cd dotfiles/
nicolaw@laptop:~/dotfiles$ bin/dotfiles.sh install
‘bin/dotfiles-available-identities’ -> ‘dotfiles.sh’
‘bin/dotfiles-file-weights’ -> ‘dotfiles.sh’
‘bin/dotfiles-symlink-files’ -> ‘dotfiles.sh’
‘bin/dotfiles-normalised-files’ -> ‘dotfiles.sh’
‘bin/dotfiles-best-file’ -> ‘dotfiles.sh’
nicolaw@laptop:~/dotfiles$ bin/dotfiles-symlink-files ~/dotfiles/ ~
‘/home/nicolaw/bin/dotfiles-symlink-files’ -> ‘../dotfiles/bin/dotfiles-symlink-files’
‘/home/nicolaw/bin/dotfiles-available-identities’ -> ‘../dotfiles/bin/dotfiles-available-identities’
‘/home/nicolaw/bin/dotfiles-normalised-files’ -> ‘../dotfiles/bin/dotfiles-normalised-files’
‘/home/nicolaw/bin/dotfiles-file-weights’ -> ‘../dotfiles/bin/dotfiles-file-weights’
‘/home/nicolaw/bin/dotfiles-best-file’ -> ‘../dotfiles/bin/dotfiles-best-file’
‘/home/nicolaw/bin/dotfiles.sh’ -> ‘../dotfiles/bin/dotfiles.sh’
nicolaw@laptop:~/dotfiles$
```

You can then put files inside your dotfiles directory that will either get
symlinked in to place on all your machines, or name them with a special
`~IDENTITY` suffix, this limiting which machines that particular file will be
symlinked on.

Available identiies can be found with the `dotfiles-available-identities`
command.

```
nicolaw@laptop:~/dotfiles$ bin/dotfiles-available-identities
@laptop
@laptop.home.nicolaw.co.uk
%debian
%linux
%linux-4.4.0-45-generic
@home.nicolaw.co.uk
%xenial
%ubuntu
%ubuntu-16.04
%ubuntu-xenial
```

Multiple identities can be applied to a file by delimiting them with comma `,`
characters.

Composite identities requiring more than one identity to be matched can be
applied by concatinating them with the plus `+` character.

Examples:

* `dotfiles/.bashrc~%linux`
* `dotfiles/.bachrc~%darwin,%freebsd`
* `dotfiles/.bash_logout~@myhostname.domain.com+%ubuntu-trusty`
{'fraction_non_alphanumeric': 0.14985349518627042, 'fraction_numerical': 0.010464629552113856, 'mean_word_length': 4.856617647058823, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 27, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3240749', 'n_tokens_mistral': 1782, 'n_tokens_neox': 1674, 'n_words': 381}