diff --git a/a/README.md b/a/README.md
deleted file mode 100644
index 6dfe5cc..0000000
--- a/a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-N.B. .bashrc Linux, .bash_profile Mac
-
-N.B. install script should correctly install bin/ scripts.
diff --git a/a/bin/consolidate-path b/a/bin/consolidate-path
deleted file mode 100755
index 6ce8991..0000000
--- a/a/bin/consolidate-path
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-result=":"
-
-IFS=:
-
-for p in $1; do
- [[ "$result" == *:"$p":* ]] || result="${result}${p}:"
-done
-
-result="${result#:}"
-echo "${result%:}"
diff --git a/a/ctags/.ctags b/a/ctags/.ctags
deleted file mode 100644
index b3e6044..0000000
--- a/a/ctags/.ctags
+++ /dev/null
@@ -1,54 +0,0 @@
---exclude=.git
---exclude=.hg
---exclude=log
---exclude=tmp
-
-
---langdef=js
---langmap=js:.js
---langmap=js:+.jsx
-
---regex-js=/[ \t.]([A-Z][A-Z0-9._$]+)[ \t]*[=:][ \t]*([0-9"'\[\{]|null)/\1/n,constant/
-
---regex-js=/\.([A-Za-z0-9._$]+)[ \t]*=[ \t]*\{/\1/o,object/
---regex-js=/['"]*([A-Za-z0-9_$]+)['"]*[ \t]*:[ \t]*\{/\1/o,object/
---regex-js=/([A-Za-z0-9._$]+)\[["']([A-Za-z0-9_$]+)["']\][ \t]*=[ \t]*\{/\1\.\2/o,object/
-
---regex-js=/([A-Za-z0-9._$]+)[ \t]*=[ \t]*\(function\(\)/\1/c,class/
---regex-js=/['"]*([A-Za-z0-9_$]+)['"]*:[ \t]*\(function\(\)/\1/c,class/
---regex-js=/class[ \t]+([A-Za-z0-9._$]+)[ \t]*/\1/c,class/
---regex-js=/([A-Za-z$][A-Za-z0-9_$()]+)[ \t]*=[ \t]*[Rr]eact.createClass[ \t]*\(/\1/c,class/
---regex-js=/([A-Z][A-Za-z0-9_$]+)[ \t]*=[ \t]*[A-Za-z0-9_$]*[ \t]*[{(]/\1/c,class/
---regex-js=/([A-Z][A-Za-z0-9_$]+)[ \t]*:[ \t]*[A-Za-z0-9_$]*[ \t]*[{(]/\1/c,class/
-
---regex-js=/([A-Za-z$][A-Za-z0-9_$]+)[ \t]*=[ \t]*function[ \t]*\(/\1/f,function/
-
---regex-js=/(function)*[ \t]*([A-Za-z$_][A-Za-z0-9_$]+)[ \t]*\([^)]*\)[ \t]*\{/\2/f,function/
---regex-js=/['"]*([A-Za-z$][A-Za-z0-9_$]+)['"]*:[ \t]*function[ \t]*\(/\1/m,method/
---regex-js=/([A-Za-z0-9_$]+)\[["']([A-Za-z0-9_$]+)["']\][ \t]*=[ \t]*function[ \t]*\(/\2/m,method/
-
-
---langdef=Rust
---langmap=Rust:.rs
---regex-Rust=/^[ \t]*(#\[[^\]]\][ \t]*)*(pub[ \t]+)?(extern[ \t]+)?("[^"]+"[ \t]+)?(unsafe[ \t]+)?fn[ \t]+([a-zA-Z0-9_]+)/\6/f,functions,function definitions/
---regex-Rust=/^[ \t]*(pub[ \t]+)?type[ \t]+([a-zA-Z0-9_]+)/\2/T,types,type definitions/
---regex-Rust=/^[ \t]*(pub[ \t]+)?enum[ \t]+([a-zA-Z0-9_]+)/\2/g,enum,enumeration names/
---regex-Rust=/^[ \t]*(pub[ \t]+)?struct[ \t]+([a-zA-Z0-9_]+)/\2/s,structure names/
---regex-Rust=/^[ \t]*(pub[ \t]+)?mod[ \t]+([a-zA-Z0-9_]+)/\2/m,modules,module names/
---regex-Rust=/^[ \t]*(pub[ \t]+)?static[ \t]+([a-zA-Z0-9_]+)/\2/c,consts,static constants/
---regex-Rust=/^[ \t]*(pub[ \t]+)?trait[ \t]+([a-zA-Z0-9_]+)/\2/t,traits,traits/
---regex-Rust=/^[ \t]*(pub[ \t]+)?impl([ \t\n]*<[^>]*>)?[ \t]+(([a-zA-Z0-9_:]+)[ \t]*(<[^>]*>)?[ \t]+(for)[ \t]+)?([a-zA-Z0-9_]+)/\4 \6 \7/i,impls,trait implementations/
---regex-Rust=/^[ \t]*macro_rules![ \t]+([a-zA-Z0-9_]+)/\1/d,macros,macro definitions/
-
---langdef=typescript
---langmap=typescript:.ts
---regex-typescript=/^[ \t]*(export)?[ \t]*class[ \t]+([a-zA-Z0-9_]+)/\2/c,classes/
---regex-typescript=/^[ \t]*(export)?[ \t]*module[ \t]+([a-zA-Z0-9_]+)/\2/n,modules/
---regex-typescript=/^[ \t]*(export)?[ \t]*function[ \t]+([a-zA-Z0-9_]+)/\2/f,functions/
---regex-typescript=/^[ \t]*export[ \t]+var[ \t]+([a-zA-Z0-9_]+)/\1/v,variables/
---regex-typescript=/^[ \t]*var[ \t]+([a-zA-Z0-9_]+)[ \t]*=[ \t]*function[ \t]*\(\)/\1/v,varlambdas/
---regex-typescript=/^[ \t]*(export)?[ \t]*(public|private)[ \t]+(static)?[ \t]*([a-zA-Z0-9_]+)/\4/m,members/
---regex-typescript=/^[ \t]*(export)?[ \t]*interface[ \t]+([a-zA-Z0-9_]+)/\2/i,interfaces/
---regex-typescript=/^[ \t]*(export)?[ \t]*enum[ \t]+([a-zA-Z0-9_]+)/\2/e,enums/
---regex-typescript=/^[ \t]*import[ \t]+([a-zA-Z0-9_]+)/\1/I,imports/
-
diff --git a/a/eg/.eg_custom/README.md b/a/eg/.eg_custom/README.md
deleted file mode 100644
index 5ad85e8..0000000
--- a/a/eg/.eg_custom/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-Cheat Sheets
-============
-
-> **NOTE**: This repo is best used by placing a bookmark in your address bar.
-
-This is a collection of cheat sheets that I have compiled over the years that I
-put together while learning various tools. They contain some good information
-and a few gems that I have learned along the way. Feel free to contribute.
-
-## Contents
-
-- [Bash]
-- [Git]
-- [GnuPG]
-- [irssi]
-- [JIRA]
-- [mutt]
-- [nmap]
-- [openssl]
-- [tmux]
-- [uml]
-- [vim]
-- [zsh]
-- [other]
-
-## License
-
-
Cheat Sheets
-by Joshua Estes is
-licensed under a Creative Commons
-Attribution-ShareAlike 4.0 International License. Based on a work at https://github.com/JoshuaEstes/CheatSheets.
-Permissions beyond the scope of this license may be available at https://github.com/JoshuaEstes/CheatSheets/blob/master/LICENSE.
-
-See [LICENSE] for full license.
-
-
-[Bash]: https://github.com/JoshuaEstes/CheatSheets/blob/master/bash.md
-[Git]: https://github.com/JoshuaEstes/CheatSheets/blob/master/git.md
-[GnuPG]: https://github.com/JoshuaEstes/CheatSheets/blob/master/gnupg.md
-[irssi]: https://github.com/JoshuaEstes/CheatSheets/blob/master/irssi.md
-[JIRA]: https://github.com/JoshuaEstes/CheatSheets/blob/master/jira.md
-[mutt]: https://github.com/JoshuaEstes/CheatSheets/blob/master/mutt.md
-[nmap]: https://github.com/JoshuaEstes/CheatSheets/blob/master/nmap.md
-[openssl]: https://github.com/JoshuaEstes/CheatSheets/blob/master/openssl.md
-[tmux]: https://github.com/JoshuaEstes/CheatSheets/blob/master/tmux.md
-[uml]: https://github.com/JoshuaEstes/CheatSheets/blob/master/uml.md
-[vim]: https://github.com/JoshuaEstes/CheatSheets/blob/master/vim.md
-[zsh]: https://github.com/JoshuaEstes/CheatSheets/blob/master/zsh.md
-[other]: https://github.com/JoshuaEstes/CheatSheets/blob/master/other.md
-[LICENSE]: https://github.com/JoshuaEstes/CheatSheets/blob/master/LICENSE
diff --git a/a/eg/.eg_custom/ack.md b/a/eg/.eg_custom/ack.md
deleted file mode 100644
index e69de29..0000000
diff --git a/a/eg/.eg_custom/bash.md b/a/eg/.eg_custom/bash.md
deleted file mode 100644
index 3144e29..0000000
--- a/a/eg/.eg_custom/bash.md
+++ /dev/null
@@ -1,75 +0,0 @@
-Bash Cheat Sheet
-================
-
-## Moving
-
-| command | description |
-|----------|--------------------------------|
-| ctrl + a | Goto BEGINNING of command line |
-| ctrl + e | Goto END of command line |
-| ctrl + b | move back one character |
-| ctrl + f | move forward one character |
-| alt + f | move cursor FORWARD one word |
-| alt + b | move cursor BACK one word |
-
-## Other
-
-| command | description |
-|----------|--------------------------------|
-| ctrl + d | Delete the character under the cursor |
-| ctrl + l | Clear the screen (same as clear command) |
-| ctrl + p | Fetch the previous command from the history list, moving back in the list (same as up arrow) |
-| ctrl + n | Fetch the next command from the history list, moving forward in the list (same as down arrow) |
-| ctrl + u | Clear all BEFORE cursor |
-| ctrl + k | Clear all AFTER cursor |
-| ctrl + r | Search backward starting at the current line and moving 'up' through the history as necessary |
-| crtl + s | Search forward starting at the current line and moving 'down' through the history as necessary |
-| ctrl + c | kill whatever is running |
-| ctrl + d | Exit shell (same as exit command) |
-| ctrl + w | delete the word BEFORE the cursor |
-| ctrl + t | swap the last two characters before the cursor |
-| ctrl + y | paste (if you used a previous command to delete) |
-| ctrl + z | Place current process in background |
-| ctrl + _ | undo |
-| esc + t | Swap last two words before the cursor |
-| esc + . | |
-| esc + _ | |
-| alt + [Backspace] | delete PREVIOUS word |
-| alt + < | Move to the first line in the history |
-| alt + > | Move to the end of the input history, i.e., the line currently being entered |
-| alt + ? | |
-| alt + * | |
-| alt + . | print the LAST ARGUMENT (ie "vim file1.txt file2.txt" will yield "file2.txt") |
-| alt + c | |
-| alt + d | |
-| alt + l | |
-| alt + n | |
-| alt + p | |
-| alt + r | |
-| alt + t | |
-| alt + u | |
-| ~[TAB][TAB] | List all users |
-| $[TAB][TAB] | List all system variables |
-| @[TAB][TAB] | List all entries in your /etc/hosts file |
-| [TAB] | Auto complete |
-| !! | Run PREVIOUS command (ie `sudo !!`) |
-| !vi | Run PREVIOUS command that BEGINS with vi |
-| cd - | change to PREVIOUS working directory |
-
-# Kill a job
-
-n = job number, to list jobs, run `jobs`
-
-```bash
-kill %n
-```
-
-Example:
-
-```bash
-kill %1
-```
-
-## References
-
-1. http://cnswww.cns.cwru.edu/php/chet/readline/readline.html
diff --git a/a/eg/.eg_custom/csrutil.md b/a/eg/.eg_custom/csrutil.md
deleted file mode 100644
index a81e838..0000000
--- a/a/eg/.eg_custom/csrutil.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Disable/enable System Integrity Protection
-
-* Restart the computer
-* Hold down `Command-R` to reboot into Recovery Mode
-* Click `Utilities`
-* Select `Terminal`
-* Enter `csrutil [ disable | enable ]`
-* Restart the computer into Standard Mode
\ No newline at end of file
diff --git a/a/eg/.eg_custom/curl.md b/a/eg/.eg_custom/curl.md
deleted file mode 100644
index cc8ce6c..0000000
--- a/a/eg/.eg_custom/curl.md
+++ /dev/null
@@ -1,9 +0,0 @@
-cURL Cheat Sheet
-================
-
-## Basics
-### Get request
-
-```bash
-curl https://domain.com
-```
\ No newline at end of file
diff --git a/a/eg/.eg_custom/defaults.md b/a/eg/.eg_custom/defaults.md
deleted file mode 100644
index e473d80..0000000
--- a/a/eg/.eg_custom/defaults.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# defaults
-
-Change the default location of screenshots:
-
- defaults write com.apple.screencapture location && killall SystemUIServer
\ No newline at end of file
diff --git a/a/eg/.eg_custom/git.md b/a/eg/.eg_custom/git.md
deleted file mode 100644
index e7181dd..0000000
--- a/a/eg/.eg_custom/git.md
+++ /dev/null
@@ -1,152 +0,0 @@
-Git Cheat Sheet
-===============
-
-## Subtree Example
-
-### Add sub-project as remote
-
-```bash
-git remote add -f RemoteName RemoteUrl
-```
-
-### Run `git subtree` command
-
-```bash
-git subtree add --prefix Path/To/Put/Code NameOfRemote master --squash
-```
-
-#### Pull subtree as needed
-
-```bash
-git fetch NameOfRemote master
-git subtree pull --prefix Path/To/Put/Code NameOfRemote master --squash
-```
-
-### Reference
-
-* http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree
-
-## Create a branch without a parent
-
-Very useful when you are updating a project that you are rewriting. For example,
-say you are using semantic versioning and are wanting to start a new major
-version.
-
-```bash
-git checkout --orphan BRANCH
-```
-
-## Delete All Branches that have been merged
-
-Great for cleaning up local branches that aren't being used any more.
-
-```bash
-git checkout master
-git branch --merged | grep -v "\*" | xargs -n 1 git branch -d
-```
-
-## Ignore changes to a file that is being tracked
-
-### Ignore
-
-```bash
-git update-index --assume-unchanged [directory|file]
-```
-
-### Unignore
-
-```bash
-git update-index --no-assume-unchanged [directory|file]
-```
-
-## How to ignore dirty submodules
-
-Edit your ``.git/config`` and add ``ignore = dirty``.
-
-```text
-[submodule "path/to/submodule"]
- path = path/to/submodule
- url = git://github.com/username/repo.git
- ignore = dirty
-```
-
-## Clone a repo and give name other than origin
-
-```bash
-git clone -o upstream https://repo.git
-```
-
-## Ignore Files for Repository without using `.gitignore`
-
-Add the file `.git/info/exclude` and fill it with the contents you want to ignore. This will ONLY apply to the
-repository and will not be tracked by git.
-
-## Squash Commits
-
-```bash
-git log
-```
-
-Count the number of commits that you have made, let's say the previous 5 are your commits.
-
-```bash
-git rebase -i HEAD~5
-```
-
-The first commit leave as `pick` the rest will need to be changed to `squash`. After that you will be able to
-leave a new commit message or just leave as is to keep the commit messages from all previous commits.
-
-## Search for a specific line of code/file in the history
-
-```bash
-git log -S[search term]
-```
-
-Example:
-
-```bash
-git log -SThatOneFile.php
-```
-
-## Copy file from one branch to current branch
-
-Copy a file from `branch` and put into staging.
-
-```bash
-git checkout BRANCH path/to/file.ext
-
-# Real Life Examples
-git checkout origin/featureBranch web/js/random.js
-# Pulls into your current branch web/js/random.js from
-# origin/featureBranch
-```
-
-## Git Grepping for fun and profit!
-
-```shell
-# Basic grep (case sensitive)
-$ git grep 'search term'
-
-# Case Insensitive search
-$ git grep -i 'search term'
-
-# Search within a directory
-$ git grep 'search term' src/
-
-# Search only files with `php` extension
-$ git grep 'search term' -- '*.php'
-
-# Grep in the 'src/` directory, only yml files
-$ git grep 'search term' -- 'src/**.yml'
-```
-
-## Push Branch to Remote Repository to a different branch name
-
-```shell
-git push origin localBranchName:remoteBranchName
-```
-
-Use Case: I will often use rebase, I will cut a branch off the branch I want to rebase and
-do the rebase on the newly created branch. Once I am done, I will check the diff and see if
-I screwed up. If it's all good, `git push -f` **NOTICE**: DO NOT `git push -f` unless you know
-what you are doing.
diff --git a/a/eg/.eg_custom/gnupg.md b/a/eg/.eg_custom/gnupg.md
deleted file mode 100644
index 0b740ca..0000000
--- a/a/eg/.eg_custom/gnupg.md
+++ /dev/null
@@ -1,64 +0,0 @@
-GnuPG Cheat Sheet
-=================
-
-## Listing Key Pairs
-
-```bash
-gpg --list-keys
-```
-
-For listing keys with the fingerprint, run
-
-```bash
-gpg --fingerprint
-```
-
-## Generate New Key Pair
-
-```bash
-gpg --gen-key
-```
-
-## Encrypt a message on command line
-
-```bash
-echo "Put message here" | gpg --armor --encrypt --recipient Joshua > FILE.gpg
-```
-
-This will put the encrypted text into `FILE.gpg` which you can send to someone or keep for
-later use. For decrypting the message, see the next section.
-
-## Decrypt a message from the command line
-
-```bash
-cat FILE.gpg | gpg
-```
-
-Displays the decrypted text on the command line.
-
-## Only display user X's key information
-
-```bash
-gpg --fingerprint Joshua
-```
-
-## Signing Messages
-
-```bash
-echo "This is a top secret message" | gpg --clearsign
-```
-
-## Signing Text Files
-
-```bash
-gpg --clearsign example.txt
-```
-
-This will create `example.txt.asc` file.
-
-## Verify Signatures
-
-```bash
-gpg --verifiy example.txt.asc
-```
-
diff --git a/a/eg/.eg_custom/grep.md b/a/eg/.eg_custom/grep.md
deleted file mode 100644
index 5a603fc..0000000
--- a/a/eg/.eg_custom/grep.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Grep
-====
-
-## Ignore case
-
-```shell
-grep -i pattern
-```
diff --git a/a/eg/.eg_custom/irssi.md b/a/eg/.eg_custom/irssi.md
deleted file mode 100644
index d59a218..0000000
--- a/a/eg/.eg_custom/irssi.md
+++ /dev/null
@@ -1,11 +0,0 @@
-Irssi Cheat Sheet
-=================
-
-M = Meta Key, meta key is either the left alt or esc key.
-
-| command | description |
-|----------|-------------|
-| M + p | Scroll up in window
-| M + n | Scroll down in window
-| ctrl + p | Previous window
-| ctrl + n | Next window
diff --git a/a/eg/.eg_custom/jira.md b/a/eg/.eg_custom/jira.md
deleted file mode 100644
index 2c957f2..0000000
--- a/a/eg/.eg_custom/jira.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Jira Cheat Sheet
-================
-
-## Find by Mentions of current user within the past 7 days
-
-```sql
-comment ~ currentUser() AND updatedDate >= -7d
-```
diff --git a/a/eg/.eg_custom/ln.md b/a/eg/.eg_custom/ln.md
deleted file mode 100644
index 0abc4aa..0000000
--- a/a/eg/.eg_custom/ln.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# ln
-
-make a symlink to `foo.txt`
-
- ln -s foo.txt link-to-foo.txt
-
-
-
-# Basic Usage
-
-Make anchor a link to target:
-
- ln -s
-
-
-
-# Symbolic Links (symlinks)
-
-Make it symbolic with the `-s` flag:
-
- $ ln -s foo.txt link-to-foo.txt
- $ ls -lF
- total 8
- -rw-r--r-- 1 tyrion group 0 Feb 3 14:13 foo.txt
- lrwxr-xr-x 1 tyrion group 7 Feb 3 14:14 link-to-foo.txt@ -> foo.txt
-
-
-
-# Hard Links
-
-Omit the `-s` flag:
-
- $ ln foo.txt hard-link-to-foo.txt
- $ ls -lF
- total 0
- -rw-r--r-- 2 tyrion group 0B Feb 3 14:13 foo.txt
- -rw-r--r-- 2 tyrion group 0B Feb 3 14:13 hard-link-to-foo.txt
-
-
diff --git a/a/eg/.eg_custom/lsof.md b/a/eg/.eg_custom/lsof.md
deleted file mode 100644
index cc5bd09..0000000
--- a/a/eg/.eg_custom/lsof.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# lsof
-
-Examine the process using a specified `port`:
-
- lsof -i:3000 | grep LISTEN
diff --git a/a/eg/.eg_custom/mutt.md b/a/eg/.eg_custom/mutt.md
deleted file mode 100644
index b27270f..0000000
--- a/a/eg/.eg_custom/mutt.md
+++ /dev/null
@@ -1,226 +0,0 @@
-Mutt Cheat Sheet
-================
-
-## General
-
-These key bindings will work on almost any menu you are in.
-
-| command | description |
-|------------|-------------|
-| * | Move to last entry
-| = | Move to first entry
-| : | Enter muttrc command
-| > | Scroll down one line
-| < | Scroll up one line
-| [ | Scroll up half a page
-| ] | Scroll down half a page
-| ? | Help
-| ; | Apply next function to tagged messages only
-| ! | Invoke command in subshell
-| return | Select the current entry
-| esc + / | Search up
-| / | Search down
-| H | Move to top of page
-| j | Move to next entry
-| k | Move to previous entry
-| ctrl + l | Redraw screen
-| L | Move to bottom of page
-| M | Move to middle of page
-| n | Move to next match of search
-| q | Exit menu
-| t | Tag current entry
-| z | Move to next page
-| Z | Move to previous page
-
-## Index Menu
-
-When you first open mutt you are in the index menu.
-
-| command | description |
-|---------------|-------------|
-| & | Link tagged message to current one
-| # | Break the thread in two
-| % | Toggle whether mailbox will be rewritten
-| . | List mailboxes with new mail
-| $ | Save changes to mailbox
-| @ | Display full address of sender
-| | | Pipe message to a shell command
-| esc + tab | Jump to previous new or unread message
-| return | Display message
-| tab | Jump to next new or unread message
-| a | Create alias from message sender
-| b | Remail message to another user
-| esc + c | Open a different folder (Read Only)
-| c | Open a different folder
-| esc + C | Make text/plain copy
-| C | Copy message to another file/mailbox
-| esc + d | Delete all messages in subthread
-| d | Delete current message
-| ctrl + D | Delete all messages in thread
-| D | Delete messages matching a pattern
-| esc + e | Use the current message as a template for a new one
-| e | Edit the raw message
-| ctrl + E | Edit attachment content type
-| f | Forward message with comments
-| ctrl + F | Wipe passphrase from memory
-| F | Toggle the important flag for message
-| g | Reply to all
-| G | Retrive mail from POP server
-| h | Display message and toggle header weeding
-| j | Move to next undeleted message
-| esc + k | Mail a PGP key
-| k | Move to previous undeleted message
-| ctrl + K | Extract supported public keys
-| esc + l | Show current limit pattern
-| l | Only show messages matching a pattern
-| L | Reply to specific mailing list
-| m | Compose new message
-| esc + n | Jump to next subthread
-| ctrl + N | Jump to next thread
-| N | Toggle new flag
-| o | Sort messages
-| O | Sort messages in reverse order
-| Q | Query external program for addresses
-| q | Save changes to mailbox and quit
-| r | Reply to message
-| ctrl + P | Jump to previous thread
-| esc + p | Jump to previous subthread
-| p | Print current message
-| esc + P | Check for classic PGP
-| P | Jump to parent message in thread
-| ctrl + R | Mark current thread as read
-| R | Recall a postponed message
-| esc + r | Mark current subthread as read
-| esc + s | Save text/plain copy and delete
-| s | Save message/attachment to mailbox/file
-| esc + t | Tag current thread
-| ctrl + T | Untag messages matching a pattern
-| T | Tag messages matching pattern
-| esc + u | Undelete all messages in subthread
-| u | Undelete current entry
-| ctrl + U | Undelete all messages in thread
-| U | Undelete messages matching pattern
-| esc + v | Collapse/uncollapse current thread
-| v | Show mime attachments
-| esc + V | Collapse/uncollapse all threads
-| V | Show mutt version number and date
-| w | Set a status flag
-| W | Clear status flags from message
-
-## Pager Menu
-
-| command | description |
-|---------|-------------|
-| # | |
-| a | |
-| b | |
-| c | |
-| esc + c | |
-| C | |
-| esc + C | |
-| d | |
-| ctrl + D | |
-| esc + d | |
-| w | |
-| W | |
-| e | |
-| ctrl + E | |
-| f | |
-| F | |
-| g | |
-| h | |
-| j | |
-| J | |
-| k | |
-| K | |
-| & | |
-| L | |
-| ctrl + L | |
-| m | |
-| n | |
-| N | |
-| ctrl + N | |
-| esc + n | |
-| o | |
-| O | |
-| p | |
-| ctrl + P | |
-| esc + p | |
-| Q | |
-| q | |
-| r | |
-| R | |
-| ctrl + R | |
-| esc + r | |
-| esc + e | |
-| s | |
-| S | |
-| esc + s | |
-| t | |
-| T | |
-| u | |
-| esc + u | |
-| ctrl + U | |
-| v | |
-| V | |
-| \\ | |
-| @ | |
-| | | |
-| ? | |
-| space | |
-| - | |
-| ^ | |
-| $ | |
-| ! | |
-| : | |
-| . | |
-| / | |
-| esc + / | |
-| return | |
-| P | |
-| esc + P | |
-| esc + k | |
-| ctrl + K | |
-| ctrl + F | |
-
-## Useful key remaps
-
-These need to be placed in your `muttrc` file. I use vim and so I want to use some of the
-same commands to manage my mail.
-
-```muttrc
-# Does not replace and currently mapped keys and acts like the vim command gg and takes
-# you to the top of the page
-bind index gg first-entry
-
-# Replaces the retrieval of mail from a POP server. This will take you to the bottom of
-# the page, just like it does in vim
-bind index G last-entry
-```
-
-## Flags
-
-When viewing messages in the index menu, you will see various flags such as `N` which mean
-the messages is new and `D` which means that the message is to be deleted. This is a short
-list of those flags.
-
-| flag | description |
-|------|-------------|
-| ! | Message is flagged
-| * | Message is tagged
-| + | Message is To: you and only you
-| C | Message is Cc: to you
-| d | Message has attachments marked for deletion
-| D | Marked for deletion
-| F | Message is From: you
-| K | Contains PGP key
-| L | Message is sent to a subscribed mailing list
-| n | Thread contains new messages (Only when thread is collapsed)
-| N | Message is new
-| o | Thread contains old messages (Only when thread is collapsed)
-| O | Message is old
-| P | Message is PGP encrypted
-| r | Message has been replied to
-| s | Message is signed
-| S | Message is signed and verified
-| T | Message is to you and has others in To: or Cc:
diff --git a/a/eg/.eg_custom/nmap.md b/a/eg/.eg_custom/nmap.md
deleted file mode 100644
index 2035224..0000000
--- a/a/eg/.eg_custom/nmap.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Nmap Cheat Sheet
-================
-
-## Scan a Port
-
-```bash
-nmap -p 80 google.com
-```
diff --git a/a/eg/.eg_custom/openssl.md b/a/eg/.eg_custom/openssl.md
deleted file mode 100644
index b363060..0000000
--- a/a/eg/.eg_custom/openssl.md
+++ /dev/null
@@ -1,25 +0,0 @@
-OpenSSL Cheat Sheet
-===================
-
-## Generate Self-Signed Certificate and Private Key
-
-```shell
-openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 && openssl rsa -passin pass:x -in server.pass.key -out server.key && openssl req -new -key server.key -out server.csr
-openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
-```
-
-- Use `server.crt` and `server.key`
-
-### Encypt/Decrypt file
-
-```
-# Encrypt
-openssl aes-128-cbc -a -e -pass pass:test -in vars -out vars.enc
-# Puts encrypted data into vars.enc file
-
-# Decrypt
-openssl aes-128-cbc -a -d -pass pass:test -in vars.enc
-# Outputs decrypted data to STDOUT
-```
-
-NOTE: See `openssl passpharse arguments` for information on using the password on the commandline. It can be changed to a file or an environment variable.
diff --git a/a/eg/.eg_custom/other.md b/a/eg/.eg_custom/other.md
deleted file mode 100644
index 5ced564..0000000
--- a/a/eg/.eg_custom/other.md
+++ /dev/null
@@ -1,28 +0,0 @@
-Other Cheat Sheets
-==================
-
-## Using `less` instead of tail
-
-```shell
-less +F -R /path/to/logfile.log
-```
-
-* To scroll up and down, press `+c`
-* Return to tail mode, press `F`
-
-The `+F` says to follow? The `-R` will process any ANSII color codes.
-
-## SSH Config File
-
-```
-# ~/.ssh/config
-Host test
- HostName testing.example.com
- Port 22222
- User joshua
- IdentityFile ~/.ssh/test.example.com.key
-```
-
-Next, all you need to do to ssh into the server is `ssh test` and that's it.
-
-> **NOTE** `HostName` may be an IP Address instead of a domain name
diff --git a/a/eg/.eg_custom/pdftk.md b/a/eg/.eg_custom/pdftk.md
deleted file mode 100644
index 904620d..0000000
--- a/a/eg/.eg_custom/pdftk.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# pdftk
-
-join a bunch of pdfs
-
- pdftk file01.pdf file02.pdf file03.pdf cat output combined_file.pdf
-
-
-Add a password to a pdf
-
- pdftk file.pdf output file_pw.pdf user_pw Passw0rd!
diff --git a/a/eg/.eg_custom/rename.md b/a/eg/.eg_custom/rename.md
deleted file mode 100644
index ab3d9d1..0000000
--- a/a/eg/.eg_custom/rename.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# rename (concept, not command)
-
-rename `index.jsx` to `index.tsx` one level down
-
- for i in **/index.jsx; do mv -v $i ${i/jsx/tsx}; done
-
diff --git a/a/eg/.eg_custom/sed.md b/a/eg/.eg_custom/sed.md
deleted file mode 100644
index e69de29..0000000
diff --git a/a/eg/.eg_custom/tar.md b/a/eg/.eg_custom/tar.md
deleted file mode 100644
index 73c3e2a..0000000
--- a/a/eg/.eg_custom/tar.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# tar
-
-extract .tar file
-
- tar vfx archive.tar
-
-
-unzip and extract .tar.gz or .tgz file
-
- tar vfxz g_zipped_archive.tar.gz
-
-
-turn directory into a .tar file
-
- tar vfc tarred_directory.tar directory
-
-
-turn directory into g-zipped directory
-
- tar vfcz z_zipped_directory.tar.gz directory
-
-
-
-# Basic Usage
-
-`vf` means verbosely list files (`v`) and use a file (`f`), not `stdin`.
-These appear in most commands.
-
-Untar a file:
-
- tar vfx
-
-
-Create a tar file from a directory:
-
- tar vfc
-
-
-
-# Remembering the Flags
-
-`tar` is very finicky. Flags don't need to be prepended by a hyphen, but are
-instead bundled into the first word on the command line. A leading hyphen will
-break some implementations or require an order. For example, `tar vfx` might
-work while with a hyphen it would require `tar -xvf`, with the `x` flag first.
-You can get maximum portability is you never use the hyphens, so examples here
-are shown without the hyphen.
-
-You'll almost always want `vf`. `v` verbosely lists files as they are
-manipulated, and `f` means you're reading from a file, not `stdin`. You can
-remember `vf` if you remember that `tar` is Very Finicky: `vf`.
-
-Extract things from a tar file with `x` for extraction. Compress things to a
-tar file with `c` for compress.
-
-And you'll have to just remember that g-zipping is `z` and b-zipping is `j`.
-
-
-
-# Tarring
-
-Compress directory (`c`) into g-zipped (`z`) directory:
-
- tar vfcz z_zipped_directory.tar.gz directory
-
-
-Compress directory (`c`) into b-zipped (`j`) directory:
-
- tar vfcj b_zipped_directory.tar.bz2 directory
-
-
-Compress directory (`c`) into xz-zipped (`J`) directory:
-
- tar vfcJ xz_zipped_directory.tar.xz directory
-
-
-
-# Untarring
-
-Untar (`x`) and unzip a g-zipped (`z`) file:
-
- tar vfxz g_zipped_archive.tar.gz
-
-
-Untar (`x`) and unzip a b-zipped (`j`) file:
-
- tar vfxj b_zipped_archive.tar.bz2
-
-
-Untar (`x`) and unzip an xz-zipped (`J`) file:
-
- tar vfxJ xz_zipped_archive.tar.xz
-
-
-
-## Partial Untarring
-
-Extract only part of the contents (`directory/foo.txt`) from a .tar file:
-
- tar vfx archived_directory.tar directory/foo.txt
-
-
-
-# Display Contents
-
-List (`t`) the contents of a tar file without untarring it:
-
- $ tar vft tarred_directory.tar
- drwxr-xr-x 0 tyrion group 0 Feb 4 14:54 directory/
- -rw-r--r-- 0 tyrion group 0 Feb 4 14:54 directory/bar.txt
- -rw-r--r-- 0 tyrion group 0 Feb 4 14:54 directory/foo.txt
diff --git a/a/eg/.eg_custom/tmux.md b/a/eg/.eg_custom/tmux.md
deleted file mode 100644
index 0569971..0000000
--- a/a/eg/.eg_custom/tmux.md
+++ /dev/null
@@ -1,92 +0,0 @@
-Tmux Cheat Sheet
-================
-
-`ctrl + b` is default to enter before you enter the commands. `M` = Left Alt key
-or ESC key
-
-## Windows
-
-| command | description |
-|---------|-------------|
-| c | Create a new window.
-| & | Kill the current window.
-| n | Change to the next window.
-| p | Change to the previous window.
-| , | Rename the current window.
-| w | Choose the current window interactively.
-| M-n | Move to the next window with a bell or activity marker.
-| M-p | Move to the previous window with a bell or activity marker.
-
-## Panes
-
-| command | description |
-|---------|------------ |
-| " | Split the current pane into two, top and bottom.
-| % | Split the current pane into two, left and right.
-| x | Kill the current pane.
-| ; | Move to the previously active pane.
-| o | Select the next pane in the current window.
-| ! | Break the current pane out of the window.
-| q | Briefly display pane indexes.
-
-## Other
-
-| command | description |
-|---------|-------------|
-| d | Detach the current client.
-| $ | Rename the current session.
-| [ | Enter copy mode to copy text or view the history.
-| f | Prompt to search for text in open windows.
-| r | Force redraw of the attached client.
-| L | Switch the attached client back to the last session.
-| : | Enter the tmux command prompt
-| ? | List all key bindings
-| f | Search window titles and goto that window
-| i | Briefly display window information
-| r | Force redraw of the attached client.
-| s | Select a new session for the attached client interactively.
-| t | Show the time.
-| = | Choose which buffer to paste interactively from a list.
-| ] | Paste the most recently copied buffer of text.
-| . | Move window
-
-## Create a new session
-
-Any of these will work.
-
-```bash
-tmux
-tmux new
-tmux new-session
-```
-
-## Reattach to a session
-
-Any of these commands will work.
-
-```bash
-tmux at
-tmux attach
-tmux attach-session
-```
-
-## List sessions
-
-Any of these commands will work.
-
-```bash
-tmux ls
-tmux list-sessions
-```
-
-## How to copy and paste
-
-1. Enter copy-mode `C-b [`
-2. Move to text, press `Space` to select text, move cursor to highlight text
-3. Press `Enter`
-4. Back at the command prompt, press `C-b ]` and the text you selected is pasted
-
-## References
-
-* http://man.openbsd.org/OpenBSD-current/man1/tmux.1
-
diff --git a/a/eg/.eg_custom/uml.md b/a/eg/.eg_custom/uml.md
deleted file mode 100644
index d8ab0d3..0000000
--- a/a/eg/.eg_custom/uml.md
+++ /dev/null
@@ -1,50 +0,0 @@
-UML Cheat Sheet
-===============
-
-
-```
-<>
-<>
-<>
-
-- private
-# protected
-+ public
-
-name : type = default value
-```
-
-Examples:
-
-```
-<>
-Name\Space\To\ClassAbstract
----
-- $privateAttribute : string = ''
-# $protected : integer = 1
-+ $public : string = 'DefaultValue'
----
-+ getPrivateAttribute() : string
-+ getValueForKey($key : string) : mixed
-+ get($key : string, $default : mixed = null) : mixed
-```
-
-```
-Class A "uses" Class B
-[Class A]- - - ->[Class B]
-```
-
-```
-Class A "has a" Class B
-[Class A]---->[Class B]
-```
-
-```
-Company "owns" Employee
-[Company]⃟----[Employee]
-```
-
-```
-Ford "is a" Car
-[Car]◁----[Ford]
-```
diff --git a/a/eg/.eg_custom/vim.md b/a/eg/.eg_custom/vim.md
deleted file mode 100644
index ac55b89..0000000
--- a/a/eg/.eg_custom/vim.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# vim
-
-paste from clipboard into vim
-
- "*yy OR "+yy (clarify this)
diff --git a/a/eg/.eg_custom/youtube-dl.md b/a/eg/.eg_custom/youtube-dl.md
deleted file mode 100644
index 4a28b2f..0000000
--- a/a/eg/.eg_custom/youtube-dl.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# youtube-dl
-
-Download a video and convert it to MP4
-
- youtube-dl -v -o '%(title)s.%(ext)s' --restrict-filenames --recode-video mp4 qXYh8DmBZek
diff --git a/a/eg/.eg_custom/zsh.md b/a/eg/.eg_custom/zsh.md
deleted file mode 100644
index 0a236f8..0000000
--- a/a/eg/.eg_custom/zsh.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Zsh Cheat Sheet
-===============
-
-Still haven't got around to digging in a reading the man pages for this yet.
diff --git a/a/eg/.egrc b/a/eg/.egrc
deleted file mode 100644
index ece0afe..0000000
--- a/a/eg/.egrc
+++ /dev/null
@@ -1,3 +0,0 @@
-[eg-config]
-examples-dir = ~/builds/eg/eg/examples
-custom-dir = ~/.eg_custom
diff --git a/a/git/.git-completion b/a/git/.git-completion
deleted file mode 100644
index 482ca84..0000000
--- a/a/git/.git-completion
+++ /dev/null
@@ -1,2742 +0,0 @@
-# bash/zsh completion support for core Git.
-#
-# Copyright (C) 2006,2007 Shawn O. Pearce
-# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
-# Distributed under the GNU General Public License, version 2.0.
-#
-# The contained completion routines provide support for completing:
-#
-# *) local and remote branch names
-# *) local and remote tag names
-# *) .git/remotes file names
-# *) git 'subcommands'
-# *) tree paths within 'ref:path/to/file' expressions
-# *) file paths within current working directory and index
-# *) common --long-options
-#
-# To use these routines:
-#
-# 1) Copy this file to somewhere (e.g. ~/.git-completion.bash).
-# 2) Add the following line to your .bashrc/.zshrc:
-# source ~/.git-completion.bash
-# 3) Consider changing your PS1 to also show the current branch,
-# see git-prompt.sh for details.
-#
-# If you use complex aliases of form '!f() { ... }; f', you can use the null
-# command ':' as the first command in the function body to declare the desired
-# completion style. For example '!f() { : git commit ; ... }; f' will
-# tell the completion to use commit completion. This also works with aliases
-# of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '".
-
-case "$COMP_WORDBREAKS" in
-*:*) : great ;;
-*) COMP_WORDBREAKS="$COMP_WORDBREAKS:"
-esac
-
-# __gitdir accepts 0 or 1 arguments (i.e., location)
-# returns location of .git repo
-__gitdir ()
-{
- if [ -z "${1-}" ]; then
- if [ -n "${__git_dir-}" ]; then
- echo "$__git_dir"
- elif [ -n "${GIT_DIR-}" ]; then
- test -d "${GIT_DIR-}" || return 1
- echo "$GIT_DIR"
- elif [ -d .git ]; then
- echo .git
- else
- git rev-parse --git-dir 2>/dev/null
- fi
- elif [ -d "$1/.git" ]; then
- echo "$1/.git"
- else
- echo "$1"
- fi
-}
-
-# The following function is based on code from:
-#
-# bash_completion - programmable completion functions for bash 3.2+
-#
-# Copyright © 2006-2008, Ian Macdonald
-# © 2009-2010, Bash Completion Maintainers
-#
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# The latest version of this software can be obtained here:
-#
-# http://bash-completion.alioth.debian.org/
-#
-# RELEASE: 2.x
-
-# This function can be used to access a tokenized list of words
-# on the command line:
-#
-# __git_reassemble_comp_words_by_ref '=:'
-# if test "${words_[cword_-1]}" = -w
-# then
-# ...
-# fi
-#
-# The argument should be a collection of characters from the list of
-# word completion separators (COMP_WORDBREAKS) to treat as ordinary
-# characters.
-#
-# This is roughly equivalent to going back in time and setting
-# COMP_WORDBREAKS to exclude those characters. The intent is to
-# make option types like --date= and : easy to
-# recognize by treating each shell word as a single token.
-#
-# It is best not to set COMP_WORDBREAKS directly because the value is
-# shared with other completion scripts. By the time the completion
-# function gets called, COMP_WORDS has already been populated so local
-# changes to COMP_WORDBREAKS have no effect.
-#
-# Output: words_, cword_, cur_.
-
-__git_reassemble_comp_words_by_ref()
-{
- local exclude i j first
- # Which word separators to exclude?
- exclude="${1//[^$COMP_WORDBREAKS]}"
- cword_=$COMP_CWORD
- if [ -z "$exclude" ]; then
- words_=("${COMP_WORDS[@]}")
- return
- fi
- # List of word completion separators has shrunk;
- # re-assemble words to complete.
- for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do
- # Append each nonempty word consisting of just
- # word separator characters to the current word.
- first=t
- while
- [ $i -gt 0 ] &&
- [ -n "${COMP_WORDS[$i]}" ] &&
- # word consists of excluded word separators
- [ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ]
- do
- # Attach to the previous token,
- # unless the previous token is the command name.
- if [ $j -ge 2 ] && [ -n "$first" ]; then
- ((j--))
- fi
- first=
- words_[$j]=${words_[j]}${COMP_WORDS[i]}
- if [ $i = $COMP_CWORD ]; then
- cword_=$j
- fi
- if (($i < ${#COMP_WORDS[@]} - 1)); then
- ((i++))
- else
- # Done.
- return
- fi
- done
- words_[$j]=${words_[j]}${COMP_WORDS[i]}
- if [ $i = $COMP_CWORD ]; then
- cword_=$j
- fi
- done
-}
-
-if ! type _get_comp_words_by_ref >/dev/null 2>&1; then
-_get_comp_words_by_ref ()
-{
- local exclude cur_ words_ cword_
- if [ "$1" = "-n" ]; then
- exclude=$2
- shift 2
- fi
- __git_reassemble_comp_words_by_ref "$exclude"
- cur_=${words_[cword_]}
- while [ $# -gt 0 ]; do
- case "$1" in
- cur)
- cur=$cur_
- ;;
- prev)
- prev=${words_[$cword_-1]}
- ;;
- words)
- words=("${words_[@]}")
- ;;
- cword)
- cword=$cword_
- ;;
- esac
- shift
- done
-}
-fi
-
-__gitcompappend ()
-{
- local x i=${#COMPREPLY[@]}
- for x in $1; do
- if [[ "$x" == "$3"* ]]; then
- COMPREPLY[i++]="$2$x$4"
- fi
- done
-}
-
-__gitcompadd ()
-{
- COMPREPLY=()
- __gitcompappend "$@"
-}
-
-# Generates completion reply, appending a space to possible completion words,
-# if necessary.
-# It accepts 1 to 4 arguments:
-# 1: List of possible completion words.
-# 2: A prefix to be added to each possible completion word (optional).
-# 3: Generate possible completion matches for this word (optional).
-# 4: A suffix to be appended to each possible completion word (optional).
-__gitcomp ()
-{
- local cur_="${3-$cur}"
-
- case "$cur_" in
- --*=)
- ;;
- *)
- local c i=0 IFS=$' \t\n'
- for c in $1; do
- c="$c${4-}"
- if [[ $c == "$cur_"* ]]; then
- case $c in
- --*=*|*.) ;;
- *) c="$c " ;;
- esac
- COMPREPLY[i++]="${2-}$c"
- fi
- done
- ;;
- esac
-}
-
-# Variation of __gitcomp_nl () that appends to the existing list of
-# completion candidates, COMPREPLY.
-__gitcomp_nl_append ()
-{
- local IFS=$'\n'
- __gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }"
-}
-
-# Generates completion reply from newline-separated possible completion words
-# by appending a space to all of them.
-# It accepts 1 to 4 arguments:
-# 1: List of possible completion words, separated by a single newline.
-# 2: A prefix to be added to each possible completion word (optional).
-# 3: Generate possible completion matches for this word (optional).
-# 4: A suffix to be appended to each possible completion word instead of
-# the default space (optional). If specified but empty, nothing is
-# appended.
-__gitcomp_nl ()
-{
- COMPREPLY=()
- __gitcomp_nl_append "$@"
-}
-
-# Generates completion reply with compgen from newline-separated possible
-# completion filenames.
-# It accepts 1 to 3 arguments:
-# 1: List of possible completion filenames, separated by a single newline.
-# 2: A directory prefix to be added to each possible completion filename
-# (optional).
-# 3: Generate possible completion matches for this word (optional).
-__gitcomp_file ()
-{
- local IFS=$'\n'
-
- # XXX does not work when the directory prefix contains a tilde,
- # since tilde expansion is not applied.
- # This means that COMPREPLY will be empty and Bash default
- # completion will be used.
- __gitcompadd "$1" "${2-}" "${3-$cur}" ""
-
- # use a hack to enable file mode in bash < 4
- compopt -o filenames +o nospace 2>/dev/null ||
- compgen -f /non-existing-dir/ > /dev/null
-}
-
-# Execute 'git ls-files', unless the --committable option is specified, in
-# which case it runs 'git diff-index' to find out the files that can be
-# committed. It return paths relative to the directory specified in the first
-# argument, and using the options specified in the second argument.
-__git_ls_files_helper ()
-{
- if [ "$2" == "--committable" ]; then
- git -C "$1" diff-index --name-only --relative HEAD
- else
- # NOTE: $2 is not quoted in order to support multiple options
- git -C "$1" ls-files --exclude-standard $2
- fi 2>/dev/null
-}
-
-
-# __git_index_files accepts 1 or 2 arguments:
-# 1: Options to pass to ls-files (required).
-# 2: A directory path (optional).
-# If provided, only files within the specified directory are listed.
-# Sub directories are never recursed. Path must have a trailing
-# slash.
-__git_index_files ()
-{
- local dir="$(__gitdir)" root="${2-.}" file
-
- if [ -d "$dir" ]; then
- __git_ls_files_helper "$root" "$1" |
- while read -r file; do
- case "$file" in
- ?*/*) echo "${file%%/*}" ;;
- *) echo "$file" ;;
- esac
- done | sort | uniq
- fi
-}
-
-__git_heads ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir" ]; then
- git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
- refs/heads
- return
- fi
-}
-
-__git_tags ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir" ]; then
- git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
- refs/tags
- return
- fi
-}
-
-# __git_refs accepts 0, 1 (to pass to __gitdir), or 2 arguments
-# presence of 2nd argument means use the guess heuristic employed
-# by checkout for tracking branches
-__git_refs ()
-{
- local i hash dir="$(__gitdir "${1-}")" track="${2-}"
- local format refs
- if [ -d "$dir" ]; then
- case "$cur" in
- refs|refs/*)
- format="refname"
- refs="${cur%/*}"
- track=""
- ;;
- *)
- for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do
- if [ -e "$dir/$i" ]; then echo $i; fi
- done
- format="refname:short"
- refs="refs/tags refs/heads refs/remotes"
- ;;
- esac
- git --git-dir="$dir" for-each-ref --format="%($format)" \
- $refs
- if [ -n "$track" ]; then
- # employ the heuristic used by git checkout
- # Try to find a remote branch that matches the completion word
- # but only output if the branch name is unique
- local ref entry
- git --git-dir="$dir" for-each-ref --shell --format="ref=%(refname:short)" \
- "refs/remotes/" | \
- while read -r entry; do
- eval "$entry"
- ref="${ref#*/}"
- if [[ "$ref" == "$cur"* ]]; then
- echo "$ref"
- fi
- done | sort | uniq -u
- fi
- return
- fi
- case "$cur" in
- refs|refs/*)
- git ls-remote "$dir" "$cur*" 2>/dev/null | \
- while read -r hash i; do
- case "$i" in
- *^{}) ;;
- *) echo "$i" ;;
- esac
- done
- ;;
- *)
- echo "HEAD"
- git for-each-ref --format="%(refname:short)" -- \
- "refs/remotes/$dir/" 2>/dev/null | sed -e "s#^$dir/##"
- ;;
- esac
-}
-
-# __git_refs2 requires 1 argument (to pass to __git_refs)
-__git_refs2 ()
-{
- local i
- for i in $(__git_refs "$1"); do
- echo "$i:$i"
- done
-}
-
-# __git_refs_remotes requires 1 argument (to pass to ls-remote)
-__git_refs_remotes ()
-{
- local i hash
- git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \
- while read -r hash i; do
- echo "$i:refs/remotes/$1/${i#refs/heads/}"
- done
-}
-
-__git_remotes ()
-{
- local d="$(__gitdir)"
- test -d "$d/remotes" && ls -1 "$d/remotes"
- git --git-dir="$d" remote
-}
-
-__git_list_merge_strategies ()
-{
- git merge -s help 2>&1 |
- sed -n -e '/[Aa]vailable strategies are: /,/^$/{
- s/\.$//
- s/.*://
- s/^[ ]*//
- s/[ ]*$//
- p
- }'
-}
-
-__git_merge_strategies=
-# 'git merge -s help' (and thus detection of the merge strategy
-# list) fails, unfortunately, if run outside of any git working
-# tree. __git_merge_strategies is set to the empty string in
-# that case, and the detection will be repeated the next time it
-# is needed.
-__git_compute_merge_strategies ()
-{
- test -n "$__git_merge_strategies" ||
- __git_merge_strategies=$(__git_list_merge_strategies)
-}
-
-__git_complete_revlist_file ()
-{
- local pfx ls ref cur_="$cur"
- case "$cur_" in
- *..?*:*)
- return
- ;;
- ?*:*)
- ref="${cur_%%:*}"
- cur_="${cur_#*:}"
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- ls="$ref:$pfx"
- pfx="$pfx/"
- ;;
- *)
- ls="$ref"
- ;;
- esac
-
- case "$COMP_WORDBREAKS" in
- *:*) : great ;;
- *) pfx="$ref:$pfx" ;;
- esac
-
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" ls-tree "$ls" 2>/dev/null \
- | sed '/^100... blob /{
- s,^.* ,,
- s,$, ,
- }
- /^120000 blob /{
- s,^.* ,,
- s,$, ,
- }
- /^040000 tree /{
- s,^.* ,,
- s,$,/,
- }
- s/^.* //')" \
- "$pfx" "$cur_" ""
- ;;
- *...*)
- pfx="${cur_%...*}..."
- cur_="${cur_#*...}"
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- ;;
- *..*)
- pfx="${cur_%..*}.."
- cur_="${cur_#*..}"
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-}
-
-
-# __git_complete_index_file requires 1 argument:
-# 1: the options to pass to ls-file
-#
-# The exception is --committable, which finds the files appropriate commit.
-__git_complete_index_file ()
-{
- local pfx="" cur_="$cur"
-
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- pfx="${pfx}/"
- ;;
- esac
-
- __gitcomp_file "$(__git_index_files "$1" ${pfx:+"$pfx"})" "$pfx" "$cur_"
-}
-
-__git_complete_file ()
-{
- __git_complete_revlist_file
-}
-
-__git_complete_revlist ()
-{
- __git_complete_revlist_file
-}
-
-__git_complete_remote_or_refspec ()
-{
- local cur_="$cur" cmd="${words[1]}"
- local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
- if [ "$cmd" = "remote" ]; then
- ((c++))
- fi
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;;
- --all)
- case "$cmd" in
- push) no_complete_refspec=1 ;;
- fetch)
- return
- ;;
- *) ;;
- esac
- ;;
- -*) ;;
- *) remote="$i"; break ;;
- esac
- ((c++))
- done
- if [ -z "$remote" ]; then
- __gitcomp_nl "$(__git_remotes)"
- return
- fi
- if [ $no_complete_refspec = 1 ]; then
- return
- fi
- [ "$remote" = "." ] && remote=
- case "$cur_" in
- *:*)
- case "$COMP_WORDBREAKS" in
- *:*) : great ;;
- *) pfx="${cur_%%:*}:" ;;
- esac
- cur_="${cur_#*:}"
- lhs=0
- ;;
- +*)
- pfx="+"
- cur_="${cur_#+}"
- ;;
- esac
- case "$cmd" in
- fetch)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs2 "$remote")" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- fi
- ;;
- pull|remote)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- fi
- ;;
- push)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
- fi
- ;;
- esac
-}
-
-__git_complete_strategy ()
-{
- __git_compute_merge_strategies
- case "$prev" in
- -s|--strategy)
- __gitcomp "$__git_merge_strategies"
- return 0
- esac
- case "$cur" in
- --strategy=*)
- __gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}"
- return 0
- ;;
- esac
- return 1
-}
-
-__git_commands () {
- if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}"
- then
- printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}"
- else
- git help -a|egrep '^ [a-zA-Z0-9]'
- fi
-}
-
-__git_list_all_commands ()
-{
- local i IFS=" "$'\n'
- for i in $(__git_commands)
- do
- case $i in
- *--*) : helper pattern;;
- *) echo $i;;
- esac
- done
-}
-
-__git_all_commands=
-__git_compute_all_commands ()
-{
- test -n "$__git_all_commands" ||
- __git_all_commands=$(__git_list_all_commands)
-}
-
-__git_list_porcelain_commands ()
-{
- local i IFS=" "$'\n'
- __git_compute_all_commands
- for i in $__git_all_commands
- do
- case $i in
- *--*) : helper pattern;;
- applymbox) : ask gittus;;
- applypatch) : ask gittus;;
- archimport) : import;;
- cat-file) : plumbing;;
- check-attr) : plumbing;;
- check-ignore) : plumbing;;
- check-mailmap) : plumbing;;
- check-ref-format) : plumbing;;
- checkout-index) : plumbing;;
- commit-tree) : plumbing;;
- count-objects) : infrequent;;
- credential) : credentials;;
- credential-*) : credentials helper;;
- cvsexportcommit) : export;;
- cvsimport) : import;;
- cvsserver) : daemon;;
- daemon) : daemon;;
- diff-files) : plumbing;;
- diff-index) : plumbing;;
- diff-tree) : plumbing;;
- fast-import) : import;;
- fast-export) : export;;
- fsck-objects) : plumbing;;
- fetch-pack) : plumbing;;
- fmt-merge-msg) : plumbing;;
- for-each-ref) : plumbing;;
- hash-object) : plumbing;;
- http-*) : transport;;
- index-pack) : plumbing;;
- init-db) : deprecated;;
- local-fetch) : plumbing;;
- ls-files) : plumbing;;
- ls-remote) : plumbing;;
- ls-tree) : plumbing;;
- mailinfo) : plumbing;;
- mailsplit) : plumbing;;
- merge-*) : plumbing;;
- mktree) : plumbing;;
- mktag) : plumbing;;
- pack-objects) : plumbing;;
- pack-redundant) : plumbing;;
- pack-refs) : plumbing;;
- parse-remote) : plumbing;;
- patch-id) : plumbing;;
- prune) : plumbing;;
- prune-packed) : plumbing;;
- quiltimport) : import;;
- read-tree) : plumbing;;
- receive-pack) : plumbing;;
- remote-*) : transport;;
- rerere) : plumbing;;
- rev-list) : plumbing;;
- rev-parse) : plumbing;;
- runstatus) : plumbing;;
- sh-setup) : internal;;
- shell) : daemon;;
- show-ref) : plumbing;;
- send-pack) : plumbing;;
- show-index) : plumbing;;
- ssh-*) : transport;;
- stripspace) : plumbing;;
- symbolic-ref) : plumbing;;
- unpack-file) : plumbing;;
- unpack-objects) : plumbing;;
- update-index) : plumbing;;
- update-ref) : plumbing;;
- update-server-info) : daemon;;
- upload-archive) : plumbing;;
- upload-pack) : plumbing;;
- write-tree) : plumbing;;
- var) : infrequent;;
- verify-pack) : infrequent;;
- verify-tag) : plumbing;;
- *) echo $i;;
- esac
- done
-}
-
-__git_porcelain_commands=
-__git_compute_porcelain_commands ()
-{
- test -n "$__git_porcelain_commands" ||
- __git_porcelain_commands=$(__git_list_porcelain_commands)
-}
-
-# Lists all set config variables starting with the given section prefix,
-# with the prefix removed.
-__git_get_config_variables ()
-{
- local section="$1" i IFS=$'\n'
- for i in $(git --git-dir="$(__gitdir)" config --name-only --get-regexp "^$section\..*" 2>/dev/null); do
- echo "${i#$section.}"
- done
-}
-
-__git_pretty_aliases ()
-{
- __git_get_config_variables "pretty"
-}
-
-__git_aliases ()
-{
- __git_get_config_variables "alias"
-}
-
-# __git_aliased_command requires 1 argument
-__git_aliased_command ()
-{
- local word cmdline=$(git --git-dir="$(__gitdir)" \
- config --get "alias.$1")
- for word in $cmdline; do
- case "$word" in
- \!gitk|gitk)
- echo "gitk"
- return
- ;;
- \!*) : shell command alias ;;
- -*) : option ;;
- *=*) : setting env ;;
- git) : git itself ;;
- \(\)) : skip parens of shell function definition ;;
- {) : skip start of shell helper function ;;
- :) : skip null command ;;
- \'*) : skip opening quote after sh -c ;;
- *)
- echo "$word"
- return
- esac
- done
-}
-
-# __git_find_on_cmdline requires 1 argument
-__git_find_on_cmdline ()
-{
- local word subcommand c=1
- while [ $c -lt $cword ]; do
- word="${words[c]}"
- for subcommand in $1; do
- if [ "$subcommand" = "$word" ]; then
- echo "$subcommand"
- return
- fi
- done
- ((c++))
- done
-}
-
-__git_has_doubledash ()
-{
- local c=1
- while [ $c -lt $cword ]; do
- if [ "--" = "${words[c]}" ]; then
- return 0
- fi
- ((c++))
- done
- return 1
-}
-
-# Try to count non option arguments passed on the command line for the
-# specified git command.
-# When options are used, it is necessary to use the special -- option to
-# tell the implementation were non option arguments begin.
-# XXX this can not be improved, since options can appear everywhere, as
-# an example:
-# git mv x -n y
-#
-# __git_count_arguments requires 1 argument: the git command executed.
-__git_count_arguments ()
-{
- local word i c=0
-
- # Skip "git" (first argument)
- for ((i=1; i < ${#words[@]}; i++)); do
- word="${words[i]}"
-
- case "$word" in
- --)
- # Good; we can assume that the following are only non
- # option arguments.
- ((c = 0))
- ;;
- "$1")
- # Skip the specified git command and discard git
- # main options
- ((c = 0))
- ;;
- ?*)
- ((c++))
- ;;
- esac
- done
-
- printf "%d" $c
-}
-
-__git_whitespacelist="nowarn warn error error-all fix"
-
-_git_am ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir"/rebase-apply ]; then
- __gitcomp "--skip --continue --resolved --abort"
- return
- fi
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --3way --committer-date-is-author-date --ignore-date
- --ignore-whitespace --ignore-space-change
- --interactive --keep --no-utf8 --signoff --utf8
- --whitespace= --scissors
- "
- return
- esac
-}
-
-_git_apply ()
-{
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --stat --numstat --summary --check --index
- --cached --index-info --reverse --reject --unidiff-zero
- --apply --no-add --exclude=
- --ignore-whitespace --ignore-space-change
- --whitespace= --inaccurate-eof --verbose
- "
- return
- esac
-}
-
-_git_add ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --interactive --refresh --patch --update --dry-run
- --ignore-errors --intent-to-add
- "
- return
- esac
-
- # XXX should we check for --update and --all options ?
- __git_complete_index_file "--others --modified --directory --no-empty-directory"
-}
-
-_git_archive ()
-{
- case "$cur" in
- --format=*)
- __gitcomp "$(git archive --list)" "" "${cur##--format=}"
- return
- ;;
- --remote=*)
- __gitcomp_nl "$(__git_remotes)" "" "${cur##--remote=}"
- return
- ;;
- --*)
- __gitcomp "
- --format= --list --verbose
- --prefix= --remote= --exec=
- "
- return
- ;;
- esac
- __git_complete_file
-}
-
-_git_bisect ()
-{
- __git_has_doubledash && return
-
- local subcommands="start bad good skip reset visualize replay log run"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- if [ -f "$(__gitdir)"/BISECT_START ]; then
- __gitcomp "$subcommands"
- else
- __gitcomp "replay start"
- fi
- return
- fi
-
- case "$subcommand" in
- bad|good|reset|skip|start)
- __gitcomp_nl "$(__git_refs)"
- ;;
- *)
- ;;
- esac
-}
-
-_git_branch ()
-{
- local i c=1 only_local_ref="n" has_r="n"
-
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- -d|-m) only_local_ref="y" ;;
- -r) has_r="y" ;;
- esac
- ((c++))
- done
-
- case "$cur" in
- --set-upstream-to=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur##--set-upstream-to=}"
- ;;
- --*)
- __gitcomp "
- --color --no-color --verbose --abbrev= --no-abbrev
- --track --no-track --contains --merged --no-merged
- --set-upstream-to= --edit-description --list
- --unset-upstream
- "
- ;;
- *)
- if [ $only_local_ref = "y" -a $has_r = "n" ]; then
- __gitcomp_nl "$(__git_heads)"
- else
- __gitcomp_nl "$(__git_refs)"
- fi
- ;;
- esac
-}
-
-_git_bundle ()
-{
- local cmd="${words[2]}"
- case "$cword" in
- 2)
- __gitcomp "create list-heads verify unbundle"
- ;;
- 3)
- # looking for a file
- ;;
- *)
- case "$cmd" in
- create)
- __git_complete_revlist
- ;;
- esac
- ;;
- esac
-}
-
-_git_checkout ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --conflict=*)
- __gitcomp "diff3 merge" "" "${cur##--conflict=}"
- ;;
- --*)
- __gitcomp "
- --quiet --ours --theirs --track --no-track --merge
- --conflict= --orphan --patch
- "
- ;;
- *)
- # check if --track, --no-track, or --no-guess was specified
- # if so, disable DWIM mode
- local flags="--track --no-track --no-guess" track=1
- if [ -n "$(__git_find_on_cmdline "$flags")" ]; then
- track=''
- fi
- __gitcomp_nl "$(__git_refs '' $track)"
- ;;
- esac
-}
-
-_git_cherry ()
-{
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_cherry_pick ()
-{
- local dir="$(__gitdir)"
- if [ -f "$dir"/CHERRY_PICK_HEAD ]; then
- __gitcomp "--continue --quit --abort"
- return
- fi
- case "$cur" in
- --*)
- __gitcomp "--edit --no-commit --signoff --strategy= --mainline"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-}
-
-_git_clean ()
-{
- case "$cur" in
- --*)
- __gitcomp "--dry-run --quiet"
- return
- ;;
- esac
-
- # XXX should we check for -x option ?
- __git_complete_index_file "--others --directory"
-}
-
-_git_clone ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --local
- --no-hardlinks
- --shared
- --reference
- --quiet
- --no-checkout
- --bare
- --mirror
- --origin
- --upload-pack
- --template=
- --depth
- --single-branch
- --branch
- "
- return
- ;;
- esac
-}
-
-_git_commit ()
-{
- case "$prev" in
- -c|-C)
- __gitcomp_nl "$(__git_refs)" "" "${cur}"
- return
- ;;
- esac
-
- case "$cur" in
- --cleanup=*)
- __gitcomp "default scissors strip verbatim whitespace
- " "" "${cur##--cleanup=}"
- return
- ;;
- --reuse-message=*|--reedit-message=*|\
- --fixup=*|--squash=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
- return
- ;;
- --untracked-files=*)
- __gitcomp "all no normal" "" "${cur##--untracked-files=}"
- return
- ;;
- --*)
- __gitcomp "
- --all --author= --signoff --verify --no-verify
- --edit --no-edit
- --amend --include --only --interactive
- --dry-run --reuse-message= --reedit-message=
- --reset-author --file= --message= --template=
- --cleanup= --untracked-files --untracked-files=
- --verbose --quiet --fixup= --squash=
- "
- return
- esac
-
- if git rev-parse --verify --quiet HEAD >/dev/null; then
- __git_complete_index_file "--committable"
- else
- # This is the first commit
- __git_complete_index_file "--cached"
- fi
-}
-
-_git_describe ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --all --tags --contains --abbrev= --candidates=
- --exact-match --debug --long --match --always
- "
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-__git_diff_algorithms="myers minimal patience histogram"
-
-__git_diff_common_options="--stat --numstat --shortstat --summary
- --patch-with-stat --name-only --name-status --color
- --no-color --color-words --no-renames --check
- --full-index --binary --abbrev --diff-filter=
- --find-copies-harder
- --text --ignore-space-at-eol --ignore-space-change
- --ignore-all-space --ignore-blank-lines --exit-code
- --quiet --ext-diff --no-ext-diff
- --no-prefix --src-prefix= --dst-prefix=
- --inter-hunk-context=
- --patience --histogram --minimal
- --raw --word-diff
- --dirstat --dirstat= --dirstat-by-file
- --dirstat-by-file= --cumulative
- --diff-algorithm=
-"
-
-_git_diff ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --diff-algorithm=*)
- __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
- return
- ;;
- --*)
- __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
- --base --ours --theirs --no-index
- $__git_diff_common_options
- "
- return
- ;;
- esac
- __git_complete_revlist_file
-}
-
-__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
- tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc codecompare
-"
-
-_git_difftool ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --tool=*)
- __gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}"
- return
- ;;
- --*)
- __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
- --base --ours --theirs
- --no-renames --diff-filter= --find-copies-harder
- --relative --ignore-submodules
- --tool="
- return
- ;;
- esac
- __git_complete_revlist_file
-}
-
-__git_fetch_recurse_submodules="yes on-demand no"
-
-__git_fetch_options="
- --quiet --verbose --append --upload-pack --force --keep --depth=
- --tags --no-tags --all --prune --dry-run --recurse-submodules=
-"
-
-_git_fetch ()
-{
- case "$cur" in
- --recurse-submodules=*)
- __gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}"
- return
- ;;
- --*)
- __gitcomp "$__git_fetch_options"
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-__git_format_patch_options="
- --stdout --attach --no-attach --thread --thread= --no-thread
- --numbered --start-number --numbered-files --keep-subject --signoff
- --signature --no-signature --in-reply-to= --cc= --full-index --binary
- --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
- --inline --suffix= --ignore-if-in-upstream --subject-prefix=
- --output-directory --reroll-count --to= --quiet --notes
-"
-
-_git_format_patch ()
-{
- case "$cur" in
- --thread=*)
- __gitcomp "
- deep shallow
- " "" "${cur##--thread=}"
- return
- ;;
- --*)
- __gitcomp "$__git_format_patch_options"
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_fsck ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --tags --root --unreachable --cache --no-reflogs --full
- --strict --verbose --lost-found
- "
- return
- ;;
- esac
-}
-
-_git_gc ()
-{
- case "$cur" in
- --*)
- __gitcomp "--prune --aggressive"
- return
- ;;
- esac
-}
-
-_git_gitk ()
-{
- _gitk
-}
-
-__git_match_ctag() {
- awk "/^${1//\//\\/}/ { print \$1 }" "$2"
-}
-
-_git_grep ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "
- --cached
- --text --ignore-case --word-regexp --invert-match
- --full-name --line-number
- --extended-regexp --basic-regexp --fixed-strings
- --perl-regexp
- --files-with-matches --name-only
- --files-without-match
- --max-depth
- --count
- --and --or --not --all-match
- "
- return
- ;;
- esac
-
- case "$cword,$prev" in
- 2,*|*,-*)
- if test -r tags; then
- __gitcomp_nl "$(__git_match_ctag "$cur" tags)"
- return
- fi
- ;;
- esac
-
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_help ()
-{
- case "$cur" in
- --*)
- __gitcomp "--all --info --man --web"
- return
- ;;
- esac
- __git_compute_all_commands
- __gitcomp "$__git_all_commands $(__git_aliases)
- attributes cli core-tutorial cvs-migration
- diffcore gitk glossary hooks ignore modules
- namespaces repository-layout tutorial tutorial-2
- workflows
- "
-}
-
-_git_init ()
-{
- case "$cur" in
- --shared=*)
- __gitcomp "
- false true umask group all world everybody
- " "" "${cur##--shared=}"
- return
- ;;
- --*)
- __gitcomp "--quiet --bare --template= --shared --shared="
- return
- ;;
- esac
-}
-
-_git_ls_files ()
-{
- case "$cur" in
- --*)
- __gitcomp "--cached --deleted --modified --others --ignored
- --stage --directory --no-empty-directory --unmerged
- --killed --exclude= --exclude-from=
- --exclude-per-directory= --exclude-standard
- --error-unmatch --with-tree= --full-name
- --abbrev --ignored --exclude-per-directory
- "
- return
- ;;
- esac
-
- # XXX ignore options like --modified and always suggest all cached
- # files.
- __git_complete_index_file "--cached"
-}
-
-_git_ls_remote ()
-{
- __gitcomp_nl "$(__git_remotes)"
-}
-
-_git_ls_tree ()
-{
- __git_complete_file
-}
-
-# Options that go well for log, shortlog and gitk
-__git_log_common_options="
- --not --all
- --branches --tags --remotes
- --first-parent --merges --no-merges
- --max-count=
- --max-age= --since= --after=
- --min-age= --until= --before=
- --min-parents= --max-parents=
- --no-min-parents --no-max-parents
-"
-# Options that go well for log and gitk (not shortlog)
-__git_log_gitk_options="
- --dense --sparse --full-history
- --simplify-merges --simplify-by-decoration
- --left-right --notes --no-notes
-"
-# Options that go well for log and shortlog (not gitk)
-__git_log_shortlog_options="
- --author= --committer= --grep=
- --all-match --invert-grep
-"
-
-__git_log_pretty_formats="oneline short medium full fuller email raw format:"
-__git_log_date_formats="relative iso8601 rfc2822 short local default raw"
-
-_git_log ()
-{
- __git_has_doubledash && return
-
- local g="$(git rev-parse --git-dir 2>/dev/null)"
- local merge=""
- if [ -f "$g/MERGE_HEAD" ]; then
- merge="--merge"
- fi
- case "$cur" in
- --pretty=*|--format=*)
- __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
- " "" "${cur#*=}"
- return
- ;;
- --date=*)
- __gitcomp "$__git_log_date_formats" "" "${cur##--date=}"
- return
- ;;
- --decorate=*)
- __gitcomp "full short no" "" "${cur##--decorate=}"
- return
- ;;
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_shortlog_options
- $__git_log_gitk_options
- --root --topo-order --date-order --reverse
- --follow --full-diff
- --abbrev-commit --abbrev=
- --relative-date --date=
- --pretty= --format= --oneline
- --show-signature
- --cherry-pick
- --graph
- --decorate --decorate=
- --walk-reflogs
- --parents --children
- $merge
- $__git_diff_common_options
- --pickaxe-all --pickaxe-regex
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-# Common merge options shared by git-merge(1) and git-pull(1).
-__git_merge_options="
- --no-commit --no-stat --log --no-log --squash --strategy
- --commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit
- --verify-signatures --no-verify-signatures --gpg-sign
- --quiet --verbose --progress --no-progress
-"
-
-_git_merge ()
-{
- __git_complete_strategy && return
-
- case "$cur" in
- --*)
- __gitcomp "$__git_merge_options
- --rerere-autoupdate --no-rerere-autoupdate --abort"
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_mergetool ()
-{
- case "$cur" in
- --tool=*)
- __gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}"
- return
- ;;
- --*)
- __gitcomp "--tool="
- return
- ;;
- esac
-}
-
-_git_merge_base ()
-{
- case "$cur" in
- --*)
- __gitcomp "--octopus --independent --is-ancestor --fork-point"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_mv ()
-{
- case "$cur" in
- --*)
- __gitcomp "--dry-run"
- return
- ;;
- esac
-
- if [ $(__git_count_arguments "mv") -gt 0 ]; then
- # We need to show both cached and untracked files (including
- # empty directories) since this may not be the last argument.
- __git_complete_index_file "--cached --others --directory"
- else
- __git_complete_index_file "--cached"
- fi
-}
-
-_git_name_rev ()
-{
- __gitcomp "--tags --all --stdin"
-}
-
-_git_notes ()
-{
- local subcommands='add append copy edit list prune remove show'
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
-
- case "$subcommand,$cur" in
- ,--*)
- __gitcomp '--ref'
- ;;
- ,*)
- case "$prev" in
- --ref)
- __gitcomp_nl "$(__git_refs)"
- ;;
- *)
- __gitcomp "$subcommands --ref"
- ;;
- esac
- ;;
- add,--reuse-message=*|append,--reuse-message=*|\
- add,--reedit-message=*|append,--reedit-message=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
- ;;
- add,--*|append,--*)
- __gitcomp '--file= --message= --reedit-message=
- --reuse-message='
- ;;
- copy,--*)
- __gitcomp '--stdin'
- ;;
- prune,--*)
- __gitcomp '--dry-run --verbose'
- ;;
- prune,*)
- ;;
- *)
- case "$prev" in
- -m|-F)
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
- ;;
- esac
-}
-
-_git_pull ()
-{
- __git_complete_strategy && return
-
- case "$cur" in
- --recurse-submodules=*)
- __gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}"
- return
- ;;
- --*)
- __gitcomp "
- --rebase --no-rebase
- $__git_merge_options
- $__git_fetch_options
- "
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-__git_push_recurse_submodules="check on-demand"
-
-__git_complete_force_with_lease ()
-{
- local cur_=$1
-
- case "$cur_" in
- --*=)
- ;;
- *:*)
- __gitcomp_nl "$(__git_refs)" "" "${cur_#*:}"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)" "" "$cur_"
- ;;
- esac
-}
-
-_git_push ()
-{
- case "$prev" in
- --repo)
- __gitcomp_nl "$(__git_remotes)"
- return
- ;;
- --recurse-submodules)
- __gitcomp "$__git_push_recurse_submodules"
- return
- ;;
- esac
- case "$cur" in
- --repo=*)
- __gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}"
- return
- ;;
- --recurse-submodules=*)
- __gitcomp "$__git_push_recurse_submodules" "" "${cur##--recurse-submodules=}"
- return
- ;;
- --force-with-lease=*)
- __git_complete_force_with_lease "${cur##--force-with-lease=}"
- return
- ;;
- --*)
- __gitcomp "
- --all --mirror --tags --dry-run --force --verbose
- --quiet --prune --delete --follow-tags
- --receive-pack= --repo= --set-upstream
- --force-with-lease --force-with-lease= --recurse-submodules=
- "
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-_git_rebase ()
-{
- local dir="$(__gitdir)"
- if [ -f "$dir"/rebase-merge/interactive ]; then
- __gitcomp "--continue --skip --abort --edit-todo"
- return
- elif [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then
- __gitcomp "--continue --skip --abort"
- return
- fi
- __git_complete_strategy && return
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --onto --merge --strategy --interactive
- --preserve-merges --stat --no-stat
- --committer-date-is-author-date --ignore-date
- --ignore-whitespace --whitespace=
- --autosquash --fork-point --no-fork-point
- --autostash
- "
-
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_reflog ()
-{
- local subcommands="show delete expire"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
-
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- else
- __gitcomp_nl "$(__git_refs)"
- fi
-}
-
-__git_send_email_confirm_options="always never auto cc compose"
-__git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
-
-_git_send_email ()
-{
- case "$cur" in
- --confirm=*)
- __gitcomp "
- $__git_send_email_confirm_options
- " "" "${cur##--confirm=}"
- return
- ;;
- --suppress-cc=*)
- __gitcomp "
- $__git_send_email_suppresscc_options
- " "" "${cur##--suppress-cc=}"
-
- return
- ;;
- --smtp-encryption=*)
- __gitcomp "ssl tls" "" "${cur##--smtp-encryption=}"
- return
- ;;
- --thread=*)
- __gitcomp "
- deep shallow
- " "" "${cur##--thread=}"
- return
- ;;
- --*)
- __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
- --compose --confirm= --dry-run --envelope-sender
- --from --identity
- --in-reply-to --no-chain-reply-to --no-signed-off-by-cc
- --no-suppress-from --no-thread --quiet
- --signed-off-by-cc --smtp-pass --smtp-server
- --smtp-server-port --smtp-encryption= --smtp-user
- --subject --suppress-cc= --suppress-from --thread --to
- --validate --no-validate
- $__git_format_patch_options"
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_stage ()
-{
- _git_add
-}
-
-__git_config_get_set_variables ()
-{
- local prevword word config_file= c=$cword
- while [ $c -gt 1 ]; do
- word="${words[c]}"
- case "$word" in
- --system|--global|--local|--file=*)
- config_file="$word"
- break
- ;;
- -f|--file)
- config_file="$word $prevword"
- break
- ;;
- esac
- prevword=$word
- c=$((--c))
- done
-
- git --git-dir="$(__gitdir)" config $config_file --name-only --list 2>/dev/null
-}
-
-_git_config ()
-{
- case "$prev" in
- branch.*.remote|branch.*.pushremote)
- __gitcomp_nl "$(__git_remotes)"
- return
- ;;
- branch.*.merge)
- __gitcomp_nl "$(__git_refs)"
- return
- ;;
- branch.*.rebase)
- __gitcomp "false true"
- return
- ;;
- remote.pushdefault)
- __gitcomp_nl "$(__git_remotes)"
- return
- ;;
- remote.*.fetch)
- local remote="${prev#remote.}"
- remote="${remote%.fetch}"
- if [ -z "$cur" ]; then
- __gitcomp_nl "refs/heads/" "" "" ""
- return
- fi
- __gitcomp_nl "$(__git_refs_remotes "$remote")"
- return
- ;;
- remote.*.push)
- local remote="${prev#remote.}"
- remote="${remote%.push}"
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" \
- for-each-ref --format='%(refname):%(refname)' \
- refs/heads)"
- return
- ;;
- pull.twohead|pull.octopus)
- __git_compute_merge_strategies
- __gitcomp "$__git_merge_strategies"
- return
- ;;
- color.branch|color.diff|color.interactive|\
- color.showbranch|color.status|color.ui)
- __gitcomp "always never auto"
- return
- ;;
- color.pager)
- __gitcomp "false true"
- return
- ;;
- color.*.*)
- __gitcomp "
- normal black red green yellow blue magenta cyan white
- bold dim ul blink reverse
- "
- return
- ;;
- diff.submodule)
- __gitcomp "log short"
- return
- ;;
- help.format)
- __gitcomp "man info web html"
- return
- ;;
- log.date)
- __gitcomp "$__git_log_date_formats"
- return
- ;;
- sendemail.aliasesfiletype)
- __gitcomp "mutt mailrc pine elm gnus"
- return
- ;;
- sendemail.confirm)
- __gitcomp "$__git_send_email_confirm_options"
- return
- ;;
- sendemail.suppresscc)
- __gitcomp "$__git_send_email_suppresscc_options"
- return
- ;;
- sendemail.transferencoding)
- __gitcomp "7bit 8bit quoted-printable base64"
- return
- ;;
- --get|--get-all|--unset|--unset-all)
- __gitcomp_nl "$(__git_config_get_set_variables)"
- return
- ;;
- *.*)
- return
- ;;
- esac
- case "$cur" in
- --*)
- __gitcomp "
- --system --global --local --file=
- --list --replace-all
- --get --get-all --get-regexp
- --add --unset --unset-all
- --remove-section --rename-section
- --name-only
- "
- return
- ;;
- branch.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_"
- return
- ;;
- branch.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "."
- __gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_"
- return
- ;;
- guitool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "
- argprompt cmd confirm needsfile noconsole norescan
- prompt revprompt revunmerged title
- " "$pfx" "$cur_"
- return
- ;;
- difftool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
- return
- ;;
- man.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
- return
- ;;
- mergetool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path trustExitCode" "$pfx" "$cur_"
- return
- ;;
- pager.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __git_compute_all_commands
- __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_"
- return
- ;;
- remote.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "
- url proxy fetch push mirror skipDefaultUpdate
- receivepack uploadpack tagopt pushurl
- " "$pfx" "$cur_"
- return
- ;;
- remote.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
- __gitcomp_nl_append "pushdefault" "$pfx" "$cur_"
- return
- ;;
- url.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_"
- return
- ;;
- esac
- __gitcomp "
- add.ignoreErrors
- advice.commitBeforeMerge
- advice.detachedHead
- advice.implicitIdentity
- advice.pushNonFastForward
- advice.resolveConflict
- advice.statusHints
- alias.
- am.keepcr
- apply.ignorewhitespace
- apply.whitespace
- branch.autosetupmerge
- branch.autosetuprebase
- browser.
- clean.requireForce
- color.branch
- color.branch.current
- color.branch.local
- color.branch.plain
- color.branch.remote
- color.decorate.HEAD
- color.decorate.branch
- color.decorate.remoteBranch
- color.decorate.stash
- color.decorate.tag
- color.diff
- color.diff.commit
- color.diff.frag
- color.diff.func
- color.diff.meta
- color.diff.new
- color.diff.old
- color.diff.plain
- color.diff.whitespace
- color.grep
- color.grep.context
- color.grep.filename
- color.grep.function
- color.grep.linenumber
- color.grep.match
- color.grep.selected
- color.grep.separator
- color.interactive
- color.interactive.error
- color.interactive.header
- color.interactive.help
- color.interactive.prompt
- color.pager
- color.showbranch
- color.status
- color.status.added
- color.status.changed
- color.status.header
- color.status.nobranch
- color.status.unmerged
- color.status.untracked
- color.status.updated
- color.ui
- commit.status
- commit.template
- core.abbrev
- core.askpass
- core.attributesfile
- core.autocrlf
- core.bare
- core.bigFileThreshold
- core.compression
- core.createObject
- core.deltaBaseCacheLimit
- core.editor
- core.eol
- core.excludesfile
- core.fileMode
- core.fsyncobjectfiles
- core.gitProxy
- core.ignoreStat
- core.ignorecase
- core.logAllRefUpdates
- core.loosecompression
- core.notesRef
- core.packedGitLimit
- core.packedGitWindowSize
- core.pager
- core.preferSymlinkRefs
- core.preloadindex
- core.quotepath
- core.repositoryFormatVersion
- core.safecrlf
- core.sharedRepository
- core.sparseCheckout
- core.symlinks
- core.trustctime
- core.warnAmbiguousRefs
- core.whitespace
- core.worktree
- diff.autorefreshindex
- diff.external
- diff.ignoreSubmodules
- diff.mnemonicprefix
- diff.noprefix
- diff.renameLimit
- diff.renames
- diff.statGraphWidth
- diff.submodule
- diff.suppressBlankEmpty
- diff.tool
- diff.wordRegex
- diff.algorithm
- difftool.
- difftool.prompt
- fetch.recurseSubmodules
- fetch.unpackLimit
- format.attach
- format.cc
- format.coverLetter
- format.headers
- format.numbered
- format.pretty
- format.signature
- format.signoff
- format.subjectprefix
- format.suffix
- format.thread
- format.to
- gc.
- gc.aggressiveWindow
- gc.auto
- gc.autopacklimit
- gc.packrefs
- gc.pruneexpire
- gc.reflogexpire
- gc.reflogexpireunreachable
- gc.rerereresolved
- gc.rerereunresolved
- gitcvs.allbinary
- gitcvs.commitmsgannotation
- gitcvs.dbTableNamePrefix
- gitcvs.dbdriver
- gitcvs.dbname
- gitcvs.dbpass
- gitcvs.dbuser
- gitcvs.enabled
- gitcvs.logfile
- gitcvs.usecrlfattr
- guitool.
- gui.blamehistoryctx
- gui.commitmsgwidth
- gui.copyblamethreshold
- gui.diffcontext
- gui.encoding
- gui.fastcopyblame
- gui.matchtrackingbranch
- gui.newbranchtemplate
- gui.pruneduringfetch
- gui.spellingdictionary
- gui.trustmtime
- help.autocorrect
- help.browser
- help.format
- http.lowSpeedLimit
- http.lowSpeedTime
- http.maxRequests
- http.minSessions
- http.noEPSV
- http.postBuffer
- http.proxy
- http.sslCipherList
- http.sslVersion
- http.sslCAInfo
- http.sslCAPath
- http.sslCert
- http.sslCertPasswordProtected
- http.sslKey
- http.sslVerify
- http.useragent
- i18n.commitEncoding
- i18n.logOutputEncoding
- imap.authMethod
- imap.folder
- imap.host
- imap.pass
- imap.port
- imap.preformattedHTML
- imap.sslverify
- imap.tunnel
- imap.user
- init.templatedir
- instaweb.browser
- instaweb.httpd
- instaweb.local
- instaweb.modulepath
- instaweb.port
- interactive.singlekey
- log.date
- log.decorate
- log.showroot
- mailmap.file
- man.
- man.viewer
- merge.
- merge.conflictstyle
- merge.log
- merge.renameLimit
- merge.renormalize
- merge.stat
- merge.tool
- merge.verbosity
- mergetool.
- mergetool.keepBackup
- mergetool.keepTemporaries
- mergetool.prompt
- notes.displayRef
- notes.rewrite.
- notes.rewrite.amend
- notes.rewrite.rebase
- notes.rewriteMode
- notes.rewriteRef
- pack.compression
- pack.deltaCacheLimit
- pack.deltaCacheSize
- pack.depth
- pack.indexVersion
- pack.packSizeLimit
- pack.threads
- pack.window
- pack.windowMemory
- pager.
- pretty.
- pull.octopus
- pull.twohead
- push.default
- push.followTags
- rebase.autosquash
- rebase.stat
- receive.autogc
- receive.denyCurrentBranch
- receive.denyDeleteCurrent
- receive.denyDeletes
- receive.denyNonFastForwards
- receive.fsckObjects
- receive.unpackLimit
- receive.updateserverinfo
- remote.pushdefault
- remotes.
- repack.usedeltabaseoffset
- rerere.autoupdate
- rerere.enabled
- sendemail.
- sendemail.aliasesfile
- sendemail.aliasfiletype
- sendemail.bcc
- sendemail.cc
- sendemail.cccmd
- sendemail.chainreplyto
- sendemail.confirm
- sendemail.envelopesender
- sendemail.from
- sendemail.identity
- sendemail.multiedit
- sendemail.signedoffbycc
- sendemail.smtpdomain
- sendemail.smtpencryption
- sendemail.smtppass
- sendemail.smtpserver
- sendemail.smtpserveroption
- sendemail.smtpserverport
- sendemail.smtpuser
- sendemail.suppresscc
- sendemail.suppressfrom
- sendemail.thread
- sendemail.to
- sendemail.validate
- showbranch.default
- status.relativePaths
- status.showUntrackedFiles
- status.submodulesummary
- submodule.
- tar.umask
- transfer.unpackLimit
- url.
- user.email
- user.name
- user.signingkey
- web.browser
- branch. remote.
- "
-}
-
-_git_remote ()
-{
- local subcommands="add rename remove set-head set-branches set-url show prune update"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- return
- fi
-
- case "$subcommand" in
- rename|remove|set-url|show|prune)
- __gitcomp_nl "$(__git_remotes)"
- ;;
- set-head|set-branches)
- __git_complete_remote_or_refspec
- ;;
- update)
- __gitcomp "$(__git_get_config_variables "remotes")"
- ;;
- *)
- ;;
- esac
-}
-
-_git_replace ()
-{
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_reset ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "--merge --mixed --hard --soft --patch"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_revert ()
-{
- local dir="$(__gitdir)"
- if [ -f "$dir"/REVERT_HEAD ]; then
- __gitcomp "--continue --quit --abort"
- return
- fi
- case "$cur" in
- --*)
- __gitcomp "--edit --mainline --no-edit --no-commit --signoff"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_rm ()
-{
- case "$cur" in
- --*)
- __gitcomp "--cached --dry-run --ignore-unmatch --quiet"
- return
- ;;
- esac
-
- __git_complete_index_file "--cached"
-}
-
-_git_shortlog ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_shortlog_options
- --numbered --summary
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_show ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --pretty=*|--format=*)
- __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
- " "" "${cur#*=}"
- return
- ;;
- --diff-algorithm=*)
- __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
- return
- ;;
- --*)
- __gitcomp "--pretty= --format= --abbrev-commit --oneline
- --show-signature
- $__git_diff_common_options
- "
- return
- ;;
- esac
- __git_complete_revlist_file
-}
-
-_git_show_branch ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --all --remotes --topo-order --current --more=
- --list --independent --merge-base --no-name
- --color --no-color
- --sha1-name --sparse --topics --reflog
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_stash ()
-{
- local save_opts='--keep-index --no-keep-index --quiet --patch'
- local subcommands='save list show apply clear drop pop create branch'
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- case "$cur" in
- --*)
- __gitcomp "$save_opts"
- ;;
- *)
- if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
- __gitcomp "$subcommands"
- fi
- ;;
- esac
- else
- case "$subcommand,$cur" in
- save,--*)
- __gitcomp "$save_opts"
- ;;
- apply,--*|pop,--*)
- __gitcomp "--index --quiet"
- ;;
- show,--*|drop,--*|branch,--*)
- ;;
- show,*|apply,*|drop,*|pop,*|branch,*)
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \
- | sed -n -e 's/:.*//p')"
- ;;
- *)
- ;;
- esac
- fi
-}
-
-_git_submodule ()
-{
- __git_has_doubledash && return
-
- local subcommands="add status init deinit update summary foreach sync"
- if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then
- case "$cur" in
- --*)
- __gitcomp "--quiet --cached"
- ;;
- *)
- __gitcomp "$subcommands"
- ;;
- esac
- return
- fi
-}
-
-_git_svn ()
-{
- local subcommands="
- init fetch clone rebase dcommit log find-rev
- set-tree commit-diff info create-ignore propget
- proplist show-ignore show-externals branch tag blame
- migrate mkdirs reset gc
- "
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- else
- local remote_opts="--username= --config-dir= --no-auth-cache"
- local fc_opts="
- --follow-parent --authors-file= --repack=
- --no-metadata --use-svm-props --use-svnsync-props
- --log-window-size= --no-checkout --quiet
- --repack-flags --use-log-author --localtime
- --ignore-paths= --include-paths= $remote_opts
- "
- local init_opts="
- --template= --shared= --trunk= --tags=
- --branches= --stdlayout --minimize-url
- --no-metadata --use-svm-props --use-svnsync-props
- --rewrite-root= --prefix= --use-log-author
- --add-author-from $remote_opts
- "
- local cmt_opts="
- --edit --rmdir --find-copies-harder --copy-similarity=
- "
-
- case "$subcommand,$cur" in
- fetch,--*)
- __gitcomp "--revision= --fetch-all $fc_opts"
- ;;
- clone,--*)
- __gitcomp "--revision= $fc_opts $init_opts"
- ;;
- init,--*)
- __gitcomp "$init_opts"
- ;;
- dcommit,--*)
- __gitcomp "
- --merge --strategy= --verbose --dry-run
- --fetch-all --no-rebase --commit-url
- --revision --interactive $cmt_opts $fc_opts
- "
- ;;
- set-tree,--*)
- __gitcomp "--stdin $cmt_opts $fc_opts"
- ;;
- create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\
- show-externals,--*|mkdirs,--*)
- __gitcomp "--revision="
- ;;
- log,--*)
- __gitcomp "
- --limit= --revision= --verbose --incremental
- --oneline --show-commit --non-recursive
- --authors-file= --color
- "
- ;;
- rebase,--*)
- __gitcomp "
- --merge --verbose --strategy= --local
- --fetch-all --dry-run $fc_opts
- "
- ;;
- commit-diff,--*)
- __gitcomp "--message= --file= --revision= $cmt_opts"
- ;;
- info,--*)
- __gitcomp "--url"
- ;;
- branch,--*)
- __gitcomp "--dry-run --message --tag"
- ;;
- tag,--*)
- __gitcomp "--dry-run --message"
- ;;
- blame,--*)
- __gitcomp "--git-format"
- ;;
- migrate,--*)
- __gitcomp "
- --config-dir= --ignore-paths= --minimize
- --no-auth-cache --username=
- "
- ;;
- reset,--*)
- __gitcomp "--revision= --parent"
- ;;
- *)
- ;;
- esac
- fi
-}
-
-_git_tag ()
-{
- local i c=1 f=0
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- -d|-v)
- __gitcomp_nl "$(__git_tags)"
- return
- ;;
- -f)
- f=1
- ;;
- esac
- ((c++))
- done
-
- case "$prev" in
- -m|-F)
- ;;
- -*|tag)
- if [ $f = 1 ]; then
- __gitcomp_nl "$(__git_tags)"
- fi
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-
- case "$cur" in
- --*)
- __gitcomp "
- --list --delete --verify --annotate --message --file
- --sign --cleanup --local-user --force --column --sort
- --contains --points-at
- "
- ;;
- esac
-}
-
-_git_whatchanged ()
-{
- _git_log
-}
-
-__git_main ()
-{
- local i c=1 command __git_dir
-
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- --git-dir=*) __git_dir="${i#--git-dir=}" ;;
- --git-dir) ((c++)) ; __git_dir="${words[c]}" ;;
- --bare) __git_dir="." ;;
- --help) command="help"; break ;;
- -c|--work-tree|--namespace) ((c++)) ;;
- -*) ;;
- *) command="$i"; break ;;
- esac
- ((c++))
- done
-
- if [ -z "$command" ]; then
- case "$cur" in
- --*) __gitcomp "
- --paginate
- --no-pager
- --git-dir=
- --bare
- --version
- --exec-path
- --exec-path=
- --html-path
- --man-path
- --info-path
- --work-tree=
- --namespace=
- --no-replace-objects
- --help
- "
- ;;
- *) __git_compute_porcelain_commands
- __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;;
- esac
- return
- fi
-
- local completion_func="_git_${command//-/_}"
- declare -f $completion_func >/dev/null && $completion_func && return
-
- local expansion=$(__git_aliased_command "$command")
- if [ -n "$expansion" ]; then
- words[1]=$expansion
- completion_func="_git_${expansion//-/_}"
- declare -f $completion_func >/dev/null && $completion_func
- fi
-}
-
-__gitk_main ()
-{
- __git_has_doubledash && return
-
- local g="$(__gitdir)"
- local merge=""
- if [ -f "$g/MERGE_HEAD" ]; then
- merge="--merge"
- fi
- case "$cur" in
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_gitk_options
- $merge
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-if [[ -n ${ZSH_VERSION-} ]]; then
- echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2
-
- autoload -U +X compinit && compinit
-
- __gitcomp ()
- {
- emulate -L zsh
-
- local cur_="${3-$cur}"
-
- case "$cur_" in
- --*=)
- ;;
- *)
- local c IFS=$' \t\n'
- local -a array
- for c in ${=1}; do
- c="$c${4-}"
- case $c in
- --*=*|*.) ;;
- *) c="$c " ;;
- esac
- array[${#array[@]}+1]="$c"
- done
- compset -P '*[=:]'
- compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
- ;;
- esac
- }
-
- __gitcomp_nl ()
- {
- emulate -L zsh
-
- local IFS=$'\n'
- compset -P '*[=:]'
- compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
- }
-
- __gitcomp_file ()
- {
- emulate -L zsh
-
- local IFS=$'\n'
- compset -P '*[=:]'
- compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
- }
-
- _git ()
- {
- local _ret=1 cur cword prev
- cur=${words[CURRENT]}
- prev=${words[CURRENT-1]}
- let cword=CURRENT-1
- emulate ksh -c __${service}_main
- let _ret && _default && _ret=0
- return _ret
- }
-
- compdef _git git gitk
- return
-fi
-
-__git_func_wrap ()
-{
- local cur words cword prev
- _get_comp_words_by_ref -n =: cur words cword prev
- $1
-}
-
-# Setup completion for certain functions defined above by setting common
-# variables and workarounds.
-# This is NOT a public function; use at your own risk.
-__git_complete ()
-{
- local wrapper="__git_wrap${2}"
- eval "$wrapper () { __git_func_wrap $2 ; }"
- complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
- || complete -o default -o nospace -F $wrapper $1
-}
-
-# wrapper for backwards compatibility
-_git ()
-{
- __git_wrap__git_main
-}
-
-# wrapper for backwards compatibility
-_gitk ()
-{
- __git_wrap__gitk_main
-}
-
-__git_complete git __git_main
-__git_complete gitk __gitk_main
-
-# The following are necessary only for Cygwin, and only are needed
-# when the user has tab-completed the executable name and consequently
-# included the '.exe' suffix.
-#
-if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
-__git_complete git.exe __git_main
-fi
diff --git a/a/git/.gitconfig b/a/git/.gitconfig
deleted file mode 100644
index 0ce3104..0000000
--- a/a/git/.gitconfig
+++ /dev/null
@@ -1,11 +0,0 @@
-[user]
- name = Adam Cooper
- email = theadamcooper@protonmail.com
-[core]
- pager = diff-so-fancy | less --tabs=4 -RFX
- editor = vim
-[filter "lfs"]
- clean = git-lfs clean -- %f
- smudge = git-lfs smudge -- %f
- process = git-lfs filter-process
- required = true
diff --git a/a/install.sh b/a/install.sh
deleted file mode 100644
index ad22c74..0000000
--- a/a/install.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# This script should install oh-my-zsh and vim-plug
-# oh-my-zsh
-sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
-
-# vim-plug
-curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
diff --git a/a/newsboat/.newsboat/config b/a/newsboat/.newsboat/config
deleted file mode 100644
index 91a37ba..0000000
--- a/a/newsboat/.newsboat/config
+++ /dev/null
@@ -1,9 +0,0 @@
-color background black default
-color listnormal black default
-color listfocus white blue
-color listnormal_unread magenta default
-color listfocus_unread white blue bold
-color info white blue
-color article black default
-max-items 4096
-keep-articles-days 45
diff --git a/a/newsboat/.newsboat/history.search b/a/newsboat/.newsboat/history.search
deleted file mode 100644
index 12d25ce..0000000
--- a/a/newsboat/.newsboat/history.search
+++ /dev/null
@@ -1,4 +0,0 @@
-finger
-finger
-finger
-selfie
diff --git a/a/newsboat/.newsboat/urls b/a/newsboat/.newsboat/urls
deleted file mode 100644
index e8bb1c5..0000000
--- a/a/newsboat/.newsboat/urls
+++ /dev/null
@@ -1,38 +0,0 @@
-http://feeds.guardian.co.uk/theguardian/world/rss "nuggets"
-http://www.wsws.org/rss/en.xml "nuggets"
-http://www.democracynow.org/democracynow.rss "nuggets"
-http://news.ycombinator.com/rss "tech"
-https://lobste.rs/rss "tech"
-http://www.languagehat.com/index.rdf "linguistics"
-http://www.opengeodata.org/?feed=rss2 "tech"
-http://feeds.arstechnica.com/arstechnica/index/ "tech"
-http://feeds.feedburner.com/TheCssAwards "tech"
-http://feeds.feedburner.com/CssTricks "tech"
-https://protonvpn.com/blog/feed/ "tech"
-https://cloudblog.withgoogle.com/rss/ "tech"
-https://spreadprivacy.com/feed "tech"
-https://protonmail.ch/blog/feed/ "tech"
-https://os.phil-opp.com/rss.xml "tech"
-http://www.bleepingcomputer.com/feed/ "tech"
-https://mondediplo.com/backend "nuggets"
-http://feeds.feedburner.com/Metafilter "nuggets"
-http://feeds.feedburner.com/InTheseTimes "nuggets"
-http://whowhatwhy.com/feed/ "nuggets"
-http://jacobinmag.com/feed/ "nuggets"
-http://www.thebaffler.com/blog/rss "nuggets"
-http://www.dissentmagazine.org/feed "nuggets"
-https://www.govtrack.us/events/events.rss?feeds=bill%3As116-1489 "nuggets"
-https://www.govtrack.us/events/events.rss?feeds=bill%3Ah116-2728 "nuggets"
-https://www.govtrack.us/events/events.rss?feeds=bill%3Ah116-2065 "nuggets"
-https://harpers.org/feed/ "nuggets"
-http://feeds.propublica.org/propublica/nerds "nuggets"
-http://feeds.propublica.org/propublica/main "nuggets"
-http://www.counterpunch.org/feed/ "nuggets"
-http://thenewinquiry.com/rss "nuggets"
-http://editor.currentaffairs.org/feed/ "nuggets"
-https://www.truthdig.com/feed/ "nuggets"
-http://googletesting.blogspot.com/feeds/posts/default "webdev"
-http://javascriptweekly.com/rss "webdev"
-http://feeds.feedburner.com/Bludice "webdev"
-https://reactjs.org/feed.xml "webdev"
-https://theintercept.com/feed/?lang=en "nuggets"
diff --git a/a/procs/.procs.toml b/a/procs/.procs.toml
deleted file mode 100644
index 6c04495..0000000
--- a/a/procs/.procs.toml
+++ /dev/null
@@ -1,206 +0,0 @@
-[[columns]]
-kind = "Pid"
-style = "BrightYellow"
-numeric_search = true
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "User"
-style = "BrightGreen"
-numeric_search = false
-nonnumeric_search = true
-align = "Left"
-
-[[columns]]
-kind = "Separator"
-style = "Magenta"
-numeric_search = false
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "State"
-style = "ByState"
-numeric_search = false
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "Nice"
-style = "BrightMagenta"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "Tty"
-style = "Blue"
-numeric_search = false
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "UsageCpu"
-style = "ByPercentage"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "UsageMem"
-style = "ByPercentage"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "VmSize"
-style = "ByUnit"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "VmRss"
-style = "ByUnit"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "TcpPort"
-style = "BrightCyan"
-numeric_search = true
-nonnumeric_search = false
-align = "Left"
-max_width = 20
-
-[[columns]]
-kind = "UdpPort"
-style = "BrightCyan"
-numeric_search = true
-nonnumeric_search = false
-align = "Left"
-max_width = 20
-
-[[columns]]
-kind = "ReadBytes"
-style = "ByUnit"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "WriteBytes"
-style = "ByUnit"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "Slot"
-style = "ByUnit"
-numeric_search = false
-nonnumeric_search = false
-align = "Right"
-
-[[columns]]
-kind = "Separator"
-style = "Magenta"
-numeric_search = false
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "CpuTime"
-style = "BrightCyan"
-numeric_search = false
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "StartTime"
-style = "BrightMagenta"
-numeric_search = false
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "Docker"
-style = "BrightGreen"
-numeric_search = false
-nonnumeric_search = true
-align = "Left"
-
-[[columns]]
-kind = "Separator"
-style = "Magenta"
-numeric_search = false
-nonnumeric_search = false
-align = "Left"
-
-[[columns]]
-kind = "Command"
-style = "Blue"
-numeric_search = false
-nonnumeric_search = true
-align = "Left"
-
-[style]
-header = "Blue"
-unit = "Blue"
-
-[style.by_percentage]
-color_000 = "BrightBlue"
-color_025 = "BrightGreen"
-color_050 = "BrightYellow"
-color_075 = "BrightRed"
-color_100 = "BrightRed"
-
-[style.by_state]
-color_d = "BrightRed"
-color_r = "BrightGreen"
-color_s = "BrightBlue"
-color_t = "BrightCyan"
-color_z = "BrightMagenta"
-color_x = "BrightMagenta"
-color_k = "BrightYellow"
-color_w = "BrightYellow"
-color_p = "BrightYellow"
-
-[style.by_unit]
-color_k = "BrightBlue"
-color_m = "BrightGreen"
-color_g = "BrightYellow"
-color_t = "BrightRed"
-color_p = "BrightRed"
-color_x = "BrightBlue"
-
-[search]
-numeric_search = "Exact"
-nonnumeric_search = "Partial"
-logic = "And"
-
-[display]
-show_self = false
-cut_to_terminal = true
-cut_to_pager = false
-cut_to_pipe = false
-color_mode = "Auto"
-separator = "│"
-ascending = "▲"
-descending = "▼"
-tree_symbols = ["│", "─", "┬", "├", "└"]
-abbr_sid = true
-
-[sort]
-column = 0
-order = "Ascending"
-
-[docker]
-path = "unix:///var/run/docker.sock"
-
-[pager]
-mode = "Auto"
-
diff --git a/a/tmux/.tmux.conf b/a/tmux/.tmux.conf
deleted file mode 100644
index b2bfbf3..0000000
--- a/a/tmux/.tmux.conf
+++ /dev/null
@@ -1,64 +0,0 @@
-# 256 colors for vim
-set -g default-terminal "screen-256color"
-
-# Set default shell to zsh
-set-option -g default-shell /bin/zsh
-
-# Tmuxline
-if-shell "test -f ~/.tmuxline_snapshot.conf" "source ~/.tmuxline_snapshot.conf"
-
-# Start window numbering at 1
-set-option -g base-index 1
-set-window-option -g pane-base-index 1
-
-# Cycle panes with C-b C-b
-unbind ^B
-bind ^B select-pane -t :.+
-
-# Reload config wtih a key
-bind-key r source-file ~/.tmux.conf \; display "Config reloaded!"
-
-# Mouse works as expected
-set -g mouse on
-# set -g mode-mouse on
-# set -g mouse-select-pane on
-# set -g mouse-resize-pane on
-# set -g mouse-select-window on
-
-# Scrolling works as expected
-set -g terminal-overrides 'xterm*:smcup@:rmcup@'
-
-# Use the system clipboard
-# set-option -g default-command "reattach-to-user-namespace -l zsh"
-
-# Clear the pane and its history
-bind -n C-k send-keys C-l \; clear-history
-
-# Smart pane switching with awareness of vim splits
-# From github.com/christoomey/vim-tmux-navigator
-is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
- | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
-bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
-bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
-bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
-bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
-bind-key -n C-\\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
-bind-key -T copy-mode-vi C-h select-pane -L
-bind-key -T copy-mode-vi C-j select-pane -D
-bind-key -T copy-mode-vi C-k select-pane -U
-bind-key -T copy-mode-vi C-l select-pane -R
-bind-key -T copy-mode-vi C-\\ select-pane -l
-
-# C-l is taken over by vim style pane navigation (not sure where this comes from or whether I still need this)
-bind C-l send-keys 'C-l'
-
-# Use vim keybindings in copy mode
-setw -g mode-keys vi
-
-# Setup 'v' to begin selection as in Vim
-# bind-key -t vi-copy v begin-selection
-# bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
-
-# Update default binding of `Enter` to also use copy-pipe
-# unbind -t vi-copy Enter
-# bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
diff --git a/a/tmux/.tmuxline_snapshot.conf b/a/tmux/.tmuxline_snapshot.conf
deleted file mode 100644
index 65c8ddf..0000000
--- a/a/tmux/.tmuxline_snapshot.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# This tmux statusbar config was created by tmuxline.vim
-# on Mon, 13 Jul 2020
-
-set -g status-justify "left"
-set -g status "on"
-set -g status-left-style "none"
-set -g message-command-style "fg=colour18,bg=colour45"
-set -g status-right-style "none"
-set -g pane-active-border-style "fg=colour27"
-set -g status-style "none,bg=colour159"
-set -g message-style "fg=colour18,bg=colour45"
-set -g pane-border-style "fg=colour45"
-set -g status-right-length "100"
-set -g status-left-length "100"
-setw -g window-status-activity-style "none"
-setw -g window-status-separator ""
-setw -g window-status-style "none,fg=colour27,bg=colour159"
-set -g status-left "#[fg=colour255,bg=colour27] #S #[fg=colour27,bg=colour159,nobold,nounderscore,noitalics]"
-set -g status-right "#[fg=colour45,bg=colour159,nobold,nounderscore,noitalics]#[fg=colour18,bg=colour45] %Y-%m-%d %H:%M #[fg=colour27,bg=colour45,nobold,nounderscore,noitalics]#[fg=colour255,bg=colour27] #h "
-setw -g window-status-format "#[fg=colour27,bg=colour159] #I #[fg=colour27,bg=colour159] #W "
-setw -g window-status-current-format "#[fg=colour159,bg=colour45,nobold,nounderscore,noitalics]#[fg=colour18,bg=colour45] #I #[fg=colour18,bg=colour45] #W #[fg=colour45,bg=colour159,nobold,nounderscore,noitalics]"
diff --git a/a/tmux/.tmuxp/acorn.json b/a/tmux/.tmuxp/acorn.json
deleted file mode 100644
index 34022bc..0000000
--- a/a/tmux/.tmuxp/acorn.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "session_name": "acorn",
- "windows": [{
- "window_name": "ide",
- "panes": [
- "vim -R package.json",
- "ls",
- "git status"
- ],
- "layout": "main-horizontal",
- "main-pane-height": 32,
- "start_directory": "~/code/acorn-glen"
- }, {
- "window_name": "servers",
- "start_directory": "~/code/acorn-glen",
- "layout": "main-horizontal",
- "panes": [{
- "shell_command": [ "cd ~/code/acorn-glen", "echo 'yarn dev'" ]
- }, {
- "shell_command": [ "sleep 4", "echo 'yarn relay --watch'" ]
- }, {
- "shell_command": [ "sleep 4", "echo 'yarn start'" ]
- }]
- }]
-}
-
diff --git a/a/tmux/.tmuxp/general.json b/a/tmux/.tmuxp/general.json
deleted file mode 100644
index 5742953..0000000
--- a/a/tmux/.tmuxp/general.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "session_name": "general",
- "windows": [{
- "window_name": "ytop",
- "panes": ["ytop -c default-dark"]
- }, {
- "window_name": "newsboat",
- "panes": ["newsboat"]
- }, {
- "window_name": "ddgr",
- "panes": ["ddgr --unsafe --noua"]
- }, {
- "panes": ["echo 'session \"general\"'"]
- }],
- "start_directory": "~"
-}
diff --git a/a/tmux/.tmuxp/turnip.json b/a/tmux/.tmuxp/turnip.json
deleted file mode 100644
index e152be3..0000000
--- a/a/tmux/.tmuxp/turnip.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "session_name": "turnip",
- "windows": [{
- "window_name": "ide",
- "panes": [
- "echo 'vim -R package.json'",
- "ls",
- "echo 'git was here'"
- ],
- "layout": "main-horizontal",
- "main-pane-height": 32,
- "start_directory": "~/code/turnip-glen"
- }, {
- "window_name": "servers",
- "start_directory": "~/code/turnip-glen",
- "layout": "main-horizontal",
- "panes": [{
- "shell_command": [ "cd ~/code/cornish-glen", "yarn dev" ]
- }, {
- "shell_command": [ "sleep 4", "yarn relay --watch" ]
- }, {
- "shell_command": [ "sleep 4", "yarn start" ]
- }]
- }]
-}
-
diff --git a/a/vim/.vim/ftplugin/javascript.vim b/a/vim/.vim/ftplugin/javascript.vim
deleted file mode 100644
index f623df4..0000000
--- a/a/vim/.vim/ftplugin/javascript.vim
+++ /dev/null
@@ -1 +0,0 @@
-let b:ale_linters = {'javascript': ['eslint']}
diff --git a/a/vim/.vimrc b/a/vim/.vimrc
deleted file mode 100644
index 09c49df..0000000
--- a/a/vim/.vimrc
+++ /dev/null
@@ -1,98 +0,0 @@
-" Make backspace behave in a sane manner.
-set backspace=indent,eol,start
-
-" Tab indentation: see `:help tabstop`
-set shiftwidth=2
-set tabstop=2
-" set softtabstop=2
-set expandtab
-" Consider installing the Smart Tabs plugin
-
-" Default: split right
-set splitright
-
-" Show whitespace
-set listchars=eol:¬,tab:>-,trail:~,extends:>,precedes:<,space:·
-
-" Show line numbers
-set number
-set relativenumber
-
-" Allow hidden buffers, don't limit to one file per window/split
-set hidden
-
-" Sane vim split naviagation (via Gaslight blog)
-nnoremap j
-nnoremap k
-nnoremap h
-nnoremap l
-
-" Disable filetype detection
-filetype off
-
-" vim-plug
-if empty(glob('~/.vim/autoload/plug.vim'))
- silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
- \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
-endif
-call plug#begin('~/.vim/plugged')
-Plug 'vim-airline/vim-airline'
-Plug 'vim-airline/vim-airline-themes'
-Plug 'edkolev/tmuxline.vim'
-Plug 'christoomey/vim-tmux-navigator'
-Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
-Plug '/usr/local/opt/fzf'
-Plug 'junegunn/fzf.vim'
-Plug 'dense-analysis/ale'
-Plug 'Valloric/YouCompleteMe'
-Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
-Plug 'pangloss/vim-javascript'
-Plug 'MaxMEllon/vim-jsx-pretty'
-Plug 'leafgarland/typescript-vim'
-Plug 'HerringtonDarkholme/yats.vim'
-Plug 'Quramy/tsuquyomi'
-Plug 'severij/vadelma'
-Plug 'tpope/vim-surround'
-Plug 'rust-lang/rust.vim'
-call plug#end()
-
-" NERDTree on ctrl+n
-let NERDTreeShowHidden=1
-map :NERDTreeToggle
-
-" close NERDTree after opening a file
-" let g:NERDTreeQuitOnOpen=1
-
-" Tsuquyomi
-autocmd FileType typescript nmap t : echo tsuquyomi#hint()
-
-" Airline
-let g:airline_powerline_fonts = 1
-let g:airline_theme = 'light'
-let g:airline#extensions#tmuxline#enabled = 0
-
-" Tmuxline
-let g:tmuxline_theme = 'iceberg'
-
-" YouCompleteMe <> TypeScript
-if !exists("g:ycm_semantic_triggers")
- let g:ycm_semantic_triggers = {}
-endif
-let g:ycm_semantic_triggers['typescript'] = ['.']
-
-" Enable file type detection and do language-dependent indenting
-filetype plugin indent on
-
-" Switch syntax highlighting on
-syntax enable
-
-" Set color scheme
-set background=light
-colorscheme vadelma
-
-" Temporary file locations
-set backupdir=.backup/,~/.backup/,/tmp//
-set directory=.swp/,~/.swp/,/tmp//
-set undodir=.undo/,~/.undo/,/tmp//
-
diff --git a/a/zsh/.zshrc b/a/zsh/.zshrc
deleted file mode 100644
index 70cd612..0000000
--- a/a/zsh/.zshrc
+++ /dev/null
@@ -1,153 +0,0 @@
-# Path to your oh-my-zsh installation.
-export ZSH=$HOME/.oh-my-zsh
-
-# Set name of the theme to load.
-# Look in ~/.oh-my-zsh/themes/
-# Optionally, if you set this to "random", it'll load a random theme each
-# time that oh-my-zsh is loaded.
-ZSH_THEME=""
-
-# Suppress display of name of default user in prompt
-DEFAULT_USER=$USER
-prompt_context() {}
-
-# Uncomment the following line to use case-sensitive completion.
-# CASE_SENSITIVE="true"
-
-# Uncomment the following line to disable bi-weekly auto-update checks.
-# DISABLE_AUTO_UPDATE="true"
-
-# Uncomment the following line to change how often to auto-update (in days).
-# export UPDATE_ZSH_DAYS=13
-
-# Uncomment the following line to disable colors in ls.
-# DISABLE_LS_COLORS="true"
-
-# Uncomment the following line to disable auto-setting terminal title.
-export DISABLE_AUTO_TITLE="true"
-
-# Uncomment the following line to enable command auto-correction.
-# ENABLE_CORRECTION="true"
-
-# Uncomment the following line to display red dots whilst waiting for completion.
-# COMPLETION_WAITING_DOTS="true"
-
-# Uncomment the following line if you want to disable marking untracked files
-# under VCS as dirty. This makes repository status check for large repositories
-# much, much faster.
-# DISABLE_UNTRACKED_FILES_DIRTY="true"
-
-# Uncomment the following line if you want to change the command execution time
-# stamp shown in the history command output.
-# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
-HIST_STAMPS="yyyy-mm-dd"
-
-# Would you like to use another custom folder than $ZSH/custom?
-# ZSH_CUSTOM=/path/to/new-custom-folder
-
-# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
-# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
-# Example format: plugins=(rails git textmate ruby lighthouse)
-# Add wisely, as too many plugins slow down shell startup.
-plugins=(git nvm vi-mode)
-
-source $ZSH/oh-my-zsh.sh
-
-# User configuration
-
-export PATH="/Users/adamcooper/Library/Python/3.7/bin:/Users/adamcooper/.cargo/bin:$(brew --prefix coreutils)/libexec/gnubin:/opt/local/bin:/opt/local/sbin:/usr/local/sbin:$PATH"
-
-# export MANPATH="/usr/local/man:$MANPATH"
-
-# You may need to manually set your language environment
-# export LANG=en_US.UTF-8
-
-# Preferred editor for local and remote sessions
-# if [[ -n $SSH_CONNECTION ]]; then
-# export EDITOR='vim'
-# else
-# export EDITOR='mvim'
-# fi
-export VISUAL=vim
-export EDITOR=$VISUAL
-
-export BROWSER=w3m
-
-# Compilation flags
-# export ARCHFLAGS="-arch x86_64"
-
-# ssh
-# export SSH_KEY_PATH="~/.ssh/dsa_id"
-
-# Set personal aliases, overriding those provided by oh-my-zsh libs,
-# plugins, and themes. Aliases can be placed here, though oh-my-zsh
-# users are encouraged to define aliases within the ZSH_CUSTOM folder.
-# For a full list of active aliases, run `alias`.
-#
-# Example aliases
-# alias zshconfig="mate ~/.zshrc"
-# alias ohmyzsh="mate ~/.oh-my-zsh"
-
-# Replace native OS X ctags with Homebrew ctags
-alias ctags=`brew --prefix`/bin/ctags
-
-# If not running interactively, don't do anything
-
-[ -z "$PS1" ] && return
-
-# Why are these not exports?
-# enable git unstaged indicators - set to a non-empty value
-GIT_PS1_SHOWDIRTYSTATE="."
-
-# enable showing of untracked files - set to a non-empty value
-GIT_PS1_SHOWUNTRACKEDFILES="."
-
-# enable stash checking - set to a non-empty value
-GIT_PS1_SHOWSTASHSTATE="."
-
-# enable showing of HEAD vs its upstream
-GIT_PS1_SHOWUPSTREAM="auto"
-
-BLACK=$(tput setaf 0)
-RED=$(tput setaf 1)
-GREEN=$(tput setaf 2)
-YELLOW=$(tput setaf 3)
-LIME_YELLOW=$(tput setaf 190)
-POWDER_BLUE=$(tput setaf 153)
-BLUE=$(tput setaf 4)
-MAGENTA=$(tput setaf 5)
-CYAN=$(tput setaf 6)
-WHITE=$(tput setaf 7)
-BRIGHT=$(tput bold)
-NORMAL=$(tput sgr0)
-BLINK=$(tput blink)
-REVERSE=$(tput smso)
-UNDERLINE=$(tput smul)
-
-## NVM ##
-# Functionality now handled by Oh My Zsh plugin
-# export NVM_DIR="$HOME/.nvm"
-# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
-# [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
-
-# Starship
-eval "$(starship init zsh)"
-
-## FZF ##
-[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
-export FZF_DEFAULT_COMMAND="fd --hidden . $HOME" # Includes hidden files
-export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
-export FZF_ALT_C_COMMAND="fd -t d . $HOME"
-
-# Tmuxp completion #
-eval "$(_TMUXP_COMPLETE=source_zsh tmuxp)"
-
-# ddgr colors
-export DDGR_COLORS="MBdexy"
-
-# exa colors
-export LS_COLORS="*.md=30"
-export EXA_COLORS="uu=33;43;1"
-
-# Consolidate PATH
-export PATH="$(consolidate-path "$PATH")"
diff --git a/m/TODO.md b/m/TODO.md
deleted file mode 100644
index 843f9cc..0000000
--- a/m/TODO.md
+++ /dev/null
@@ -1,22 +0,0 @@
-- FIXED The both method of installing fzf has left me without the `:Files` func-
- tionality.
-- FIXED diff-so-fancy
-- FIXED What's really not working is nvm. If you install it with bash, zsh can't see
- it.
-- add source $HOME/.cargo/env - does this persist or must I add it to .zshrc?
-- chsh not working?
-
-- N.B. .bashrc Linux, .bash_profile Mac
-- FIXED After the install script runs, the user needs to install the vim plugins by
-opening vim and running :PlugInstall - how do you get the pid of the latest
-process or a particular process?
-- FIXED tmux powerline doesn't work out of the box
-- FIXED? nvm - not working right? Time to add the filigree!
-- FIXED Maybe we need a post-install script for nvm install lts/dubnium and nvm
- use lts/dubnium, and then npm install -g typescript, and then exhort the user
- to run vim and ycm.
-- FIXED make aptitude install vim et al automatically accept without user input
-- FIXED same with rust
-- FIXED do existence tests before mv
-
-- Make sure ssh is working now lol
diff --git a/m/bin/consolidate-path b/m/bin/consolidate-path
deleted file mode 100755
index d302afd..0000000
--- a/m/bin/consolidate-path
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-# Usage: PATH="$(consolidate-path "$PATH")"
-#
-# Remove duplicate entries from PATH.
-
-result=":"
-IFS=:
-for p in $1; do
- [[ "$result" == *:"$p":* ]] || result="${result}${p}:"
-done
-
-result="${result#:}"
-echo "${result%:}"
diff --git a/m/eg/.eg_custom/README.md b/m/eg/.eg_custom/README.md
deleted file mode 100644
index 5ad85e8..0000000
--- a/m/eg/.eg_custom/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-Cheat Sheets
-============
-
-> **NOTE**: This repo is best used by placing a bookmark in your address bar.
-
-This is a collection of cheat sheets that I have compiled over the years that I
-put together while learning various tools. They contain some good information
-and a few gems that I have learned along the way. Feel free to contribute.
-
-## Contents
-
-- [Bash]
-- [Git]
-- [GnuPG]
-- [irssi]
-- [JIRA]
-- [mutt]
-- [nmap]
-- [openssl]
-- [tmux]
-- [uml]
-- [vim]
-- [zsh]
-- [other]
-
-## License
-
-
Cheat Sheets
-by Joshua Estes is
-licensed under a Creative Commons
-Attribution-ShareAlike 4.0 International License. Based on a work at https://github.com/JoshuaEstes/CheatSheets.
-Permissions beyond the scope of this license may be available at https://github.com/JoshuaEstes/CheatSheets/blob/master/LICENSE.
-
-See [LICENSE] for full license.
-
-
-[Bash]: https://github.com/JoshuaEstes/CheatSheets/blob/master/bash.md
-[Git]: https://github.com/JoshuaEstes/CheatSheets/blob/master/git.md
-[GnuPG]: https://github.com/JoshuaEstes/CheatSheets/blob/master/gnupg.md
-[irssi]: https://github.com/JoshuaEstes/CheatSheets/blob/master/irssi.md
-[JIRA]: https://github.com/JoshuaEstes/CheatSheets/blob/master/jira.md
-[mutt]: https://github.com/JoshuaEstes/CheatSheets/blob/master/mutt.md
-[nmap]: https://github.com/JoshuaEstes/CheatSheets/blob/master/nmap.md
-[openssl]: https://github.com/JoshuaEstes/CheatSheets/blob/master/openssl.md
-[tmux]: https://github.com/JoshuaEstes/CheatSheets/blob/master/tmux.md
-[uml]: https://github.com/JoshuaEstes/CheatSheets/blob/master/uml.md
-[vim]: https://github.com/JoshuaEstes/CheatSheets/blob/master/vim.md
-[zsh]: https://github.com/JoshuaEstes/CheatSheets/blob/master/zsh.md
-[other]: https://github.com/JoshuaEstes/CheatSheets/blob/master/other.md
-[LICENSE]: https://github.com/JoshuaEstes/CheatSheets/blob/master/LICENSE
diff --git a/m/eg/.eg_custom/ack.md b/m/eg/.eg_custom/ack.md
deleted file mode 100644
index e69de29..0000000
diff --git a/m/eg/.eg_custom/bash.md b/m/eg/.eg_custom/bash.md
deleted file mode 100644
index 3144e29..0000000
--- a/m/eg/.eg_custom/bash.md
+++ /dev/null
@@ -1,75 +0,0 @@
-Bash Cheat Sheet
-================
-
-## Moving
-
-| command | description |
-|----------|--------------------------------|
-| ctrl + a | Goto BEGINNING of command line |
-| ctrl + e | Goto END of command line |
-| ctrl + b | move back one character |
-| ctrl + f | move forward one character |
-| alt + f | move cursor FORWARD one word |
-| alt + b | move cursor BACK one word |
-
-## Other
-
-| command | description |
-|----------|--------------------------------|
-| ctrl + d | Delete the character under the cursor |
-| ctrl + l | Clear the screen (same as clear command) |
-| ctrl + p | Fetch the previous command from the history list, moving back in the list (same as up arrow) |
-| ctrl + n | Fetch the next command from the history list, moving forward in the list (same as down arrow) |
-| ctrl + u | Clear all BEFORE cursor |
-| ctrl + k | Clear all AFTER cursor |
-| ctrl + r | Search backward starting at the current line and moving 'up' through the history as necessary |
-| crtl + s | Search forward starting at the current line and moving 'down' through the history as necessary |
-| ctrl + c | kill whatever is running |
-| ctrl + d | Exit shell (same as exit command) |
-| ctrl + w | delete the word BEFORE the cursor |
-| ctrl + t | swap the last two characters before the cursor |
-| ctrl + y | paste (if you used a previous command to delete) |
-| ctrl + z | Place current process in background |
-| ctrl + _ | undo |
-| esc + t | Swap last two words before the cursor |
-| esc + . | |
-| esc + _ | |
-| alt + [Backspace] | delete PREVIOUS word |
-| alt + < | Move to the first line in the history |
-| alt + > | Move to the end of the input history, i.e., the line currently being entered |
-| alt + ? | |
-| alt + * | |
-| alt + . | print the LAST ARGUMENT (ie "vim file1.txt file2.txt" will yield "file2.txt") |
-| alt + c | |
-| alt + d | |
-| alt + l | |
-| alt + n | |
-| alt + p | |
-| alt + r | |
-| alt + t | |
-| alt + u | |
-| ~[TAB][TAB] | List all users |
-| $[TAB][TAB] | List all system variables |
-| @[TAB][TAB] | List all entries in your /etc/hosts file |
-| [TAB] | Auto complete |
-| !! | Run PREVIOUS command (ie `sudo !!`) |
-| !vi | Run PREVIOUS command that BEGINS with vi |
-| cd - | change to PREVIOUS working directory |
-
-# Kill a job
-
-n = job number, to list jobs, run `jobs`
-
-```bash
-kill %n
-```
-
-Example:
-
-```bash
-kill %1
-```
-
-## References
-
-1. http://cnswww.cns.cwru.edu/php/chet/readline/readline.html
diff --git a/m/eg/.eg_custom/csrutil.md b/m/eg/.eg_custom/csrutil.md
deleted file mode 100644
index a81e838..0000000
--- a/m/eg/.eg_custom/csrutil.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Disable/enable System Integrity Protection
-
-* Restart the computer
-* Hold down `Command-R` to reboot into Recovery Mode
-* Click `Utilities`
-* Select `Terminal`
-* Enter `csrutil [ disable | enable ]`
-* Restart the computer into Standard Mode
\ No newline at end of file
diff --git a/m/eg/.eg_custom/curl.md b/m/eg/.eg_custom/curl.md
deleted file mode 100644
index cc8ce6c..0000000
--- a/m/eg/.eg_custom/curl.md
+++ /dev/null
@@ -1,9 +0,0 @@
-cURL Cheat Sheet
-================
-
-## Basics
-### Get request
-
-```bash
-curl https://domain.com
-```
\ No newline at end of file
diff --git a/m/eg/.eg_custom/defaults.md b/m/eg/.eg_custom/defaults.md
deleted file mode 100644
index e473d80..0000000
--- a/m/eg/.eg_custom/defaults.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# defaults
-
-Change the default location of screenshots:
-
- defaults write com.apple.screencapture location && killall SystemUIServer
\ No newline at end of file
diff --git a/m/eg/.eg_custom/git.md b/m/eg/.eg_custom/git.md
deleted file mode 100644
index e7181dd..0000000
--- a/m/eg/.eg_custom/git.md
+++ /dev/null
@@ -1,152 +0,0 @@
-Git Cheat Sheet
-===============
-
-## Subtree Example
-
-### Add sub-project as remote
-
-```bash
-git remote add -f RemoteName RemoteUrl
-```
-
-### Run `git subtree` command
-
-```bash
-git subtree add --prefix Path/To/Put/Code NameOfRemote master --squash
-```
-
-#### Pull subtree as needed
-
-```bash
-git fetch NameOfRemote master
-git subtree pull --prefix Path/To/Put/Code NameOfRemote master --squash
-```
-
-### Reference
-
-* http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree
-
-## Create a branch without a parent
-
-Very useful when you are updating a project that you are rewriting. For example,
-say you are using semantic versioning and are wanting to start a new major
-version.
-
-```bash
-git checkout --orphan BRANCH
-```
-
-## Delete All Branches that have been merged
-
-Great for cleaning up local branches that aren't being used any more.
-
-```bash
-git checkout master
-git branch --merged | grep -v "\*" | xargs -n 1 git branch -d
-```
-
-## Ignore changes to a file that is being tracked
-
-### Ignore
-
-```bash
-git update-index --assume-unchanged [directory|file]
-```
-
-### Unignore
-
-```bash
-git update-index --no-assume-unchanged [directory|file]
-```
-
-## How to ignore dirty submodules
-
-Edit your ``.git/config`` and add ``ignore = dirty``.
-
-```text
-[submodule "path/to/submodule"]
- path = path/to/submodule
- url = git://github.com/username/repo.git
- ignore = dirty
-```
-
-## Clone a repo and give name other than origin
-
-```bash
-git clone -o upstream https://repo.git
-```
-
-## Ignore Files for Repository without using `.gitignore`
-
-Add the file `.git/info/exclude` and fill it with the contents you want to ignore. This will ONLY apply to the
-repository and will not be tracked by git.
-
-## Squash Commits
-
-```bash
-git log
-```
-
-Count the number of commits that you have made, let's say the previous 5 are your commits.
-
-```bash
-git rebase -i HEAD~5
-```
-
-The first commit leave as `pick` the rest will need to be changed to `squash`. After that you will be able to
-leave a new commit message or just leave as is to keep the commit messages from all previous commits.
-
-## Search for a specific line of code/file in the history
-
-```bash
-git log -S[search term]
-```
-
-Example:
-
-```bash
-git log -SThatOneFile.php
-```
-
-## Copy file from one branch to current branch
-
-Copy a file from `branch` and put into staging.
-
-```bash
-git checkout BRANCH path/to/file.ext
-
-# Real Life Examples
-git checkout origin/featureBranch web/js/random.js
-# Pulls into your current branch web/js/random.js from
-# origin/featureBranch
-```
-
-## Git Grepping for fun and profit!
-
-```shell
-# Basic grep (case sensitive)
-$ git grep 'search term'
-
-# Case Insensitive search
-$ git grep -i 'search term'
-
-# Search within a directory
-$ git grep 'search term' src/
-
-# Search only files with `php` extension
-$ git grep 'search term' -- '*.php'
-
-# Grep in the 'src/` directory, only yml files
-$ git grep 'search term' -- 'src/**.yml'
-```
-
-## Push Branch to Remote Repository to a different branch name
-
-```shell
-git push origin localBranchName:remoteBranchName
-```
-
-Use Case: I will often use rebase, I will cut a branch off the branch I want to rebase and
-do the rebase on the newly created branch. Once I am done, I will check the diff and see if
-I screwed up. If it's all good, `git push -f` **NOTICE**: DO NOT `git push -f` unless you know
-what you are doing.
diff --git a/m/eg/.eg_custom/gnupg.md b/m/eg/.eg_custom/gnupg.md
deleted file mode 100644
index 0b740ca..0000000
--- a/m/eg/.eg_custom/gnupg.md
+++ /dev/null
@@ -1,64 +0,0 @@
-GnuPG Cheat Sheet
-=================
-
-## Listing Key Pairs
-
-```bash
-gpg --list-keys
-```
-
-For listing keys with the fingerprint, run
-
-```bash
-gpg --fingerprint
-```
-
-## Generate New Key Pair
-
-```bash
-gpg --gen-key
-```
-
-## Encrypt a message on command line
-
-```bash
-echo "Put message here" | gpg --armor --encrypt --recipient Joshua > FILE.gpg
-```
-
-This will put the encrypted text into `FILE.gpg` which you can send to someone or keep for
-later use. For decrypting the message, see the next section.
-
-## Decrypt a message from the command line
-
-```bash
-cat FILE.gpg | gpg
-```
-
-Displays the decrypted text on the command line.
-
-## Only display user X's key information
-
-```bash
-gpg --fingerprint Joshua
-```
-
-## Signing Messages
-
-```bash
-echo "This is a top secret message" | gpg --clearsign
-```
-
-## Signing Text Files
-
-```bash
-gpg --clearsign example.txt
-```
-
-This will create `example.txt.asc` file.
-
-## Verify Signatures
-
-```bash
-gpg --verifiy example.txt.asc
-```
-
diff --git a/m/eg/.eg_custom/grep.md b/m/eg/.eg_custom/grep.md
deleted file mode 100644
index 5a603fc..0000000
--- a/m/eg/.eg_custom/grep.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Grep
-====
-
-## Ignore case
-
-```shell
-grep -i pattern
-```
diff --git a/m/eg/.eg_custom/irssi.md b/m/eg/.eg_custom/irssi.md
deleted file mode 100644
index d59a218..0000000
--- a/m/eg/.eg_custom/irssi.md
+++ /dev/null
@@ -1,11 +0,0 @@
-Irssi Cheat Sheet
-=================
-
-M = Meta Key, meta key is either the left alt or esc key.
-
-| command | description |
-|----------|-------------|
-| M + p | Scroll up in window
-| M + n | Scroll down in window
-| ctrl + p | Previous window
-| ctrl + n | Next window
diff --git a/m/eg/.eg_custom/jira.md b/m/eg/.eg_custom/jira.md
deleted file mode 100644
index 2c957f2..0000000
--- a/m/eg/.eg_custom/jira.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Jira Cheat Sheet
-================
-
-## Find by Mentions of current user within the past 7 days
-
-```sql
-comment ~ currentUser() AND updatedDate >= -7d
-```
diff --git a/m/eg/.eg_custom/ln.md b/m/eg/.eg_custom/ln.md
deleted file mode 100644
index 0abc4aa..0000000
--- a/m/eg/.eg_custom/ln.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# ln
-
-make a symlink to `foo.txt`
-
- ln -s foo.txt link-to-foo.txt
-
-
-
-# Basic Usage
-
-Make anchor a link to target:
-
- ln -s
-
-
-
-# Symbolic Links (symlinks)
-
-Make it symbolic with the `-s` flag:
-
- $ ln -s foo.txt link-to-foo.txt
- $ ls -lF
- total 8
- -rw-r--r-- 1 tyrion group 0 Feb 3 14:13 foo.txt
- lrwxr-xr-x 1 tyrion group 7 Feb 3 14:14 link-to-foo.txt@ -> foo.txt
-
-
-
-# Hard Links
-
-Omit the `-s` flag:
-
- $ ln foo.txt hard-link-to-foo.txt
- $ ls -lF
- total 0
- -rw-r--r-- 2 tyrion group 0B Feb 3 14:13 foo.txt
- -rw-r--r-- 2 tyrion group 0B Feb 3 14:13 hard-link-to-foo.txt
-
-
diff --git a/m/eg/.eg_custom/lsof.md b/m/eg/.eg_custom/lsof.md
deleted file mode 100644
index cc5bd09..0000000
--- a/m/eg/.eg_custom/lsof.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# lsof
-
-Examine the process using a specified `port`:
-
- lsof -i:3000 | grep LISTEN
diff --git a/m/eg/.eg_custom/mutt.md b/m/eg/.eg_custom/mutt.md
deleted file mode 100644
index b27270f..0000000
--- a/m/eg/.eg_custom/mutt.md
+++ /dev/null
@@ -1,226 +0,0 @@
-Mutt Cheat Sheet
-================
-
-## General
-
-These key bindings will work on almost any menu you are in.
-
-| command | description |
-|------------|-------------|
-| * | Move to last entry
-| = | Move to first entry
-| : | Enter muttrc command
-| > | Scroll down one line
-| < | Scroll up one line
-| [ | Scroll up half a page
-| ] | Scroll down half a page
-| ? | Help
-| ; | Apply next function to tagged messages only
-| ! | Invoke command in subshell
-| return | Select the current entry
-| esc + / | Search up
-| / | Search down
-| H | Move to top of page
-| j | Move to next entry
-| k | Move to previous entry
-| ctrl + l | Redraw screen
-| L | Move to bottom of page
-| M | Move to middle of page
-| n | Move to next match of search
-| q | Exit menu
-| t | Tag current entry
-| z | Move to next page
-| Z | Move to previous page
-
-## Index Menu
-
-When you first open mutt you are in the index menu.
-
-| command | description |
-|---------------|-------------|
-| & | Link tagged message to current one
-| # | Break the thread in two
-| % | Toggle whether mailbox will be rewritten
-| . | List mailboxes with new mail
-| $ | Save changes to mailbox
-| @ | Display full address of sender
-| | | Pipe message to a shell command
-| esc + tab | Jump to previous new or unread message
-| return | Display message
-| tab | Jump to next new or unread message
-| a | Create alias from message sender
-| b | Remail message to another user
-| esc + c | Open a different folder (Read Only)
-| c | Open a different folder
-| esc + C | Make text/plain copy
-| C | Copy message to another file/mailbox
-| esc + d | Delete all messages in subthread
-| d | Delete current message
-| ctrl + D | Delete all messages in thread
-| D | Delete messages matching a pattern
-| esc + e | Use the current message as a template for a new one
-| e | Edit the raw message
-| ctrl + E | Edit attachment content type
-| f | Forward message with comments
-| ctrl + F | Wipe passphrase from memory
-| F | Toggle the important flag for message
-| g | Reply to all
-| G | Retrive mail from POP server
-| h | Display message and toggle header weeding
-| j | Move to next undeleted message
-| esc + k | Mail a PGP key
-| k | Move to previous undeleted message
-| ctrl + K | Extract supported public keys
-| esc + l | Show current limit pattern
-| l | Only show messages matching a pattern
-| L | Reply to specific mailing list
-| m | Compose new message
-| esc + n | Jump to next subthread
-| ctrl + N | Jump to next thread
-| N | Toggle new flag
-| o | Sort messages
-| O | Sort messages in reverse order
-| Q | Query external program for addresses
-| q | Save changes to mailbox and quit
-| r | Reply to message
-| ctrl + P | Jump to previous thread
-| esc + p | Jump to previous subthread
-| p | Print current message
-| esc + P | Check for classic PGP
-| P | Jump to parent message in thread
-| ctrl + R | Mark current thread as read
-| R | Recall a postponed message
-| esc + r | Mark current subthread as read
-| esc + s | Save text/plain copy and delete
-| s | Save message/attachment to mailbox/file
-| esc + t | Tag current thread
-| ctrl + T | Untag messages matching a pattern
-| T | Tag messages matching pattern
-| esc + u | Undelete all messages in subthread
-| u | Undelete current entry
-| ctrl + U | Undelete all messages in thread
-| U | Undelete messages matching pattern
-| esc + v | Collapse/uncollapse current thread
-| v | Show mime attachments
-| esc + V | Collapse/uncollapse all threads
-| V | Show mutt version number and date
-| w | Set a status flag
-| W | Clear status flags from message
-
-## Pager Menu
-
-| command | description |
-|---------|-------------|
-| # | |
-| a | |
-| b | |
-| c | |
-| esc + c | |
-| C | |
-| esc + C | |
-| d | |
-| ctrl + D | |
-| esc + d | |
-| w | |
-| W | |
-| e | |
-| ctrl + E | |
-| f | |
-| F | |
-| g | |
-| h | |
-| j | |
-| J | |
-| k | |
-| K | |
-| & | |
-| L | |
-| ctrl + L | |
-| m | |
-| n | |
-| N | |
-| ctrl + N | |
-| esc + n | |
-| o | |
-| O | |
-| p | |
-| ctrl + P | |
-| esc + p | |
-| Q | |
-| q | |
-| r | |
-| R | |
-| ctrl + R | |
-| esc + r | |
-| esc + e | |
-| s | |
-| S | |
-| esc + s | |
-| t | |
-| T | |
-| u | |
-| esc + u | |
-| ctrl + U | |
-| v | |
-| V | |
-| \\ | |
-| @ | |
-| | | |
-| ? | |
-| space | |
-| - | |
-| ^ | |
-| $ | |
-| ! | |
-| : | |
-| . | |
-| / | |
-| esc + / | |
-| return | |
-| P | |
-| esc + P | |
-| esc + k | |
-| ctrl + K | |
-| ctrl + F | |
-
-## Useful key remaps
-
-These need to be placed in your `muttrc` file. I use vim and so I want to use some of the
-same commands to manage my mail.
-
-```muttrc
-# Does not replace and currently mapped keys and acts like the vim command gg and takes
-# you to the top of the page
-bind index gg first-entry
-
-# Replaces the retrieval of mail from a POP server. This will take you to the bottom of
-# the page, just like it does in vim
-bind index G last-entry
-```
-
-## Flags
-
-When viewing messages in the index menu, you will see various flags such as `N` which mean
-the messages is new and `D` which means that the message is to be deleted. This is a short
-list of those flags.
-
-| flag | description |
-|------|-------------|
-| ! | Message is flagged
-| * | Message is tagged
-| + | Message is To: you and only you
-| C | Message is Cc: to you
-| d | Message has attachments marked for deletion
-| D | Marked for deletion
-| F | Message is From: you
-| K | Contains PGP key
-| L | Message is sent to a subscribed mailing list
-| n | Thread contains new messages (Only when thread is collapsed)
-| N | Message is new
-| o | Thread contains old messages (Only when thread is collapsed)
-| O | Message is old
-| P | Message is PGP encrypted
-| r | Message has been replied to
-| s | Message is signed
-| S | Message is signed and verified
-| T | Message is to you and has others in To: or Cc:
diff --git a/m/eg/.eg_custom/nmap.md b/m/eg/.eg_custom/nmap.md
deleted file mode 100644
index 2035224..0000000
--- a/m/eg/.eg_custom/nmap.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Nmap Cheat Sheet
-================
-
-## Scan a Port
-
-```bash
-nmap -p 80 google.com
-```
diff --git a/m/eg/.eg_custom/openssl.md b/m/eg/.eg_custom/openssl.md
deleted file mode 100644
index b363060..0000000
--- a/m/eg/.eg_custom/openssl.md
+++ /dev/null
@@ -1,25 +0,0 @@
-OpenSSL Cheat Sheet
-===================
-
-## Generate Self-Signed Certificate and Private Key
-
-```shell
-openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 && openssl rsa -passin pass:x -in server.pass.key -out server.key && openssl req -new -key server.key -out server.csr
-openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
-```
-
-- Use `server.crt` and `server.key`
-
-### Encypt/Decrypt file
-
-```
-# Encrypt
-openssl aes-128-cbc -a -e -pass pass:test -in vars -out vars.enc
-# Puts encrypted data into vars.enc file
-
-# Decrypt
-openssl aes-128-cbc -a -d -pass pass:test -in vars.enc
-# Outputs decrypted data to STDOUT
-```
-
-NOTE: See `openssl passpharse arguments` for information on using the password on the commandline. It can be changed to a file or an environment variable.
diff --git a/m/eg/.eg_custom/other.md b/m/eg/.eg_custom/other.md
deleted file mode 100644
index 5ced564..0000000
--- a/m/eg/.eg_custom/other.md
+++ /dev/null
@@ -1,28 +0,0 @@
-Other Cheat Sheets
-==================
-
-## Using `less` instead of tail
-
-```shell
-less +F -R /path/to/logfile.log
-```
-
-* To scroll up and down, press `+c`
-* Return to tail mode, press `F`
-
-The `+F` says to follow? The `-R` will process any ANSII color codes.
-
-## SSH Config File
-
-```
-# ~/.ssh/config
-Host test
- HostName testing.example.com
- Port 22222
- User joshua
- IdentityFile ~/.ssh/test.example.com.key
-```
-
-Next, all you need to do to ssh into the server is `ssh test` and that's it.
-
-> **NOTE** `HostName` may be an IP Address instead of a domain name
diff --git a/m/eg/.eg_custom/pdftk.md b/m/eg/.eg_custom/pdftk.md
deleted file mode 100644
index 904620d..0000000
--- a/m/eg/.eg_custom/pdftk.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# pdftk
-
-join a bunch of pdfs
-
- pdftk file01.pdf file02.pdf file03.pdf cat output combined_file.pdf
-
-
-Add a password to a pdf
-
- pdftk file.pdf output file_pw.pdf user_pw Passw0rd!
diff --git a/m/eg/.eg_custom/rename.md b/m/eg/.eg_custom/rename.md
deleted file mode 100644
index ab3d9d1..0000000
--- a/m/eg/.eg_custom/rename.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# rename (concept, not command)
-
-rename `index.jsx` to `index.tsx` one level down
-
- for i in **/index.jsx; do mv -v $i ${i/jsx/tsx}; done
-
diff --git a/m/eg/.eg_custom/sed.md b/m/eg/.eg_custom/sed.md
deleted file mode 100644
index e69de29..0000000
diff --git a/m/eg/.eg_custom/tar.md b/m/eg/.eg_custom/tar.md
deleted file mode 100644
index 73c3e2a..0000000
--- a/m/eg/.eg_custom/tar.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# tar
-
-extract .tar file
-
- tar vfx archive.tar
-
-
-unzip and extract .tar.gz or .tgz file
-
- tar vfxz g_zipped_archive.tar.gz
-
-
-turn directory into a .tar file
-
- tar vfc tarred_directory.tar directory
-
-
-turn directory into g-zipped directory
-
- tar vfcz z_zipped_directory.tar.gz directory
-
-
-
-# Basic Usage
-
-`vf` means verbosely list files (`v`) and use a file (`f`), not `stdin`.
-These appear in most commands.
-
-Untar a file:
-
- tar vfx
-
-
-Create a tar file from a directory:
-
- tar vfc
-
-
-
-# Remembering the Flags
-
-`tar` is very finicky. Flags don't need to be prepended by a hyphen, but are
-instead bundled into the first word on the command line. A leading hyphen will
-break some implementations or require an order. For example, `tar vfx` might
-work while with a hyphen it would require `tar -xvf`, with the `x` flag first.
-You can get maximum portability is you never use the hyphens, so examples here
-are shown without the hyphen.
-
-You'll almost always want `vf`. `v` verbosely lists files as they are
-manipulated, and `f` means you're reading from a file, not `stdin`. You can
-remember `vf` if you remember that `tar` is Very Finicky: `vf`.
-
-Extract things from a tar file with `x` for extraction. Compress things to a
-tar file with `c` for compress.
-
-And you'll have to just remember that g-zipping is `z` and b-zipping is `j`.
-
-
-
-# Tarring
-
-Compress directory (`c`) into g-zipped (`z`) directory:
-
- tar vfcz z_zipped_directory.tar.gz directory
-
-
-Compress directory (`c`) into b-zipped (`j`) directory:
-
- tar vfcj b_zipped_directory.tar.bz2 directory
-
-
-Compress directory (`c`) into xz-zipped (`J`) directory:
-
- tar vfcJ xz_zipped_directory.tar.xz directory
-
-
-
-# Untarring
-
-Untar (`x`) and unzip a g-zipped (`z`) file:
-
- tar vfxz g_zipped_archive.tar.gz
-
-
-Untar (`x`) and unzip a b-zipped (`j`) file:
-
- tar vfxj b_zipped_archive.tar.bz2
-
-
-Untar (`x`) and unzip an xz-zipped (`J`) file:
-
- tar vfxJ xz_zipped_archive.tar.xz
-
-
-
-## Partial Untarring
-
-Extract only part of the contents (`directory/foo.txt`) from a .tar file:
-
- tar vfx archived_directory.tar directory/foo.txt
-
-
-
-# Display Contents
-
-List (`t`) the contents of a tar file without untarring it:
-
- $ tar vft tarred_directory.tar
- drwxr-xr-x 0 tyrion group 0 Feb 4 14:54 directory/
- -rw-r--r-- 0 tyrion group 0 Feb 4 14:54 directory/bar.txt
- -rw-r--r-- 0 tyrion group 0 Feb 4 14:54 directory/foo.txt
diff --git a/m/eg/.eg_custom/tmux.md b/m/eg/.eg_custom/tmux.md
deleted file mode 100644
index 0569971..0000000
--- a/m/eg/.eg_custom/tmux.md
+++ /dev/null
@@ -1,92 +0,0 @@
-Tmux Cheat Sheet
-================
-
-`ctrl + b` is default to enter before you enter the commands. `M` = Left Alt key
-or ESC key
-
-## Windows
-
-| command | description |
-|---------|-------------|
-| c | Create a new window.
-| & | Kill the current window.
-| n | Change to the next window.
-| p | Change to the previous window.
-| , | Rename the current window.
-| w | Choose the current window interactively.
-| M-n | Move to the next window with a bell or activity marker.
-| M-p | Move to the previous window with a bell or activity marker.
-
-## Panes
-
-| command | description |
-|---------|------------ |
-| " | Split the current pane into two, top and bottom.
-| % | Split the current pane into two, left and right.
-| x | Kill the current pane.
-| ; | Move to the previously active pane.
-| o | Select the next pane in the current window.
-| ! | Break the current pane out of the window.
-| q | Briefly display pane indexes.
-
-## Other
-
-| command | description |
-|---------|-------------|
-| d | Detach the current client.
-| $ | Rename the current session.
-| [ | Enter copy mode to copy text or view the history.
-| f | Prompt to search for text in open windows.
-| r | Force redraw of the attached client.
-| L | Switch the attached client back to the last session.
-| : | Enter the tmux command prompt
-| ? | List all key bindings
-| f | Search window titles and goto that window
-| i | Briefly display window information
-| r | Force redraw of the attached client.
-| s | Select a new session for the attached client interactively.
-| t | Show the time.
-| = | Choose which buffer to paste interactively from a list.
-| ] | Paste the most recently copied buffer of text.
-| . | Move window
-
-## Create a new session
-
-Any of these will work.
-
-```bash
-tmux
-tmux new
-tmux new-session
-```
-
-## Reattach to a session
-
-Any of these commands will work.
-
-```bash
-tmux at
-tmux attach
-tmux attach-session
-```
-
-## List sessions
-
-Any of these commands will work.
-
-```bash
-tmux ls
-tmux list-sessions
-```
-
-## How to copy and paste
-
-1. Enter copy-mode `C-b [`
-2. Move to text, press `Space` to select text, move cursor to highlight text
-3. Press `Enter`
-4. Back at the command prompt, press `C-b ]` and the text you selected is pasted
-
-## References
-
-* http://man.openbsd.org/OpenBSD-current/man1/tmux.1
-
diff --git a/m/eg/.eg_custom/uml.md b/m/eg/.eg_custom/uml.md
deleted file mode 100644
index d8ab0d3..0000000
--- a/m/eg/.eg_custom/uml.md
+++ /dev/null
@@ -1,50 +0,0 @@
-UML Cheat Sheet
-===============
-
-
-```
-<>
-<>
-<>
-
-- private
-# protected
-+ public
-
-name : type = default value
-```
-
-Examples:
-
-```
-<>
-Name\Space\To\ClassAbstract
----
-- $privateAttribute : string = ''
-# $protected : integer = 1
-+ $public : string = 'DefaultValue'
----
-+ getPrivateAttribute() : string
-+ getValueForKey($key : string) : mixed
-+ get($key : string, $default : mixed = null) : mixed
-```
-
-```
-Class A "uses" Class B
-[Class A]- - - ->[Class B]
-```
-
-```
-Class A "has a" Class B
-[Class A]---->[Class B]
-```
-
-```
-Company "owns" Employee
-[Company]⃟----[Employee]
-```
-
-```
-Ford "is a" Car
-[Car]◁----[Ford]
-```
diff --git a/m/eg/.eg_custom/vim.md b/m/eg/.eg_custom/vim.md
deleted file mode 100644
index ac55b89..0000000
--- a/m/eg/.eg_custom/vim.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# vim
-
-paste from clipboard into vim
-
- "*yy OR "+yy (clarify this)
diff --git a/m/eg/.eg_custom/youtube-dl.md b/m/eg/.eg_custom/youtube-dl.md
deleted file mode 100644
index 4a28b2f..0000000
--- a/m/eg/.eg_custom/youtube-dl.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# youtube-dl
-
-Download a video and convert it to MP4
-
- youtube-dl -v -o '%(title)s.%(ext)s' --restrict-filenames --recode-video mp4 qXYh8DmBZek
diff --git a/m/eg/.eg_custom/zsh.md b/m/eg/.eg_custom/zsh.md
deleted file mode 100644
index 0a236f8..0000000
--- a/m/eg/.eg_custom/zsh.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Zsh Cheat Sheet
-===============
-
-Still haven't got around to digging in a reading the man pages for this yet.
diff --git a/m/eg/.egrc b/m/eg/.egrc
deleted file mode 100644
index ece0afe..0000000
--- a/m/eg/.egrc
+++ /dev/null
@@ -1,3 +0,0 @@
-[eg-config]
-examples-dir = ~/builds/eg/eg/examples
-custom-dir = ~/.eg_custom
diff --git a/m/git/.git-completion b/m/git/.git-completion
deleted file mode 100644
index 482ca84..0000000
--- a/m/git/.git-completion
+++ /dev/null
@@ -1,2742 +0,0 @@
-# bash/zsh completion support for core Git.
-#
-# Copyright (C) 2006,2007 Shawn O. Pearce
-# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
-# Distributed under the GNU General Public License, version 2.0.
-#
-# The contained completion routines provide support for completing:
-#
-# *) local and remote branch names
-# *) local and remote tag names
-# *) .git/remotes file names
-# *) git 'subcommands'
-# *) tree paths within 'ref:path/to/file' expressions
-# *) file paths within current working directory and index
-# *) common --long-options
-#
-# To use these routines:
-#
-# 1) Copy this file to somewhere (e.g. ~/.git-completion.bash).
-# 2) Add the following line to your .bashrc/.zshrc:
-# source ~/.git-completion.bash
-# 3) Consider changing your PS1 to also show the current branch,
-# see git-prompt.sh for details.
-#
-# If you use complex aliases of form '!f() { ... }; f', you can use the null
-# command ':' as the first command in the function body to declare the desired
-# completion style. For example '!f() { : git commit ; ... }; f' will
-# tell the completion to use commit completion. This also works with aliases
-# of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '".
-
-case "$COMP_WORDBREAKS" in
-*:*) : great ;;
-*) COMP_WORDBREAKS="$COMP_WORDBREAKS:"
-esac
-
-# __gitdir accepts 0 or 1 arguments (i.e., location)
-# returns location of .git repo
-__gitdir ()
-{
- if [ -z "${1-}" ]; then
- if [ -n "${__git_dir-}" ]; then
- echo "$__git_dir"
- elif [ -n "${GIT_DIR-}" ]; then
- test -d "${GIT_DIR-}" || return 1
- echo "$GIT_DIR"
- elif [ -d .git ]; then
- echo .git
- else
- git rev-parse --git-dir 2>/dev/null
- fi
- elif [ -d "$1/.git" ]; then
- echo "$1/.git"
- else
- echo "$1"
- fi
-}
-
-# The following function is based on code from:
-#
-# bash_completion - programmable completion functions for bash 3.2+
-#
-# Copyright © 2006-2008, Ian Macdonald
-# © 2009-2010, Bash Completion Maintainers
-#
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# The latest version of this software can be obtained here:
-#
-# http://bash-completion.alioth.debian.org/
-#
-# RELEASE: 2.x
-
-# This function can be used to access a tokenized list of words
-# on the command line:
-#
-# __git_reassemble_comp_words_by_ref '=:'
-# if test "${words_[cword_-1]}" = -w
-# then
-# ...
-# fi
-#
-# The argument should be a collection of characters from the list of
-# word completion separators (COMP_WORDBREAKS) to treat as ordinary
-# characters.
-#
-# This is roughly equivalent to going back in time and setting
-# COMP_WORDBREAKS to exclude those characters. The intent is to
-# make option types like --date= and : easy to
-# recognize by treating each shell word as a single token.
-#
-# It is best not to set COMP_WORDBREAKS directly because the value is
-# shared with other completion scripts. By the time the completion
-# function gets called, COMP_WORDS has already been populated so local
-# changes to COMP_WORDBREAKS have no effect.
-#
-# Output: words_, cword_, cur_.
-
-__git_reassemble_comp_words_by_ref()
-{
- local exclude i j first
- # Which word separators to exclude?
- exclude="${1//[^$COMP_WORDBREAKS]}"
- cword_=$COMP_CWORD
- if [ -z "$exclude" ]; then
- words_=("${COMP_WORDS[@]}")
- return
- fi
- # List of word completion separators has shrunk;
- # re-assemble words to complete.
- for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do
- # Append each nonempty word consisting of just
- # word separator characters to the current word.
- first=t
- while
- [ $i -gt 0 ] &&
- [ -n "${COMP_WORDS[$i]}" ] &&
- # word consists of excluded word separators
- [ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ]
- do
- # Attach to the previous token,
- # unless the previous token is the command name.
- if [ $j -ge 2 ] && [ -n "$first" ]; then
- ((j--))
- fi
- first=
- words_[$j]=${words_[j]}${COMP_WORDS[i]}
- if [ $i = $COMP_CWORD ]; then
- cword_=$j
- fi
- if (($i < ${#COMP_WORDS[@]} - 1)); then
- ((i++))
- else
- # Done.
- return
- fi
- done
- words_[$j]=${words_[j]}${COMP_WORDS[i]}
- if [ $i = $COMP_CWORD ]; then
- cword_=$j
- fi
- done
-}
-
-if ! type _get_comp_words_by_ref >/dev/null 2>&1; then
-_get_comp_words_by_ref ()
-{
- local exclude cur_ words_ cword_
- if [ "$1" = "-n" ]; then
- exclude=$2
- shift 2
- fi
- __git_reassemble_comp_words_by_ref "$exclude"
- cur_=${words_[cword_]}
- while [ $# -gt 0 ]; do
- case "$1" in
- cur)
- cur=$cur_
- ;;
- prev)
- prev=${words_[$cword_-1]}
- ;;
- words)
- words=("${words_[@]}")
- ;;
- cword)
- cword=$cword_
- ;;
- esac
- shift
- done
-}
-fi
-
-__gitcompappend ()
-{
- local x i=${#COMPREPLY[@]}
- for x in $1; do
- if [[ "$x" == "$3"* ]]; then
- COMPREPLY[i++]="$2$x$4"
- fi
- done
-}
-
-__gitcompadd ()
-{
- COMPREPLY=()
- __gitcompappend "$@"
-}
-
-# Generates completion reply, appending a space to possible completion words,
-# if necessary.
-# It accepts 1 to 4 arguments:
-# 1: List of possible completion words.
-# 2: A prefix to be added to each possible completion word (optional).
-# 3: Generate possible completion matches for this word (optional).
-# 4: A suffix to be appended to each possible completion word (optional).
-__gitcomp ()
-{
- local cur_="${3-$cur}"
-
- case "$cur_" in
- --*=)
- ;;
- *)
- local c i=0 IFS=$' \t\n'
- for c in $1; do
- c="$c${4-}"
- if [[ $c == "$cur_"* ]]; then
- case $c in
- --*=*|*.) ;;
- *) c="$c " ;;
- esac
- COMPREPLY[i++]="${2-}$c"
- fi
- done
- ;;
- esac
-}
-
-# Variation of __gitcomp_nl () that appends to the existing list of
-# completion candidates, COMPREPLY.
-__gitcomp_nl_append ()
-{
- local IFS=$'\n'
- __gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }"
-}
-
-# Generates completion reply from newline-separated possible completion words
-# by appending a space to all of them.
-# It accepts 1 to 4 arguments:
-# 1: List of possible completion words, separated by a single newline.
-# 2: A prefix to be added to each possible completion word (optional).
-# 3: Generate possible completion matches for this word (optional).
-# 4: A suffix to be appended to each possible completion word instead of
-# the default space (optional). If specified but empty, nothing is
-# appended.
-__gitcomp_nl ()
-{
- COMPREPLY=()
- __gitcomp_nl_append "$@"
-}
-
-# Generates completion reply with compgen from newline-separated possible
-# completion filenames.
-# It accepts 1 to 3 arguments:
-# 1: List of possible completion filenames, separated by a single newline.
-# 2: A directory prefix to be added to each possible completion filename
-# (optional).
-# 3: Generate possible completion matches for this word (optional).
-__gitcomp_file ()
-{
- local IFS=$'\n'
-
- # XXX does not work when the directory prefix contains a tilde,
- # since tilde expansion is not applied.
- # This means that COMPREPLY will be empty and Bash default
- # completion will be used.
- __gitcompadd "$1" "${2-}" "${3-$cur}" ""
-
- # use a hack to enable file mode in bash < 4
- compopt -o filenames +o nospace 2>/dev/null ||
- compgen -f /non-existing-dir/ > /dev/null
-}
-
-# Execute 'git ls-files', unless the --committable option is specified, in
-# which case it runs 'git diff-index' to find out the files that can be
-# committed. It return paths relative to the directory specified in the first
-# argument, and using the options specified in the second argument.
-__git_ls_files_helper ()
-{
- if [ "$2" == "--committable" ]; then
- git -C "$1" diff-index --name-only --relative HEAD
- else
- # NOTE: $2 is not quoted in order to support multiple options
- git -C "$1" ls-files --exclude-standard $2
- fi 2>/dev/null
-}
-
-
-# __git_index_files accepts 1 or 2 arguments:
-# 1: Options to pass to ls-files (required).
-# 2: A directory path (optional).
-# If provided, only files within the specified directory are listed.
-# Sub directories are never recursed. Path must have a trailing
-# slash.
-__git_index_files ()
-{
- local dir="$(__gitdir)" root="${2-.}" file
-
- if [ -d "$dir" ]; then
- __git_ls_files_helper "$root" "$1" |
- while read -r file; do
- case "$file" in
- ?*/*) echo "${file%%/*}" ;;
- *) echo "$file" ;;
- esac
- done | sort | uniq
- fi
-}
-
-__git_heads ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir" ]; then
- git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
- refs/heads
- return
- fi
-}
-
-__git_tags ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir" ]; then
- git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
- refs/tags
- return
- fi
-}
-
-# __git_refs accepts 0, 1 (to pass to __gitdir), or 2 arguments
-# presence of 2nd argument means use the guess heuristic employed
-# by checkout for tracking branches
-__git_refs ()
-{
- local i hash dir="$(__gitdir "${1-}")" track="${2-}"
- local format refs
- if [ -d "$dir" ]; then
- case "$cur" in
- refs|refs/*)
- format="refname"
- refs="${cur%/*}"
- track=""
- ;;
- *)
- for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do
- if [ -e "$dir/$i" ]; then echo $i; fi
- done
- format="refname:short"
- refs="refs/tags refs/heads refs/remotes"
- ;;
- esac
- git --git-dir="$dir" for-each-ref --format="%($format)" \
- $refs
- if [ -n "$track" ]; then
- # employ the heuristic used by git checkout
- # Try to find a remote branch that matches the completion word
- # but only output if the branch name is unique
- local ref entry
- git --git-dir="$dir" for-each-ref --shell --format="ref=%(refname:short)" \
- "refs/remotes/" | \
- while read -r entry; do
- eval "$entry"
- ref="${ref#*/}"
- if [[ "$ref" == "$cur"* ]]; then
- echo "$ref"
- fi
- done | sort | uniq -u
- fi
- return
- fi
- case "$cur" in
- refs|refs/*)
- git ls-remote "$dir" "$cur*" 2>/dev/null | \
- while read -r hash i; do
- case "$i" in
- *^{}) ;;
- *) echo "$i" ;;
- esac
- done
- ;;
- *)
- echo "HEAD"
- git for-each-ref --format="%(refname:short)" -- \
- "refs/remotes/$dir/" 2>/dev/null | sed -e "s#^$dir/##"
- ;;
- esac
-}
-
-# __git_refs2 requires 1 argument (to pass to __git_refs)
-__git_refs2 ()
-{
- local i
- for i in $(__git_refs "$1"); do
- echo "$i:$i"
- done
-}
-
-# __git_refs_remotes requires 1 argument (to pass to ls-remote)
-__git_refs_remotes ()
-{
- local i hash
- git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \
- while read -r hash i; do
- echo "$i:refs/remotes/$1/${i#refs/heads/}"
- done
-}
-
-__git_remotes ()
-{
- local d="$(__gitdir)"
- test -d "$d/remotes" && ls -1 "$d/remotes"
- git --git-dir="$d" remote
-}
-
-__git_list_merge_strategies ()
-{
- git merge -s help 2>&1 |
- sed -n -e '/[Aa]vailable strategies are: /,/^$/{
- s/\.$//
- s/.*://
- s/^[ ]*//
- s/[ ]*$//
- p
- }'
-}
-
-__git_merge_strategies=
-# 'git merge -s help' (and thus detection of the merge strategy
-# list) fails, unfortunately, if run outside of any git working
-# tree. __git_merge_strategies is set to the empty string in
-# that case, and the detection will be repeated the next time it
-# is needed.
-__git_compute_merge_strategies ()
-{
- test -n "$__git_merge_strategies" ||
- __git_merge_strategies=$(__git_list_merge_strategies)
-}
-
-__git_complete_revlist_file ()
-{
- local pfx ls ref cur_="$cur"
- case "$cur_" in
- *..?*:*)
- return
- ;;
- ?*:*)
- ref="${cur_%%:*}"
- cur_="${cur_#*:}"
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- ls="$ref:$pfx"
- pfx="$pfx/"
- ;;
- *)
- ls="$ref"
- ;;
- esac
-
- case "$COMP_WORDBREAKS" in
- *:*) : great ;;
- *) pfx="$ref:$pfx" ;;
- esac
-
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" ls-tree "$ls" 2>/dev/null \
- | sed '/^100... blob /{
- s,^.* ,,
- s,$, ,
- }
- /^120000 blob /{
- s,^.* ,,
- s,$, ,
- }
- /^040000 tree /{
- s,^.* ,,
- s,$,/,
- }
- s/^.* //')" \
- "$pfx" "$cur_" ""
- ;;
- *...*)
- pfx="${cur_%...*}..."
- cur_="${cur_#*...}"
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- ;;
- *..*)
- pfx="${cur_%..*}.."
- cur_="${cur_#*..}"
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-}
-
-
-# __git_complete_index_file requires 1 argument:
-# 1: the options to pass to ls-file
-#
-# The exception is --committable, which finds the files appropriate commit.
-__git_complete_index_file ()
-{
- local pfx="" cur_="$cur"
-
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- pfx="${pfx}/"
- ;;
- esac
-
- __gitcomp_file "$(__git_index_files "$1" ${pfx:+"$pfx"})" "$pfx" "$cur_"
-}
-
-__git_complete_file ()
-{
- __git_complete_revlist_file
-}
-
-__git_complete_revlist ()
-{
- __git_complete_revlist_file
-}
-
-__git_complete_remote_or_refspec ()
-{
- local cur_="$cur" cmd="${words[1]}"
- local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
- if [ "$cmd" = "remote" ]; then
- ((c++))
- fi
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;;
- --all)
- case "$cmd" in
- push) no_complete_refspec=1 ;;
- fetch)
- return
- ;;
- *) ;;
- esac
- ;;
- -*) ;;
- *) remote="$i"; break ;;
- esac
- ((c++))
- done
- if [ -z "$remote" ]; then
- __gitcomp_nl "$(__git_remotes)"
- return
- fi
- if [ $no_complete_refspec = 1 ]; then
- return
- fi
- [ "$remote" = "." ] && remote=
- case "$cur_" in
- *:*)
- case "$COMP_WORDBREAKS" in
- *:*) : great ;;
- *) pfx="${cur_%%:*}:" ;;
- esac
- cur_="${cur_#*:}"
- lhs=0
- ;;
- +*)
- pfx="+"
- cur_="${cur_#+}"
- ;;
- esac
- case "$cmd" in
- fetch)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs2 "$remote")" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- fi
- ;;
- pull|remote)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- fi
- ;;
- push)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
- fi
- ;;
- esac
-}
-
-__git_complete_strategy ()
-{
- __git_compute_merge_strategies
- case "$prev" in
- -s|--strategy)
- __gitcomp "$__git_merge_strategies"
- return 0
- esac
- case "$cur" in
- --strategy=*)
- __gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}"
- return 0
- ;;
- esac
- return 1
-}
-
-__git_commands () {
- if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}"
- then
- printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}"
- else
- git help -a|egrep '^ [a-zA-Z0-9]'
- fi
-}
-
-__git_list_all_commands ()
-{
- local i IFS=" "$'\n'
- for i in $(__git_commands)
- do
- case $i in
- *--*) : helper pattern;;
- *) echo $i;;
- esac
- done
-}
-
-__git_all_commands=
-__git_compute_all_commands ()
-{
- test -n "$__git_all_commands" ||
- __git_all_commands=$(__git_list_all_commands)
-}
-
-__git_list_porcelain_commands ()
-{
- local i IFS=" "$'\n'
- __git_compute_all_commands
- for i in $__git_all_commands
- do
- case $i in
- *--*) : helper pattern;;
- applymbox) : ask gittus;;
- applypatch) : ask gittus;;
- archimport) : import;;
- cat-file) : plumbing;;
- check-attr) : plumbing;;
- check-ignore) : plumbing;;
- check-mailmap) : plumbing;;
- check-ref-format) : plumbing;;
- checkout-index) : plumbing;;
- commit-tree) : plumbing;;
- count-objects) : infrequent;;
- credential) : credentials;;
- credential-*) : credentials helper;;
- cvsexportcommit) : export;;
- cvsimport) : import;;
- cvsserver) : daemon;;
- daemon) : daemon;;
- diff-files) : plumbing;;
- diff-index) : plumbing;;
- diff-tree) : plumbing;;
- fast-import) : import;;
- fast-export) : export;;
- fsck-objects) : plumbing;;
- fetch-pack) : plumbing;;
- fmt-merge-msg) : plumbing;;
- for-each-ref) : plumbing;;
- hash-object) : plumbing;;
- http-*) : transport;;
- index-pack) : plumbing;;
- init-db) : deprecated;;
- local-fetch) : plumbing;;
- ls-files) : plumbing;;
- ls-remote) : plumbing;;
- ls-tree) : plumbing;;
- mailinfo) : plumbing;;
- mailsplit) : plumbing;;
- merge-*) : plumbing;;
- mktree) : plumbing;;
- mktag) : plumbing;;
- pack-objects) : plumbing;;
- pack-redundant) : plumbing;;
- pack-refs) : plumbing;;
- parse-remote) : plumbing;;
- patch-id) : plumbing;;
- prune) : plumbing;;
- prune-packed) : plumbing;;
- quiltimport) : import;;
- read-tree) : plumbing;;
- receive-pack) : plumbing;;
- remote-*) : transport;;
- rerere) : plumbing;;
- rev-list) : plumbing;;
- rev-parse) : plumbing;;
- runstatus) : plumbing;;
- sh-setup) : internal;;
- shell) : daemon;;
- show-ref) : plumbing;;
- send-pack) : plumbing;;
- show-index) : plumbing;;
- ssh-*) : transport;;
- stripspace) : plumbing;;
- symbolic-ref) : plumbing;;
- unpack-file) : plumbing;;
- unpack-objects) : plumbing;;
- update-index) : plumbing;;
- update-ref) : plumbing;;
- update-server-info) : daemon;;
- upload-archive) : plumbing;;
- upload-pack) : plumbing;;
- write-tree) : plumbing;;
- var) : infrequent;;
- verify-pack) : infrequent;;
- verify-tag) : plumbing;;
- *) echo $i;;
- esac
- done
-}
-
-__git_porcelain_commands=
-__git_compute_porcelain_commands ()
-{
- test -n "$__git_porcelain_commands" ||
- __git_porcelain_commands=$(__git_list_porcelain_commands)
-}
-
-# Lists all set config variables starting with the given section prefix,
-# with the prefix removed.
-__git_get_config_variables ()
-{
- local section="$1" i IFS=$'\n'
- for i in $(git --git-dir="$(__gitdir)" config --name-only --get-regexp "^$section\..*" 2>/dev/null); do
- echo "${i#$section.}"
- done
-}
-
-__git_pretty_aliases ()
-{
- __git_get_config_variables "pretty"
-}
-
-__git_aliases ()
-{
- __git_get_config_variables "alias"
-}
-
-# __git_aliased_command requires 1 argument
-__git_aliased_command ()
-{
- local word cmdline=$(git --git-dir="$(__gitdir)" \
- config --get "alias.$1")
- for word in $cmdline; do
- case "$word" in
- \!gitk|gitk)
- echo "gitk"
- return
- ;;
- \!*) : shell command alias ;;
- -*) : option ;;
- *=*) : setting env ;;
- git) : git itself ;;
- \(\)) : skip parens of shell function definition ;;
- {) : skip start of shell helper function ;;
- :) : skip null command ;;
- \'*) : skip opening quote after sh -c ;;
- *)
- echo "$word"
- return
- esac
- done
-}
-
-# __git_find_on_cmdline requires 1 argument
-__git_find_on_cmdline ()
-{
- local word subcommand c=1
- while [ $c -lt $cword ]; do
- word="${words[c]}"
- for subcommand in $1; do
- if [ "$subcommand" = "$word" ]; then
- echo "$subcommand"
- return
- fi
- done
- ((c++))
- done
-}
-
-__git_has_doubledash ()
-{
- local c=1
- while [ $c -lt $cword ]; do
- if [ "--" = "${words[c]}" ]; then
- return 0
- fi
- ((c++))
- done
- return 1
-}
-
-# Try to count non option arguments passed on the command line for the
-# specified git command.
-# When options are used, it is necessary to use the special -- option to
-# tell the implementation were non option arguments begin.
-# XXX this can not be improved, since options can appear everywhere, as
-# an example:
-# git mv x -n y
-#
-# __git_count_arguments requires 1 argument: the git command executed.
-__git_count_arguments ()
-{
- local word i c=0
-
- # Skip "git" (first argument)
- for ((i=1; i < ${#words[@]}; i++)); do
- word="${words[i]}"
-
- case "$word" in
- --)
- # Good; we can assume that the following are only non
- # option arguments.
- ((c = 0))
- ;;
- "$1")
- # Skip the specified git command and discard git
- # main options
- ((c = 0))
- ;;
- ?*)
- ((c++))
- ;;
- esac
- done
-
- printf "%d" $c
-}
-
-__git_whitespacelist="nowarn warn error error-all fix"
-
-_git_am ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir"/rebase-apply ]; then
- __gitcomp "--skip --continue --resolved --abort"
- return
- fi
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --3way --committer-date-is-author-date --ignore-date
- --ignore-whitespace --ignore-space-change
- --interactive --keep --no-utf8 --signoff --utf8
- --whitespace= --scissors
- "
- return
- esac
-}
-
-_git_apply ()
-{
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --stat --numstat --summary --check --index
- --cached --index-info --reverse --reject --unidiff-zero
- --apply --no-add --exclude=
- --ignore-whitespace --ignore-space-change
- --whitespace= --inaccurate-eof --verbose
- "
- return
- esac
-}
-
-_git_add ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --interactive --refresh --patch --update --dry-run
- --ignore-errors --intent-to-add
- "
- return
- esac
-
- # XXX should we check for --update and --all options ?
- __git_complete_index_file "--others --modified --directory --no-empty-directory"
-}
-
-_git_archive ()
-{
- case "$cur" in
- --format=*)
- __gitcomp "$(git archive --list)" "" "${cur##--format=}"
- return
- ;;
- --remote=*)
- __gitcomp_nl "$(__git_remotes)" "" "${cur##--remote=}"
- return
- ;;
- --*)
- __gitcomp "
- --format= --list --verbose
- --prefix= --remote= --exec=
- "
- return
- ;;
- esac
- __git_complete_file
-}
-
-_git_bisect ()
-{
- __git_has_doubledash && return
-
- local subcommands="start bad good skip reset visualize replay log run"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- if [ -f "$(__gitdir)"/BISECT_START ]; then
- __gitcomp "$subcommands"
- else
- __gitcomp "replay start"
- fi
- return
- fi
-
- case "$subcommand" in
- bad|good|reset|skip|start)
- __gitcomp_nl "$(__git_refs)"
- ;;
- *)
- ;;
- esac
-}
-
-_git_branch ()
-{
- local i c=1 only_local_ref="n" has_r="n"
-
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- -d|-m) only_local_ref="y" ;;
- -r) has_r="y" ;;
- esac
- ((c++))
- done
-
- case "$cur" in
- --set-upstream-to=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur##--set-upstream-to=}"
- ;;
- --*)
- __gitcomp "
- --color --no-color --verbose --abbrev= --no-abbrev
- --track --no-track --contains --merged --no-merged
- --set-upstream-to= --edit-description --list
- --unset-upstream
- "
- ;;
- *)
- if [ $only_local_ref = "y" -a $has_r = "n" ]; then
- __gitcomp_nl "$(__git_heads)"
- else
- __gitcomp_nl "$(__git_refs)"
- fi
- ;;
- esac
-}
-
-_git_bundle ()
-{
- local cmd="${words[2]}"
- case "$cword" in
- 2)
- __gitcomp "create list-heads verify unbundle"
- ;;
- 3)
- # looking for a file
- ;;
- *)
- case "$cmd" in
- create)
- __git_complete_revlist
- ;;
- esac
- ;;
- esac
-}
-
-_git_checkout ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --conflict=*)
- __gitcomp "diff3 merge" "" "${cur##--conflict=}"
- ;;
- --*)
- __gitcomp "
- --quiet --ours --theirs --track --no-track --merge
- --conflict= --orphan --patch
- "
- ;;
- *)
- # check if --track, --no-track, or --no-guess was specified
- # if so, disable DWIM mode
- local flags="--track --no-track --no-guess" track=1
- if [ -n "$(__git_find_on_cmdline "$flags")" ]; then
- track=''
- fi
- __gitcomp_nl "$(__git_refs '' $track)"
- ;;
- esac
-}
-
-_git_cherry ()
-{
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_cherry_pick ()
-{
- local dir="$(__gitdir)"
- if [ -f "$dir"/CHERRY_PICK_HEAD ]; then
- __gitcomp "--continue --quit --abort"
- return
- fi
- case "$cur" in
- --*)
- __gitcomp "--edit --no-commit --signoff --strategy= --mainline"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-}
-
-_git_clean ()
-{
- case "$cur" in
- --*)
- __gitcomp "--dry-run --quiet"
- return
- ;;
- esac
-
- # XXX should we check for -x option ?
- __git_complete_index_file "--others --directory"
-}
-
-_git_clone ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --local
- --no-hardlinks
- --shared
- --reference
- --quiet
- --no-checkout
- --bare
- --mirror
- --origin
- --upload-pack
- --template=
- --depth
- --single-branch
- --branch
- "
- return
- ;;
- esac
-}
-
-_git_commit ()
-{
- case "$prev" in
- -c|-C)
- __gitcomp_nl "$(__git_refs)" "" "${cur}"
- return
- ;;
- esac
-
- case "$cur" in
- --cleanup=*)
- __gitcomp "default scissors strip verbatim whitespace
- " "" "${cur##--cleanup=}"
- return
- ;;
- --reuse-message=*|--reedit-message=*|\
- --fixup=*|--squash=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
- return
- ;;
- --untracked-files=*)
- __gitcomp "all no normal" "" "${cur##--untracked-files=}"
- return
- ;;
- --*)
- __gitcomp "
- --all --author= --signoff --verify --no-verify
- --edit --no-edit
- --amend --include --only --interactive
- --dry-run --reuse-message= --reedit-message=
- --reset-author --file= --message= --template=
- --cleanup= --untracked-files --untracked-files=
- --verbose --quiet --fixup= --squash=
- "
- return
- esac
-
- if git rev-parse --verify --quiet HEAD >/dev/null; then
- __git_complete_index_file "--committable"
- else
- # This is the first commit
- __git_complete_index_file "--cached"
- fi
-}
-
-_git_describe ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --all --tags --contains --abbrev= --candidates=
- --exact-match --debug --long --match --always
- "
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-__git_diff_algorithms="myers minimal patience histogram"
-
-__git_diff_common_options="--stat --numstat --shortstat --summary
- --patch-with-stat --name-only --name-status --color
- --no-color --color-words --no-renames --check
- --full-index --binary --abbrev --diff-filter=
- --find-copies-harder
- --text --ignore-space-at-eol --ignore-space-change
- --ignore-all-space --ignore-blank-lines --exit-code
- --quiet --ext-diff --no-ext-diff
- --no-prefix --src-prefix= --dst-prefix=
- --inter-hunk-context=
- --patience --histogram --minimal
- --raw --word-diff
- --dirstat --dirstat= --dirstat-by-file
- --dirstat-by-file= --cumulative
- --diff-algorithm=
-"
-
-_git_diff ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --diff-algorithm=*)
- __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
- return
- ;;
- --*)
- __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
- --base --ours --theirs --no-index
- $__git_diff_common_options
- "
- return
- ;;
- esac
- __git_complete_revlist_file
-}
-
-__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
- tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc codecompare
-"
-
-_git_difftool ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --tool=*)
- __gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}"
- return
- ;;
- --*)
- __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
- --base --ours --theirs
- --no-renames --diff-filter= --find-copies-harder
- --relative --ignore-submodules
- --tool="
- return
- ;;
- esac
- __git_complete_revlist_file
-}
-
-__git_fetch_recurse_submodules="yes on-demand no"
-
-__git_fetch_options="
- --quiet --verbose --append --upload-pack --force --keep --depth=
- --tags --no-tags --all --prune --dry-run --recurse-submodules=
-"
-
-_git_fetch ()
-{
- case "$cur" in
- --recurse-submodules=*)
- __gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}"
- return
- ;;
- --*)
- __gitcomp "$__git_fetch_options"
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-__git_format_patch_options="
- --stdout --attach --no-attach --thread --thread= --no-thread
- --numbered --start-number --numbered-files --keep-subject --signoff
- --signature --no-signature --in-reply-to= --cc= --full-index --binary
- --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
- --inline --suffix= --ignore-if-in-upstream --subject-prefix=
- --output-directory --reroll-count --to= --quiet --notes
-"
-
-_git_format_patch ()
-{
- case "$cur" in
- --thread=*)
- __gitcomp "
- deep shallow
- " "" "${cur##--thread=}"
- return
- ;;
- --*)
- __gitcomp "$__git_format_patch_options"
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_fsck ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --tags --root --unreachable --cache --no-reflogs --full
- --strict --verbose --lost-found
- "
- return
- ;;
- esac
-}
-
-_git_gc ()
-{
- case "$cur" in
- --*)
- __gitcomp "--prune --aggressive"
- return
- ;;
- esac
-}
-
-_git_gitk ()
-{
- _gitk
-}
-
-__git_match_ctag() {
- awk "/^${1//\//\\/}/ { print \$1 }" "$2"
-}
-
-_git_grep ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "
- --cached
- --text --ignore-case --word-regexp --invert-match
- --full-name --line-number
- --extended-regexp --basic-regexp --fixed-strings
- --perl-regexp
- --files-with-matches --name-only
- --files-without-match
- --max-depth
- --count
- --and --or --not --all-match
- "
- return
- ;;
- esac
-
- case "$cword,$prev" in
- 2,*|*,-*)
- if test -r tags; then
- __gitcomp_nl "$(__git_match_ctag "$cur" tags)"
- return
- fi
- ;;
- esac
-
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_help ()
-{
- case "$cur" in
- --*)
- __gitcomp "--all --info --man --web"
- return
- ;;
- esac
- __git_compute_all_commands
- __gitcomp "$__git_all_commands $(__git_aliases)
- attributes cli core-tutorial cvs-migration
- diffcore gitk glossary hooks ignore modules
- namespaces repository-layout tutorial tutorial-2
- workflows
- "
-}
-
-_git_init ()
-{
- case "$cur" in
- --shared=*)
- __gitcomp "
- false true umask group all world everybody
- " "" "${cur##--shared=}"
- return
- ;;
- --*)
- __gitcomp "--quiet --bare --template= --shared --shared="
- return
- ;;
- esac
-}
-
-_git_ls_files ()
-{
- case "$cur" in
- --*)
- __gitcomp "--cached --deleted --modified --others --ignored
- --stage --directory --no-empty-directory --unmerged
- --killed --exclude= --exclude-from=
- --exclude-per-directory= --exclude-standard
- --error-unmatch --with-tree= --full-name
- --abbrev --ignored --exclude-per-directory
- "
- return
- ;;
- esac
-
- # XXX ignore options like --modified and always suggest all cached
- # files.
- __git_complete_index_file "--cached"
-}
-
-_git_ls_remote ()
-{
- __gitcomp_nl "$(__git_remotes)"
-}
-
-_git_ls_tree ()
-{
- __git_complete_file
-}
-
-# Options that go well for log, shortlog and gitk
-__git_log_common_options="
- --not --all
- --branches --tags --remotes
- --first-parent --merges --no-merges
- --max-count=
- --max-age= --since= --after=
- --min-age= --until= --before=
- --min-parents= --max-parents=
- --no-min-parents --no-max-parents
-"
-# Options that go well for log and gitk (not shortlog)
-__git_log_gitk_options="
- --dense --sparse --full-history
- --simplify-merges --simplify-by-decoration
- --left-right --notes --no-notes
-"
-# Options that go well for log and shortlog (not gitk)
-__git_log_shortlog_options="
- --author= --committer= --grep=
- --all-match --invert-grep
-"
-
-__git_log_pretty_formats="oneline short medium full fuller email raw format:"
-__git_log_date_formats="relative iso8601 rfc2822 short local default raw"
-
-_git_log ()
-{
- __git_has_doubledash && return
-
- local g="$(git rev-parse --git-dir 2>/dev/null)"
- local merge=""
- if [ -f "$g/MERGE_HEAD" ]; then
- merge="--merge"
- fi
- case "$cur" in
- --pretty=*|--format=*)
- __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
- " "" "${cur#*=}"
- return
- ;;
- --date=*)
- __gitcomp "$__git_log_date_formats" "" "${cur##--date=}"
- return
- ;;
- --decorate=*)
- __gitcomp "full short no" "" "${cur##--decorate=}"
- return
- ;;
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_shortlog_options
- $__git_log_gitk_options
- --root --topo-order --date-order --reverse
- --follow --full-diff
- --abbrev-commit --abbrev=
- --relative-date --date=
- --pretty= --format= --oneline
- --show-signature
- --cherry-pick
- --graph
- --decorate --decorate=
- --walk-reflogs
- --parents --children
- $merge
- $__git_diff_common_options
- --pickaxe-all --pickaxe-regex
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-# Common merge options shared by git-merge(1) and git-pull(1).
-__git_merge_options="
- --no-commit --no-stat --log --no-log --squash --strategy
- --commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit
- --verify-signatures --no-verify-signatures --gpg-sign
- --quiet --verbose --progress --no-progress
-"
-
-_git_merge ()
-{
- __git_complete_strategy && return
-
- case "$cur" in
- --*)
- __gitcomp "$__git_merge_options
- --rerere-autoupdate --no-rerere-autoupdate --abort"
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_mergetool ()
-{
- case "$cur" in
- --tool=*)
- __gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}"
- return
- ;;
- --*)
- __gitcomp "--tool="
- return
- ;;
- esac
-}
-
-_git_merge_base ()
-{
- case "$cur" in
- --*)
- __gitcomp "--octopus --independent --is-ancestor --fork-point"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_mv ()
-{
- case "$cur" in
- --*)
- __gitcomp "--dry-run"
- return
- ;;
- esac
-
- if [ $(__git_count_arguments "mv") -gt 0 ]; then
- # We need to show both cached and untracked files (including
- # empty directories) since this may not be the last argument.
- __git_complete_index_file "--cached --others --directory"
- else
- __git_complete_index_file "--cached"
- fi
-}
-
-_git_name_rev ()
-{
- __gitcomp "--tags --all --stdin"
-}
-
-_git_notes ()
-{
- local subcommands='add append copy edit list prune remove show'
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
-
- case "$subcommand,$cur" in
- ,--*)
- __gitcomp '--ref'
- ;;
- ,*)
- case "$prev" in
- --ref)
- __gitcomp_nl "$(__git_refs)"
- ;;
- *)
- __gitcomp "$subcommands --ref"
- ;;
- esac
- ;;
- add,--reuse-message=*|append,--reuse-message=*|\
- add,--reedit-message=*|append,--reedit-message=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
- ;;
- add,--*|append,--*)
- __gitcomp '--file= --message= --reedit-message=
- --reuse-message='
- ;;
- copy,--*)
- __gitcomp '--stdin'
- ;;
- prune,--*)
- __gitcomp '--dry-run --verbose'
- ;;
- prune,*)
- ;;
- *)
- case "$prev" in
- -m|-F)
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
- ;;
- esac
-}
-
-_git_pull ()
-{
- __git_complete_strategy && return
-
- case "$cur" in
- --recurse-submodules=*)
- __gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}"
- return
- ;;
- --*)
- __gitcomp "
- --rebase --no-rebase
- $__git_merge_options
- $__git_fetch_options
- "
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-__git_push_recurse_submodules="check on-demand"
-
-__git_complete_force_with_lease ()
-{
- local cur_=$1
-
- case "$cur_" in
- --*=)
- ;;
- *:*)
- __gitcomp_nl "$(__git_refs)" "" "${cur_#*:}"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)" "" "$cur_"
- ;;
- esac
-}
-
-_git_push ()
-{
- case "$prev" in
- --repo)
- __gitcomp_nl "$(__git_remotes)"
- return
- ;;
- --recurse-submodules)
- __gitcomp "$__git_push_recurse_submodules"
- return
- ;;
- esac
- case "$cur" in
- --repo=*)
- __gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}"
- return
- ;;
- --recurse-submodules=*)
- __gitcomp "$__git_push_recurse_submodules" "" "${cur##--recurse-submodules=}"
- return
- ;;
- --force-with-lease=*)
- __git_complete_force_with_lease "${cur##--force-with-lease=}"
- return
- ;;
- --*)
- __gitcomp "
- --all --mirror --tags --dry-run --force --verbose
- --quiet --prune --delete --follow-tags
- --receive-pack= --repo= --set-upstream
- --force-with-lease --force-with-lease= --recurse-submodules=
- "
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-_git_rebase ()
-{
- local dir="$(__gitdir)"
- if [ -f "$dir"/rebase-merge/interactive ]; then
- __gitcomp "--continue --skip --abort --edit-todo"
- return
- elif [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then
- __gitcomp "--continue --skip --abort"
- return
- fi
- __git_complete_strategy && return
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --onto --merge --strategy --interactive
- --preserve-merges --stat --no-stat
- --committer-date-is-author-date --ignore-date
- --ignore-whitespace --whitespace=
- --autosquash --fork-point --no-fork-point
- --autostash
- "
-
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_reflog ()
-{
- local subcommands="show delete expire"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
-
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- else
- __gitcomp_nl "$(__git_refs)"
- fi
-}
-
-__git_send_email_confirm_options="always never auto cc compose"
-__git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
-
-_git_send_email ()
-{
- case "$cur" in
- --confirm=*)
- __gitcomp "
- $__git_send_email_confirm_options
- " "" "${cur##--confirm=}"
- return
- ;;
- --suppress-cc=*)
- __gitcomp "
- $__git_send_email_suppresscc_options
- " "" "${cur##--suppress-cc=}"
-
- return
- ;;
- --smtp-encryption=*)
- __gitcomp "ssl tls" "" "${cur##--smtp-encryption=}"
- return
- ;;
- --thread=*)
- __gitcomp "
- deep shallow
- " "" "${cur##--thread=}"
- return
- ;;
- --*)
- __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
- --compose --confirm= --dry-run --envelope-sender
- --from --identity
- --in-reply-to --no-chain-reply-to --no-signed-off-by-cc
- --no-suppress-from --no-thread --quiet
- --signed-off-by-cc --smtp-pass --smtp-server
- --smtp-server-port --smtp-encryption= --smtp-user
- --subject --suppress-cc= --suppress-from --thread --to
- --validate --no-validate
- $__git_format_patch_options"
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_stage ()
-{
- _git_add
-}
-
-__git_config_get_set_variables ()
-{
- local prevword word config_file= c=$cword
- while [ $c -gt 1 ]; do
- word="${words[c]}"
- case "$word" in
- --system|--global|--local|--file=*)
- config_file="$word"
- break
- ;;
- -f|--file)
- config_file="$word $prevword"
- break
- ;;
- esac
- prevword=$word
- c=$((--c))
- done
-
- git --git-dir="$(__gitdir)" config $config_file --name-only --list 2>/dev/null
-}
-
-_git_config ()
-{
- case "$prev" in
- branch.*.remote|branch.*.pushremote)
- __gitcomp_nl "$(__git_remotes)"
- return
- ;;
- branch.*.merge)
- __gitcomp_nl "$(__git_refs)"
- return
- ;;
- branch.*.rebase)
- __gitcomp "false true"
- return
- ;;
- remote.pushdefault)
- __gitcomp_nl "$(__git_remotes)"
- return
- ;;
- remote.*.fetch)
- local remote="${prev#remote.}"
- remote="${remote%.fetch}"
- if [ -z "$cur" ]; then
- __gitcomp_nl "refs/heads/" "" "" ""
- return
- fi
- __gitcomp_nl "$(__git_refs_remotes "$remote")"
- return
- ;;
- remote.*.push)
- local remote="${prev#remote.}"
- remote="${remote%.push}"
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" \
- for-each-ref --format='%(refname):%(refname)' \
- refs/heads)"
- return
- ;;
- pull.twohead|pull.octopus)
- __git_compute_merge_strategies
- __gitcomp "$__git_merge_strategies"
- return
- ;;
- color.branch|color.diff|color.interactive|\
- color.showbranch|color.status|color.ui)
- __gitcomp "always never auto"
- return
- ;;
- color.pager)
- __gitcomp "false true"
- return
- ;;
- color.*.*)
- __gitcomp "
- normal black red green yellow blue magenta cyan white
- bold dim ul blink reverse
- "
- return
- ;;
- diff.submodule)
- __gitcomp "log short"
- return
- ;;
- help.format)
- __gitcomp "man info web html"
- return
- ;;
- log.date)
- __gitcomp "$__git_log_date_formats"
- return
- ;;
- sendemail.aliasesfiletype)
- __gitcomp "mutt mailrc pine elm gnus"
- return
- ;;
- sendemail.confirm)
- __gitcomp "$__git_send_email_confirm_options"
- return
- ;;
- sendemail.suppresscc)
- __gitcomp "$__git_send_email_suppresscc_options"
- return
- ;;
- sendemail.transferencoding)
- __gitcomp "7bit 8bit quoted-printable base64"
- return
- ;;
- --get|--get-all|--unset|--unset-all)
- __gitcomp_nl "$(__git_config_get_set_variables)"
- return
- ;;
- *.*)
- return
- ;;
- esac
- case "$cur" in
- --*)
- __gitcomp "
- --system --global --local --file=
- --list --replace-all
- --get --get-all --get-regexp
- --add --unset --unset-all
- --remove-section --rename-section
- --name-only
- "
- return
- ;;
- branch.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_"
- return
- ;;
- branch.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "."
- __gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_"
- return
- ;;
- guitool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "
- argprompt cmd confirm needsfile noconsole norescan
- prompt revprompt revunmerged title
- " "$pfx" "$cur_"
- return
- ;;
- difftool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
- return
- ;;
- man.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
- return
- ;;
- mergetool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path trustExitCode" "$pfx" "$cur_"
- return
- ;;
- pager.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __git_compute_all_commands
- __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_"
- return
- ;;
- remote.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "
- url proxy fetch push mirror skipDefaultUpdate
- receivepack uploadpack tagopt pushurl
- " "$pfx" "$cur_"
- return
- ;;
- remote.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
- __gitcomp_nl_append "pushdefault" "$pfx" "$cur_"
- return
- ;;
- url.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_"
- return
- ;;
- esac
- __gitcomp "
- add.ignoreErrors
- advice.commitBeforeMerge
- advice.detachedHead
- advice.implicitIdentity
- advice.pushNonFastForward
- advice.resolveConflict
- advice.statusHints
- alias.
- am.keepcr
- apply.ignorewhitespace
- apply.whitespace
- branch.autosetupmerge
- branch.autosetuprebase
- browser.
- clean.requireForce
- color.branch
- color.branch.current
- color.branch.local
- color.branch.plain
- color.branch.remote
- color.decorate.HEAD
- color.decorate.branch
- color.decorate.remoteBranch
- color.decorate.stash
- color.decorate.tag
- color.diff
- color.diff.commit
- color.diff.frag
- color.diff.func
- color.diff.meta
- color.diff.new
- color.diff.old
- color.diff.plain
- color.diff.whitespace
- color.grep
- color.grep.context
- color.grep.filename
- color.grep.function
- color.grep.linenumber
- color.grep.match
- color.grep.selected
- color.grep.separator
- color.interactive
- color.interactive.error
- color.interactive.header
- color.interactive.help
- color.interactive.prompt
- color.pager
- color.showbranch
- color.status
- color.status.added
- color.status.changed
- color.status.header
- color.status.nobranch
- color.status.unmerged
- color.status.untracked
- color.status.updated
- color.ui
- commit.status
- commit.template
- core.abbrev
- core.askpass
- core.attributesfile
- core.autocrlf
- core.bare
- core.bigFileThreshold
- core.compression
- core.createObject
- core.deltaBaseCacheLimit
- core.editor
- core.eol
- core.excludesfile
- core.fileMode
- core.fsyncobjectfiles
- core.gitProxy
- core.ignoreStat
- core.ignorecase
- core.logAllRefUpdates
- core.loosecompression
- core.notesRef
- core.packedGitLimit
- core.packedGitWindowSize
- core.pager
- core.preferSymlinkRefs
- core.preloadindex
- core.quotepath
- core.repositoryFormatVersion
- core.safecrlf
- core.sharedRepository
- core.sparseCheckout
- core.symlinks
- core.trustctime
- core.warnAmbiguousRefs
- core.whitespace
- core.worktree
- diff.autorefreshindex
- diff.external
- diff.ignoreSubmodules
- diff.mnemonicprefix
- diff.noprefix
- diff.renameLimit
- diff.renames
- diff.statGraphWidth
- diff.submodule
- diff.suppressBlankEmpty
- diff.tool
- diff.wordRegex
- diff.algorithm
- difftool.
- difftool.prompt
- fetch.recurseSubmodules
- fetch.unpackLimit
- format.attach
- format.cc
- format.coverLetter
- format.headers
- format.numbered
- format.pretty
- format.signature
- format.signoff
- format.subjectprefix
- format.suffix
- format.thread
- format.to
- gc.
- gc.aggressiveWindow
- gc.auto
- gc.autopacklimit
- gc.packrefs
- gc.pruneexpire
- gc.reflogexpire
- gc.reflogexpireunreachable
- gc.rerereresolved
- gc.rerereunresolved
- gitcvs.allbinary
- gitcvs.commitmsgannotation
- gitcvs.dbTableNamePrefix
- gitcvs.dbdriver
- gitcvs.dbname
- gitcvs.dbpass
- gitcvs.dbuser
- gitcvs.enabled
- gitcvs.logfile
- gitcvs.usecrlfattr
- guitool.
- gui.blamehistoryctx
- gui.commitmsgwidth
- gui.copyblamethreshold
- gui.diffcontext
- gui.encoding
- gui.fastcopyblame
- gui.matchtrackingbranch
- gui.newbranchtemplate
- gui.pruneduringfetch
- gui.spellingdictionary
- gui.trustmtime
- help.autocorrect
- help.browser
- help.format
- http.lowSpeedLimit
- http.lowSpeedTime
- http.maxRequests
- http.minSessions
- http.noEPSV
- http.postBuffer
- http.proxy
- http.sslCipherList
- http.sslVersion
- http.sslCAInfo
- http.sslCAPath
- http.sslCert
- http.sslCertPasswordProtected
- http.sslKey
- http.sslVerify
- http.useragent
- i18n.commitEncoding
- i18n.logOutputEncoding
- imap.authMethod
- imap.folder
- imap.host
- imap.pass
- imap.port
- imap.preformattedHTML
- imap.sslverify
- imap.tunnel
- imap.user
- init.templatedir
- instaweb.browser
- instaweb.httpd
- instaweb.local
- instaweb.modulepath
- instaweb.port
- interactive.singlekey
- log.date
- log.decorate
- log.showroot
- mailmap.file
- man.
- man.viewer
- merge.
- merge.conflictstyle
- merge.log
- merge.renameLimit
- merge.renormalize
- merge.stat
- merge.tool
- merge.verbosity
- mergetool.
- mergetool.keepBackup
- mergetool.keepTemporaries
- mergetool.prompt
- notes.displayRef
- notes.rewrite.
- notes.rewrite.amend
- notes.rewrite.rebase
- notes.rewriteMode
- notes.rewriteRef
- pack.compression
- pack.deltaCacheLimit
- pack.deltaCacheSize
- pack.depth
- pack.indexVersion
- pack.packSizeLimit
- pack.threads
- pack.window
- pack.windowMemory
- pager.
- pretty.
- pull.octopus
- pull.twohead
- push.default
- push.followTags
- rebase.autosquash
- rebase.stat
- receive.autogc
- receive.denyCurrentBranch
- receive.denyDeleteCurrent
- receive.denyDeletes
- receive.denyNonFastForwards
- receive.fsckObjects
- receive.unpackLimit
- receive.updateserverinfo
- remote.pushdefault
- remotes.
- repack.usedeltabaseoffset
- rerere.autoupdate
- rerere.enabled
- sendemail.
- sendemail.aliasesfile
- sendemail.aliasfiletype
- sendemail.bcc
- sendemail.cc
- sendemail.cccmd
- sendemail.chainreplyto
- sendemail.confirm
- sendemail.envelopesender
- sendemail.from
- sendemail.identity
- sendemail.multiedit
- sendemail.signedoffbycc
- sendemail.smtpdomain
- sendemail.smtpencryption
- sendemail.smtppass
- sendemail.smtpserver
- sendemail.smtpserveroption
- sendemail.smtpserverport
- sendemail.smtpuser
- sendemail.suppresscc
- sendemail.suppressfrom
- sendemail.thread
- sendemail.to
- sendemail.validate
- showbranch.default
- status.relativePaths
- status.showUntrackedFiles
- status.submodulesummary
- submodule.
- tar.umask
- transfer.unpackLimit
- url.
- user.email
- user.name
- user.signingkey
- web.browser
- branch. remote.
- "
-}
-
-_git_remote ()
-{
- local subcommands="add rename remove set-head set-branches set-url show prune update"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- return
- fi
-
- case "$subcommand" in
- rename|remove|set-url|show|prune)
- __gitcomp_nl "$(__git_remotes)"
- ;;
- set-head|set-branches)
- __git_complete_remote_or_refspec
- ;;
- update)
- __gitcomp "$(__git_get_config_variables "remotes")"
- ;;
- *)
- ;;
- esac
-}
-
-_git_replace ()
-{
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_reset ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "--merge --mixed --hard --soft --patch"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_revert ()
-{
- local dir="$(__gitdir)"
- if [ -f "$dir"/REVERT_HEAD ]; then
- __gitcomp "--continue --quit --abort"
- return
- fi
- case "$cur" in
- --*)
- __gitcomp "--edit --mainline --no-edit --no-commit --signoff"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_rm ()
-{
- case "$cur" in
- --*)
- __gitcomp "--cached --dry-run --ignore-unmatch --quiet"
- return
- ;;
- esac
-
- __git_complete_index_file "--cached"
-}
-
-_git_shortlog ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_shortlog_options
- --numbered --summary
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_show ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --pretty=*|--format=*)
- __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
- " "" "${cur#*=}"
- return
- ;;
- --diff-algorithm=*)
- __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
- return
- ;;
- --*)
- __gitcomp "--pretty= --format= --abbrev-commit --oneline
- --show-signature
- $__git_diff_common_options
- "
- return
- ;;
- esac
- __git_complete_revlist_file
-}
-
-_git_show_branch ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --all --remotes --topo-order --current --more=
- --list --independent --merge-base --no-name
- --color --no-color
- --sha1-name --sparse --topics --reflog
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_stash ()
-{
- local save_opts='--keep-index --no-keep-index --quiet --patch'
- local subcommands='save list show apply clear drop pop create branch'
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- case "$cur" in
- --*)
- __gitcomp "$save_opts"
- ;;
- *)
- if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
- __gitcomp "$subcommands"
- fi
- ;;
- esac
- else
- case "$subcommand,$cur" in
- save,--*)
- __gitcomp "$save_opts"
- ;;
- apply,--*|pop,--*)
- __gitcomp "--index --quiet"
- ;;
- show,--*|drop,--*|branch,--*)
- ;;
- show,*|apply,*|drop,*|pop,*|branch,*)
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \
- | sed -n -e 's/:.*//p')"
- ;;
- *)
- ;;
- esac
- fi
-}
-
-_git_submodule ()
-{
- __git_has_doubledash && return
-
- local subcommands="add status init deinit update summary foreach sync"
- if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then
- case "$cur" in
- --*)
- __gitcomp "--quiet --cached"
- ;;
- *)
- __gitcomp "$subcommands"
- ;;
- esac
- return
- fi
-}
-
-_git_svn ()
-{
- local subcommands="
- init fetch clone rebase dcommit log find-rev
- set-tree commit-diff info create-ignore propget
- proplist show-ignore show-externals branch tag blame
- migrate mkdirs reset gc
- "
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- else
- local remote_opts="--username= --config-dir= --no-auth-cache"
- local fc_opts="
- --follow-parent --authors-file= --repack=
- --no-metadata --use-svm-props --use-svnsync-props
- --log-window-size= --no-checkout --quiet
- --repack-flags --use-log-author --localtime
- --ignore-paths= --include-paths= $remote_opts
- "
- local init_opts="
- --template= --shared= --trunk= --tags=
- --branches= --stdlayout --minimize-url
- --no-metadata --use-svm-props --use-svnsync-props
- --rewrite-root= --prefix= --use-log-author
- --add-author-from $remote_opts
- "
- local cmt_opts="
- --edit --rmdir --find-copies-harder --copy-similarity=
- "
-
- case "$subcommand,$cur" in
- fetch,--*)
- __gitcomp "--revision= --fetch-all $fc_opts"
- ;;
- clone,--*)
- __gitcomp "--revision= $fc_opts $init_opts"
- ;;
- init,--*)
- __gitcomp "$init_opts"
- ;;
- dcommit,--*)
- __gitcomp "
- --merge --strategy= --verbose --dry-run
- --fetch-all --no-rebase --commit-url
- --revision --interactive $cmt_opts $fc_opts
- "
- ;;
- set-tree,--*)
- __gitcomp "--stdin $cmt_opts $fc_opts"
- ;;
- create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\
- show-externals,--*|mkdirs,--*)
- __gitcomp "--revision="
- ;;
- log,--*)
- __gitcomp "
- --limit= --revision= --verbose --incremental
- --oneline --show-commit --non-recursive
- --authors-file= --color
- "
- ;;
- rebase,--*)
- __gitcomp "
- --merge --verbose --strategy= --local
- --fetch-all --dry-run $fc_opts
- "
- ;;
- commit-diff,--*)
- __gitcomp "--message= --file= --revision= $cmt_opts"
- ;;
- info,--*)
- __gitcomp "--url"
- ;;
- branch,--*)
- __gitcomp "--dry-run --message --tag"
- ;;
- tag,--*)
- __gitcomp "--dry-run --message"
- ;;
- blame,--*)
- __gitcomp "--git-format"
- ;;
- migrate,--*)
- __gitcomp "
- --config-dir= --ignore-paths= --minimize
- --no-auth-cache --username=
- "
- ;;
- reset,--*)
- __gitcomp "--revision= --parent"
- ;;
- *)
- ;;
- esac
- fi
-}
-
-_git_tag ()
-{
- local i c=1 f=0
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- -d|-v)
- __gitcomp_nl "$(__git_tags)"
- return
- ;;
- -f)
- f=1
- ;;
- esac
- ((c++))
- done
-
- case "$prev" in
- -m|-F)
- ;;
- -*|tag)
- if [ $f = 1 ]; then
- __gitcomp_nl "$(__git_tags)"
- fi
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-
- case "$cur" in
- --*)
- __gitcomp "
- --list --delete --verify --annotate --message --file
- --sign --cleanup --local-user --force --column --sort
- --contains --points-at
- "
- ;;
- esac
-}
-
-_git_whatchanged ()
-{
- _git_log
-}
-
-__git_main ()
-{
- local i c=1 command __git_dir
-
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- --git-dir=*) __git_dir="${i#--git-dir=}" ;;
- --git-dir) ((c++)) ; __git_dir="${words[c]}" ;;
- --bare) __git_dir="." ;;
- --help) command="help"; break ;;
- -c|--work-tree|--namespace) ((c++)) ;;
- -*) ;;
- *) command="$i"; break ;;
- esac
- ((c++))
- done
-
- if [ -z "$command" ]; then
- case "$cur" in
- --*) __gitcomp "
- --paginate
- --no-pager
- --git-dir=
- --bare
- --version
- --exec-path
- --exec-path=
- --html-path
- --man-path
- --info-path
- --work-tree=
- --namespace=
- --no-replace-objects
- --help
- "
- ;;
- *) __git_compute_porcelain_commands
- __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;;
- esac
- return
- fi
-
- local completion_func="_git_${command//-/_}"
- declare -f $completion_func >/dev/null && $completion_func && return
-
- local expansion=$(__git_aliased_command "$command")
- if [ -n "$expansion" ]; then
- words[1]=$expansion
- completion_func="_git_${expansion//-/_}"
- declare -f $completion_func >/dev/null && $completion_func
- fi
-}
-
-__gitk_main ()
-{
- __git_has_doubledash && return
-
- local g="$(__gitdir)"
- local merge=""
- if [ -f "$g/MERGE_HEAD" ]; then
- merge="--merge"
- fi
- case "$cur" in
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_gitk_options
- $merge
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-if [[ -n ${ZSH_VERSION-} ]]; then
- echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2
-
- autoload -U +X compinit && compinit
-
- __gitcomp ()
- {
- emulate -L zsh
-
- local cur_="${3-$cur}"
-
- case "$cur_" in
- --*=)
- ;;
- *)
- local c IFS=$' \t\n'
- local -a array
- for c in ${=1}; do
- c="$c${4-}"
- case $c in
- --*=*|*.) ;;
- *) c="$c " ;;
- esac
- array[${#array[@]}+1]="$c"
- done
- compset -P '*[=:]'
- compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
- ;;
- esac
- }
-
- __gitcomp_nl ()
- {
- emulate -L zsh
-
- local IFS=$'\n'
- compset -P '*[=:]'
- compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
- }
-
- __gitcomp_file ()
- {
- emulate -L zsh
-
- local IFS=$'\n'
- compset -P '*[=:]'
- compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
- }
-
- _git ()
- {
- local _ret=1 cur cword prev
- cur=${words[CURRENT]}
- prev=${words[CURRENT-1]}
- let cword=CURRENT-1
- emulate ksh -c __${service}_main
- let _ret && _default && _ret=0
- return _ret
- }
-
- compdef _git git gitk
- return
-fi
-
-__git_func_wrap ()
-{
- local cur words cword prev
- _get_comp_words_by_ref -n =: cur words cword prev
- $1
-}
-
-# Setup completion for certain functions defined above by setting common
-# variables and workarounds.
-# This is NOT a public function; use at your own risk.
-__git_complete ()
-{
- local wrapper="__git_wrap${2}"
- eval "$wrapper () { __git_func_wrap $2 ; }"
- complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
- || complete -o default -o nospace -F $wrapper $1
-}
-
-# wrapper for backwards compatibility
-_git ()
-{
- __git_wrap__git_main
-}
-
-# wrapper for backwards compatibility
-_gitk ()
-{
- __git_wrap__gitk_main
-}
-
-__git_complete git __git_main
-__git_complete gitk __gitk_main
-
-# The following are necessary only for Cygwin, and only are needed
-# when the user has tab-completed the executable name and consequently
-# included the '.exe' suffix.
-#
-if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
-__git_complete git.exe __git_main
-fi
diff --git a/m/git/.gitconfig b/m/git/.gitconfig
deleted file mode 100644
index bb7bc97..0000000
--- a/m/git/.gitconfig
+++ /dev/null
@@ -1,5 +0,0 @@
-[user]
- name = Adam Cooper
- email = amcooper@gmail.com
-[core]
- pager = diff-so-fancy | less --tabs=4 -RFX
diff --git a/m/install.sh b/m/install.sh
deleted file mode 100755
index dea99c8..0000000
--- a/m/install.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/bash
-echo "Upgrading packages**"
-sudo aptitude update
-sudo aptitude upgrade --assume-yes
-echo "**Installing packages: vim, tmux, python3, cmake, stow, fonts-powerline, snapd, etc.**"
-sudo aptitude install --assume-yes git curl zsh vim tmux python3 python3-pip build-essential python3-dev python3-setuptools python3-wheel cmake stow fonts-powerline snapd lastpass-cli
-echo "**Installing powerline and tmuxp**"
-pip3 install powerline-status
-pip3 install --user tmuxp
-echo "**Installing plug.vim**"
-curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
-echo "**Installing diff-so-fancy**"
-curl -fsSL -o ~/.local/bin/diff-so-fancy https://raw.githubusercontent.com/so-fancy/diff-so-fancy/master/third_party/build_fatpack/diff-so-fancy
-sudo chmod 755 ~/.local/bin/diff-so-fancy
-echo "**Installing Rust**"
-curl https://sh.rustup.rs -sSf | sh -s -- -v -y
-echo "source $HOME/.cargo/env" >> ./zsh/.zshrc
-echo "**Backing up config files**"
-[[ -f ~/.zshrc ]] && mv -v ~/.zshrc ~/.zshrc.bak
-[[ -f ~/.vimrc ]] && mv -v ~/.vimrc ~/.vimrc.bak
-[[ -f ~/.tmux.conf ]] && mv -v ~/.tmux.conf ~/.tmux.conf.bak
-[[ -f ~/.git-completion ]] && mv -v ~/.git-completion ~/.git-completion.bak
-[[ -f ~/.gitconfig ]] && mv -v ~/.gitconfig ~/.gitconfig.bak
-[[ -f ~/.oysttyerrc ]] && mv -v ~/.oysttyerrc ~/.oysttyerrc.bak
-[[ -f ~/.oysttyerkey ]] && mv -v ~/.oysttyerkey ~/.oysttyerkey.bak
-[[ -f ~/.egrc ]] && mv -v ~/.egrc ~/.egrc.bak
-[[ -f /usr/local/bin/consolidate-path ]] && mv -v /usr/local/bin/consolidate-path /usr/local/bin/consolidate-path.bak
-echo "**Installing new config files**"
-stow -t ~ zsh
-stow -t ~ vim
-stow -t ~ tmux
-stow -t ~ git
-stow -t ~ newsboat
-stow -t ~ eg
-stow -t ~ oysttyer
-stow -t /usr/local/bin bin
-echo "**Installing Heroku CLI**"
-sudo snap install --classic heroku
-echo "**Installing glances**"
-pip3 install glances
-echo "**Installing ddgr**"
-pip3 install ddgr
-echo "**Installing NVM**"
-curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
-echo "**Installing Yarn**"
-curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
-echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
-sudo apt-get update && sudo apt-get install --no-install-recommends yarn
-echo "**Installing Oh My Zsh**"
-git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
-echo "**Installing zsh-nvm**"
-git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm
-echo "**Switching to zsh**"
-chsh -s /bin/zsh
-echo "[TODO] **Download and install bat cb eg exa fd newsboat consolidate-path**"
-echo "**Please restart the system and run ~/dotfiles/post-install.sh**"
-/bin/zsh
-
diff --git a/m/newsboat/.newsboat/config b/m/newsboat/.newsboat/config
deleted file mode 100644
index 72bc8b8..0000000
--- a/m/newsboat/.newsboat/config
+++ /dev/null
@@ -1,10 +0,0 @@
-browser "surf-open.sh %u"
-color background black white
-color listnormal black white
-color listfocus white blue
-color listnormal_unread magenta white
-color listfocus_unread white blue bold
-color info white blue
-color article black white
-max-items 4096
-keep-articles-days 45
diff --git a/m/newsboat/.newsboat/history.search b/m/newsboat/.newsboat/history.search
deleted file mode 100644
index e69de29..0000000
diff --git a/m/newsboat/.newsboat/urls b/m/newsboat/.newsboat/urls
deleted file mode 100644
index 97943f5..0000000
--- a/m/newsboat/.newsboat/urls
+++ /dev/null
@@ -1,37 +0,0 @@
-http://feeds.guardian.co.uk/theguardian/world/rss "nuggets"
-http://www.wsws.org/rss/en.xml "nuggets"
-http://www.democracynow.org/democracynow.rss "nuggets"
-http://news.ycombinator.com/rss "tech"
-https://lobste.rs/rss "tech"
-http://www.languagehat.com/index.rdf "linguistics"
-http://www.opengeodata.org/?feed=rss2 "tech"
-http://feeds.arstechnica.com/arstechnica/index/ "tech"
-http://feeds.feedburner.com/TheCssAwards "tech"
-http://feeds.feedburner.com/CssTricks "tech"
-https://protonvpn.com/blog/feed/ "tech"
-https://cloudblog.withgoogle.com/rss/ "tech"
-https://spreadprivacy.com/feed "tech"
-https://protonmail.ch/blog/feed/ "tech"
-http://www.bleepingcomputer.com/feed/ "tech"
-https://os.phil-opp.com/rss.xml "tech"
-https://mondediplo.com/backend "nuggets"
-http://feeds.feedburner.com/Metafilter "nuggets"
-http://feeds.feedburner.com/InTheseTimes "nuggets"
-http://whowhatwhy.com/feed/ "nuggets"
-http://jacobinmag.com/feed/ "nuggets"
-http://www.thebaffler.com/blog/rss "nuggets"
-http://www.dissentmagazine.org/feed "nuggets"
-https://www.govtrack.us/events/events.rss?feeds=bill%3As116-1489 "nuggets"
-https://harpers.org/feed/ "nuggets"
-http://feeds.propublica.org/propublica/nerds "nuggets"
-http://feeds.propublica.org/propublica/main "nuggets"
-http://www.counterpunch.org/feed/ "nuggets"
-http://thenewinquiry.com/rss "nuggets"
-http://editor.currentaffairs.org/feed/ "nuggets"
-https://www.truthdig.com/feed/ "nuggets"
-http://googletesting.blogspot.com/feeds/posts/default "webdev"
-http://javascriptweekly.com/rss "webdev"
-http://feeds.feedburner.com/Bludice "webdev"
-https://reactjs.org/feed.xml "webdev"
-https://theintercept.com/feed/?lang=en "nuggets"
-https://wallabag.theadamcooper.com/amcooper/iNav2v9Pb8t5ja9/unread.xml "webdev"
diff --git a/m/oysttyer/.oysttyerkey b/m/oysttyer/.oysttyerkey
deleted file mode 100644
index d9874d0..0000000
--- a/m/oysttyer/.oysttyerkey
+++ /dev/null
@@ -1 +0,0 @@
-ck=X&cs=X&at=14814274-sTXAoAlc9gpgjRR451UsnG0ZLRodvDD6rfeOmJGHZ&ats=V8MtTSuNb5HKy1JGFC2q3T3DhdpfGbjdRKCCFeo0zc9Z8
diff --git a/m/oysttyer/.oysttyerrc b/m/oysttyer/.oysttyerrc
deleted file mode 100644
index 151e005..0000000
--- a/m/oysttyer/.oysttyerrc
+++ /dev/null
@@ -1,11 +0,0 @@
-# keyf=/Users/adamcooper/.oysttyerkey
-oauthkey=17N3a4JBR8jJsbBBdwxfAqM5a
-oauthsecret=pIuaI8sDqwMH7eqthVpqTAA1zY37pB3MY4EfrVFHnSLOpElg0T
-ansi=1
-separator= * * * * * * * * * * *
-doublespace=1
-vcheck=1
-urlopen=surf-open.sh %U
-synch=1
-mentions=1
-verify=1
diff --git a/m/post-install.sh b/m/post-install.sh
deleted file mode 100755
index 082f376..0000000
--- a/m/post-install.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-# Post-install script
-echo "**Installing Node and NPM with NVM**"
-echo "source $HOME/.nvm/nvm.sh" >> ./zsh/.zshrc
-stow -t ~ -R zsh
-nvm install lts/dubnium
-nvm use default
-echo "**Installing Typescript**"
-npm install -g typescript
-echo ""
-echo "All that\'s left is the vim plugins. Install them by running:"
-echo " $ vim -c \":PlugInstall\""
-echo "and then compile YouCompleteMe: "
-echo " $ python3 ~/.vim/plugged/YouCompleteMe/install.py --ts-completer --rust-completer"
-echo "and you're off to the races."
-
diff --git a/m/tmux/.tmux.conf b/m/tmux/.tmux.conf
deleted file mode 100644
index 4c559ba..0000000
--- a/m/tmux/.tmux.conf
+++ /dev/null
@@ -1,64 +0,0 @@
-# 256 colors for vim
-set -g default-terminal "screen-256color"
-
-# Set default shell to zsh
-set-option -g default-shell /bin/zsh
-
-# Tmuxline
-if-shell "test -f ~/.tmuxline_theme_snapshot" "source ~/.tmuxline_theme_snapshot"
-
-# Start window numbering at 1
-set-option -g base-index 1
-set-window-option -g pane-base-index 1
-
-# Cycle panes with C-b C-b
-unbind ^B
-bind ^B select-pane -t :.+
-
-# Reload config wtih a key
-bind-key r source-file ~/.tmux.conf \; display "Config reloaded!"
-
-# Mouse works as expected
-set -g mouse on
-# set -g mode-mouse on
-# set -g mouse-select-pane on
-# set -g mouse-resize-pane on
-# set -g mouse-select-window on
-
-# Scrolling works as expected
-set -g terminal-overrides 'xterm*:smcup@:rmcup@'
-
-# Use the system clipboard
-# set-option -g default-command "reattach-to-user-namespace -l zsh"
-
-# Clear the pane and its history
-bind -n C-k send-keys C-l \; clear-history
-
-# Smart pane switching with awareness of vim splits
-# From github.com/christoomey/vim-tmux-navigator
-is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
- | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
-bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
-bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
-bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
-bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
-bind-key -n C-\\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
-bind-key -T copy-mode-vi C-h select-pane -L
-bind-key -T copy-mode-vi C-j select-pane -D
-bind-key -T copy-mode-vi C-k select-pane -U
-bind-key -T copy-mode-vi C-l select-pane -R
-bind-key -T copy-mode-vi C-\\ select-pane -l
-
-# C-l is taken oer by vim style pane navigation (not sure where this comes from or whether I still need it)
-bind C-l send-keys 'C-l'
-
-# Use vim keybindings in copy mode
-setw -g mode-keys vi
-
-# Setup 'v' to begin selection as in Vim
-# bind-key -t vi-copy v begin-selection
-# bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
-
-# Update default binding of `Enter` to also use copy-pipe
-# unbind -t vi-copy Enter
-# bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
diff --git a/m/tmux/.tmuxline_theme_snapshot b/m/tmux/.tmuxline_theme_snapshot
deleted file mode 100644
index fe12959..0000000
--- a/m/tmux/.tmuxline_theme_snapshot
+++ /dev/null
@@ -1,21 +0,0 @@
-# This tmux statusbar config was created by tmuxline.vim
-# on Tue, 14 Jul 2020
-
-set -g status-justify "left"
-set -g status "on"
-set -g status-left-style "none"
-set -g message-command-style "fg=colour52,bg=colour214"
-set -g status-right-style "none"
-set -g pane-active-border-style "fg=colour202"
-set -g status-style "none,bg=colour228"
-set -g message-style "fg=colour52,bg=colour214"
-set -g pane-border-style "fg=colour214"
-set -g status-right-length "100"
-set -g status-left-length "100"
-setw -g window-status-activity-style "none"
-setw -g window-status-separator ""
-setw -g window-status-style "none,fg=colour166,bg=colour228"
-set -g status-left "#[fg=colour255,bg=colour202] #S #[fg=colour202,bg=colour228,nobold,nounderscore,noitalics]"
-set -g status-right "#[fg=colour214,bg=colour228,nobold,nounderscore,noitalics]#[fg=colour52,bg=colour214] %Y-%m-%d %H:%M #[fg=colour202,bg=colour214,nobold,nounderscore,noitalics]#[fg=colour255,bg=colour202] #h "
-setw -g window-status-format "#[fg=colour166,bg=colour228] #I #[fg=colour166,bg=colour228] #W "
-setw -g window-status-current-format "#[fg=colour228,bg=colour214,nobold,nounderscore,noitalics]#[fg=colour52,bg=colour214] #I #[fg=colour52,bg=colour214] #W #[fg=colour214,bg=colour228,nobold,nounderscore,noitalics]"
diff --git a/m/tmux/.tmuxp/acorn.json b/m/tmux/.tmuxp/acorn.json
deleted file mode 100644
index cf0f746..0000000
--- a/m/tmux/.tmuxp/acorn.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "session_name": "acorn",
- "windows": [{
- "window_name": "ide",
- "panes": [
- "vim -R package.json",
- "ls",
- "git status"
- ],
- "layout": "main-horizontal",
- "start_directory": "~/code/acorn-glen"
- }, {
- "window_name": "servers",
- "start_directory": "~/code/acorn-glen",
- "layout": "main-horizontal",
- "panes": [{
- "shell_command": [ "cd ~/code/acorn-glen", "echo 'yarn dev'" ]
- }, {
- "shell_command": [ "sleep 4", "echo 'yarn relay --watch'" ]
- }, {
- "shell_command": [ "sleep 4", "echo 'yarn start'" ]
- }]
- }]
-}
-
diff --git a/m/tmux/.tmuxp/general.json b/m/tmux/.tmuxp/general.json
deleted file mode 100644
index 6301794..0000000
--- a/m/tmux/.tmuxp/general.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "session_name": "general",
- "windows": [{
- "panes": ["/etc/update-motd.d/90-custom"]
- }],
- "start_directory": "~"
-}
-
diff --git a/m/tmux/.tmuxp/morning.json b/m/tmux/.tmuxp/morning.json
deleted file mode 100644
index a64bc82..0000000
--- a/m/tmux/.tmuxp/morning.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "session_name": "morning",
- "windows": [{
- "window_name": "newsboat",
- "panes": ["newsboat"]
- }, {
- "window_name": "ddgr",
- "panes": ["ddgr --colors=ecdgxy Patrice Lumumba"]
- }, {
- "window_name": "oysttyer",
- "panes": ["oysttyer"]
- }, {
- "window_name": "general",
- "panes": ["date"]
- }],
- "start_directory": "~"
-}
-
diff --git a/m/vim/.vimrc b/m/vim/.vimrc
deleted file mode 100644
index 70bf330..0000000
--- a/m/vim/.vimrc
+++ /dev/null
@@ -1,96 +0,0 @@
-" Make backspace behave in a sane manner.
-set backspace=indent,eol,start
-
-" Spaces indentation
-set expandtab
-set tabstop=2
-" set softtabstop=2
-set shiftwidth=2
-" Consider installing the Smart Tabs plugin
-
-" Show whitespace
-set listchars=eol:¬,tab:>-,trail:~,extends:>,precedes:<,space:·
-
-" Show line numbers
-set number
-set relativenumber
-
-" Default: split right
-set splitright
-
-" Allow hidden buffers, don't limit to one file per window/split
-set hidden
-
-" Sane vim split naviagation (via Gaslight blog)
-nnoremap j
-nnoremap k
-nnoremap h
-nnoremap l
-
-" Disable filetype detection
-filetype off
-
-" vim-plug
-if empty(glob('~/.vim/autoload/plug.vim'))
- silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
- \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
-endif
-
-call plug#begin('~/.vim/plugged')
-Plug 'vim-airline/vim-airline'
-Plug 'vim-airline/vim-airline-themes'
-Plug 'edkolev/tmuxline.vim'
-Plug 'christoomey/vim-tmux-navigator'
-Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
-Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
-Plug 'junegunn/fzf.vim'
-Plug 'dense-analysis/ale'
-Plug 'Valloric/YouCompleteMe'
-Plug 'pangloss/vim-javascript'
-Plug 'MaxMEllon/vim-jsx-pretty'
-Plug 'leafgarland/typescript-vim'
-Plug 'HerringtonDarkholme/yats.vim'
-Plug 'Quramy/tsuquyomi'
-Plug 'rust-lang/rust.vim'
-Plug 'severij/vadelma'
-Plug 'tpope/vim-surround'
-call plug#end()
-
-" NERDTree on ctrl+n
-let NERDTreeShowHidden=1
-map :NERDTreeToggle
-
-" close NERDTree after opening a file
-" let g:NERDTreeQuitOnOpen=1
-
-" Tsuquyomi
-autocmd Filetype typescript nmap t : echo tsuquyomi#hint()
-
-" Airline
-let g:airline_powerline_fonts = 1
-let g:airline_theme = 'light'
-
-" Tmuxline
-let g:tmuxline_theme = 'airline_visual'
-
-" YouCompleteMe <> TypeScript
-if !exists("g:ycm_semantic_triggers")
- let g:ycm_semantic_triggers = {}
-endif
-let g:ycm_semantic_triggers['typescript'] = ['.']
-
-" Enable file type detection and do language-dependent indenting
-filetype plugin indent on
-
-" Switch syntax highlighting on
-syntax enable
-
-" Set color scheme
-set background=light
-colorscheme vadelma
-
-" Temporary file locations
-set backupdir=.backup/,~/.backup/,/tmp//
-set directory=.swp/,~/.swp/,/tmp//
-set undodir=.undo/,~/.undo/,/tmp//
diff --git a/m/zsh/.zshrc b/m/zsh/.zshrc
deleted file mode 100644
index 33a5fef..0000000
--- a/m/zsh/.zshrc
+++ /dev/null
@@ -1,161 +0,0 @@
-## Vi keybindings for the shell ##
-bindkey -v
-
-## History navigation by search pattern
-bindkey '^[0A' history-beginning-search-backward
-bindkey '^[0B' history-beginning-search-forward
-
-## bash history timestamps ##
-export HISTTIMEFORMAT="%a %Y-%m-%d %T "
-
-# Path to your oh-my-zsh installation.
-export ZSH=$HOME/.oh-my-zsh
-
-# Set name of the theme to load.
-# Look in ~/.oh-my-zsh/themes/
-# Optionally, if you set this to "random", it'll load a random theme each
-# time that oh-my-zsh is loaded.
-ZSH_THEME=""
-
-# Suppress display of name of default user in prompt
-DEFAULT_USER=$USER
-prompt_context() {}
-
-# Uncomment the following line to use case-sensitive completion.
-# CASE_SENSITIVE="true"
-
-# Uncomment the following line to disable bi-weekly auto-update checks.
-# DISABLE_AUTO_UPDATE="true"
-
-# Uncomment the following line to change how often to auto-update (in days).
-# export UPDATE_ZSH_DAYS=13
-
-# Uncomment the following line to disable colors in ls.
-# DISABLE_LS_COLORS="true"
-
-# Uncomment the following line to disable auto-setting terminal title.
-export DISABLE_AUTO_TITLE="true"
-
-# Uncomment the following line to enable command auto-correction.
-# ENABLE_CORRECTION="true"
-
-# Uncomment the following line to display red dots whilst waiting for completion.
-# COMPLETION_WAITING_DOTS="true"
-
-# Uncomment the following line if you want to disable marking untracked files
-# under VCS as dirty. This makes repository status check for large repositories
-# much, much faster.
-# DISABLE_UNTRACKED_FILES_DIRTY="true"
-
-# Uncomment the following line if you want to change the command execution time
-# stamp shown in the history command output.
-# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
-# HIST_STAMPS="mm/dd/yyyy"
-
-# Would you like to use another custom folder than $ZSH/custom?
-# ZSH_CUSTOM=/path/to/new-custom-folder
-
-# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
-# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
-# Example format: plugins=(rails git textmate ruby lighthouse)
-# Add wisely, as too many plugins slow down shell startup.
-plugins=(git zsh-nvm vi-mode)
-
-source $ZSH/oh-my-zsh.sh
-
-# User configuration
-
-export PATH="$HOME/.cargo/env:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/go/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
-# export PATH="$HOME/.local/bin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/go/bin:$PATH"
-
-## Add Visual Studio Code (code)
-# export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
-
-# export MANPATH="/usr/local/man:$MANPATH"
-
-# You may need to manually set your language environment
-# export LANG=en_US.UTF-8
-
-# Preferred editor for local and remote sessions
-# if [[ -n $SSH_CONNECTION ]]; then
-# export EDITOR='vim'
-# else
-# export EDITOR='mvim'
-# fi
-export VISUAL=vim
-export EDITOR=$VISUAL
-
-export BROWSER=surf-open.sh
-
-# Compilation flags
-# export ARCHFLAGS="-arch x86_64"
-
-# ssh
-# export SSH_KEY_PATH="~/.ssh/dsa_id"
-
-# Set personal aliases, overriding those provided by oh-my-zsh libs,
-# plugins, and themes. Aliases can be placed here, though oh-my-zsh
-# users are encouraged to define aliases within the ZSH_CUSTOM folder.
-# For a full list of active aliases, run `alias`.
-#
-# Example aliases
-# alias zshconfig="mate ~/.zshrc"
-# alias ohmyzsh="mate ~/.oh-my-zsh"
-
-# If not running interactively, don't do anything
-
-[ -z "$PS1" ] && return
-
-# Why are these not exports?
-# enable git unstaged indicators - set to a non-empty value
-GIT_PS1_SHOWDIRTYSTATE="."
-
-# enable showing of untracked files - set to a non-empty value
-GIT_PS1_SHOWUNTRACKEDFILES="."
-
-# enable stash checking - set to a non-empty value
-GIT_PS1_SHOWSTASHSTATE="."
-
-# enable showing of HEAD vs its upstream
-GIT_PS1_SHOWUPSTREAM="auto"
-
-BLACK=$(tput setaf 0)
-RED=$(tput setaf 1)
-GREEN=$(tput setaf 2)
-YELLOW=$(tput setaf 3)
-LIME_YELLOW=$(tput setaf 190)
-POWDER_BLUE=$(tput setaf 153)
-BLUE=$(tput setaf 4)
-MAGENTA=$(tput setaf 5)
-CYAN=$(tput setaf 6)
-WHITE=$(tput setaf 7)
-BRIGHT=$(tput bold)
-NORMAL=$(tput sgr0)
-BLINK=$(tput blink)
-REVERSE=$(tput smso)
-UNDERLINE=$(tput smul)
-
-## NVM ##
-export NVM_DIR="$HOME/.nvm"
-[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
-[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
-
-# Starship
-eval "$(starship init zsh)"
-
-## FZF ##
-[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
-export FZF_DEFAULT_COMMAND="find ." # Includes hidden files
-
-# exa colors
-export LS_COLORS="*.md=37"
-export EXA_COLORS="uu=33;45;1"
-
-# tmuxp completion
-eval "$(_TMUXP_COMPLETE=source_zsh tmuxp)"
-
-source /home/adam/.cargo/env
-source /home/adam/.nvm/nvm.sh
-
-# Consolidate PATH
-export PATH="$(consolidate-path "$PATH")"