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")"