Merge branch 'ohmyzsh:master' into master
This commit is contained in:
commit
dcd33a3fba
46 changed files with 587 additions and 375 deletions
10
.github/workflows/installer.yml
vendored
10
.github/workflows/installer.yml
vendored
|
|
@ -3,9 +3,9 @@ on:
|
|||
workflow_dispatch: {}
|
||||
push:
|
||||
paths:
|
||||
- tools/install.sh
|
||||
- .github/workflows/installer
|
||||
- .github/workflows/installer.yml
|
||||
- 'tools/install.sh'
|
||||
- '.github/workflows/installer/**'
|
||||
- '.github/workflows/installer.yml'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||
|
|
@ -17,6 +17,7 @@ permissions:
|
|||
jobs:
|
||||
test:
|
||||
name: Test installer
|
||||
if: github.repository == 'ohmyzsh/ohmyzsh'
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
@ -48,7 +49,8 @@ jobs:
|
|||
env:
|
||||
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
|
||||
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
|
||||
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
|
||||
run: |
|
||||
cp tools/install.sh .github/workflows/installer/install.sh
|
||||
cd .github/workflows/installer
|
||||
vc deploy --prod -t ${{ secrets.VERCEL_TOKEN }}
|
||||
vc deploy --prod -t "$VERCEL_TOKEN"
|
||||
|
|
|
|||
11
.github/workflows/installer/vercel.json
vendored
11
.github/workflows/installer/vercel.json
vendored
|
|
@ -2,7 +2,16 @@
|
|||
"headers": [
|
||||
{
|
||||
"source": "/((?!favicon.ico).*)",
|
||||
"headers": [{ "key": "Content-Type", "value": "text/plain" }]
|
||||
"headers": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "text/plain"
|
||||
},
|
||||
{
|
||||
"key": "Content-Disposition",
|
||||
"value": "inline; filename=\"install.sh\""
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"rewrites": [
|
||||
|
|
|
|||
13
README.md
13
README.md
|
|
@ -17,7 +17,6 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi
|
|||
[](https://mstdn.social/@ohmyzsh)
|
||||
[](https://discord.gg/ohmyzsh)
|
||||
[](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh)
|
||||
[](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh)
|
||||
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
|
|
@ -89,6 +88,14 @@ Oh My Zsh is installed by running one of the following commands in your terminal
|
|||
| **wget** | `sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` |
|
||||
| **fetch** | `sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` |
|
||||
|
||||
Alternatively, the installer is also mirrored outside GitHub. Using this URL instead may be required if you're in a country like India or China, that blocks `raw.githubusercontent.com`:
|
||||
|
||||
| Method | Command |
|
||||
| :-------- | :------------------------------------------------------------------------------------------------ |
|
||||
| **curl** | `sh -c "$(curl -fsSL https://install.ohmyz.sh/)"` |
|
||||
| **wget** | `sh -c "$(wget -O- https://install.ohmyz.sh/)"` |
|
||||
| **fetch** | `sh -c "$(fetch -o - https://install.ohmyz.sh/)"` |
|
||||
|
||||
_Note that any previous `.zshrc` will be renamed to `.zshrc.pre-oh-my-zsh`. After installation, you can move the configuration you want to preserve into the new `.zshrc`._
|
||||
|
||||
#### Manual Inspection
|
||||
|
|
@ -102,6 +109,8 @@ wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
|
|||
sh install.sh
|
||||
```
|
||||
|
||||
If the above URL times out or otherwise fails, you may have to substitute the URL for `https://install.ohmyz.sh` to be able to get the script.
|
||||
|
||||
## Using Oh My Zsh
|
||||
|
||||
### Plugins
|
||||
|
|
@ -221,6 +230,8 @@ the default shell, and it also won't run `zsh` when the installation has finishe
|
|||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
|
||||
```
|
||||
|
||||
If you're in China, India, or another country that blocks `raw.githubusercontent.com`, you may have to substitute the URL for `https://install.ohmyz.sh` for it to install.
|
||||
|
||||
#### Installing From A Forked Repository
|
||||
|
||||
The install script also accepts these variables to allow installation of a different repository:
|
||||
|
|
|
|||
|
|
@ -17,8 +17,7 @@ In the near future we will introduce versioning, so expect this section to chang
|
|||
|
||||
**Do not submit an issue or pull request**: this might reveal the vulnerability.
|
||||
|
||||
Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh).
|
||||
Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh),
|
||||
or using the link to [privately report a vulnerability with GitHub](https://github.com/ohmyzsh/ohmyzsh/security/advisories/new).
|
||||
|
||||
We will deal with the vulnerability privately and submit a patch as soon as possible.
|
||||
|
||||
You can also submit your vulnerability report to [huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) and see if you can get a bounty reward.
|
||||
|
|
|
|||
|
|
@ -182,6 +182,8 @@ function omz_urlencode() {
|
|||
fi
|
||||
|
||||
# Use LC_CTYPE=C to process text byte-by-byte
|
||||
# Note that this doesn't work in Termux, as it only has UTF-8 locale.
|
||||
# Characters will be processed as UTF-8, which is fine for URLs.
|
||||
local i byte ord LC_ALL=C
|
||||
export LC_ALL
|
||||
local reserved=';/?:@&=+$,'
|
||||
|
|
@ -206,6 +208,9 @@ function omz_urlencode() {
|
|||
else
|
||||
if [[ "$byte" == " " && -n $spaces_as_plus ]]; then
|
||||
url_str+="+"
|
||||
elif [[ "$PREFIX" = *com.termux* ]]; then
|
||||
# Termux does not have non-UTF8 locales, so just send the UTF-8 character directly
|
||||
url_str+="$byte"
|
||||
else
|
||||
ord=$(( [##16] #byte ))
|
||||
url_str+="%$ord"
|
||||
|
|
|
|||
|
|
@ -19,8 +19,13 @@ setopt multios # enable redirect to multiple streams: echo >file1 >
|
|||
setopt long_list_jobs # show long list format job notifications
|
||||
setopt interactivecomments # recognize comments
|
||||
|
||||
env_default 'PAGER' 'less'
|
||||
env_default 'LESS' '-R'
|
||||
# define pager dependant on what is available (less or more)
|
||||
if (( ${+commands[less]} )); then
|
||||
env_default 'PAGER' 'less'
|
||||
env_default 'LESS' '-R'
|
||||
elif (( ${+commands[more]} )); then
|
||||
env_default 'PAGER' 'more'
|
||||
fi
|
||||
|
||||
## super user alias
|
||||
alias _='sudo '
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ function omz_termsupport_cwd {
|
|||
URL_PATH="$(omz_urlencode -P $PWD)" || return 1
|
||||
|
||||
# Konsole errors if the HOST is provided
|
||||
[[ -z "$KONSOLE_VERSION" ]] || URL_HOST=""
|
||||
[[ -z "$KONSOLE_PROFILE_NAME" && -z "$KONSOLE_DBUS_SESSION" ]] || URL_HOST=""
|
||||
|
||||
# common control sequence (OSC 7) to set current host and path
|
||||
printf "\e]7;file://%s%s\e\\" "${URL_HOST}" "${URL_PATH}"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#compdef bazel
|
||||
#compdef bazel bazelisk
|
||||
|
||||
# Copyright 2015 The Bazel Authors. All rights reserved.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# bgnotify zsh plugin
|
||||
|
||||
cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux.
|
||||
cross-platform background notifications for long running commands! Supports OSX and Linux.
|
||||
|
||||
Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify)
|
||||
|
||||
----------------------------------
|
||||
---
|
||||
|
||||
## How to use!
|
||||
## How to use
|
||||
|
||||
Just add bgnotify to your plugins list in your `.zshrc`
|
||||
|
||||
- On OS X you'll need [terminal-notifier](https://github.com/alloy/terminal-notifier)
|
||||
* `brew install terminal-notifier` (or `gem install terminal-notifier`)
|
||||
- On ubuntu you're already all set!
|
||||
- On windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package
|
||||
- On Linux, make sure you have `notify-send` or `kdialog` installed. If you're using Ubuntu you should already be all set!
|
||||
- On Windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package
|
||||
|
||||
|
||||
## Screenshots
|
||||
|
|
@ -35,20 +35,29 @@ Just add bgnotify to your plugins list in your `.zshrc`
|
|||
|
||||
One can configure a few things:
|
||||
|
||||
- `bgnotify_bell` enabled or disables the terminal bell (default true)
|
||||
- `bgnotify_threshold` sets the notification threshold time (default 6 seconds)
|
||||
- `function bgnotify_formatted` lets you change the notification
|
||||
- `function bgnotify_formatted` lets you change the notification. You can for instance customize the message and pass in an icon.
|
||||
|
||||
Use these by adding a function definition before the your call to source. Example:
|
||||
|
||||
~~~ sh
|
||||
```sh
|
||||
bgnotify_bell=false ## disable terminal bell
|
||||
bgnotify_threshold=4 ## set your own notification threshold
|
||||
|
||||
function bgnotify_formatted {
|
||||
## $1=exit_status, $2=command, $3=elapsed_time
|
||||
[ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!"
|
||||
bgnotify "$title -- after $3 s" "$2";
|
||||
|
||||
# Humanly readable elapsed time
|
||||
local elapsed="$(( $3 % 60 ))s"
|
||||
(( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed"
|
||||
(( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed"
|
||||
|
||||
[ $1 -eq 0 ] && title="Holy Smokes Batman" || title="Holy Graf Zeppelin"
|
||||
[ $1 -eq 0 ] && icon="$HOME/icons/success.png" || icon="$HOME/icons/fail.png"
|
||||
bgnotify "$title - took ${elapsed}" "$2" "$icon"
|
||||
}
|
||||
|
||||
plugins=(git bgnotify) ## add to plugins list
|
||||
source $ZSH/oh-my-zsh.sh ## existing source call
|
||||
~~~
|
||||
```
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ function bgnotify_end {
|
|||
# check if Terminal app is not active
|
||||
[[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return
|
||||
|
||||
printf '\a' # beep sound
|
||||
[[ $bgnotify_bell = true ]] && printf '\a' # beep sound
|
||||
bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed"
|
||||
} always {
|
||||
bgnotify_timestamp=0
|
||||
|
|
@ -52,53 +52,93 @@ function bgnotify_formatted {
|
|||
(( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed"
|
||||
(( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed"
|
||||
|
||||
if [[ $1 -eq 0 ]]; then
|
||||
bgnotify "#win (took $elapsed)" "$2"
|
||||
if [[ $exit_status -eq 0 ]]; then
|
||||
bgnotify "#win (took $elapsed)" "$cmd"
|
||||
else
|
||||
bgnotify "#fail (took $elapsed)" "$2"
|
||||
bgnotify "#fail (took $elapsed)" "$cmd"
|
||||
fi
|
||||
}
|
||||
|
||||
# for macOS, output is "app ID, window ID" (com.googlecode.iterm2, 116)
|
||||
function bgnotify_appid {
|
||||
if (( ${+commands[osascript]} )); then
|
||||
# output is "app ID, window ID" (com.googlecode.iterm2, 116)
|
||||
osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null
|
||||
elif (( ${+commands[xprop]} )); then
|
||||
elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )); then # wayland+sway
|
||||
local app_id=$(find_sway_appid)
|
||||
[[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS
|
||||
elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then
|
||||
xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5
|
||||
else
|
||||
echo $EPOCHSECONDS
|
||||
fi
|
||||
}
|
||||
|
||||
function bgnotify {
|
||||
# $1: title, $2: message
|
||||
if (( ${+commands[terminal-notifier]} )); then # macOS
|
||||
local term_id="${bgnotify_termid%%,*}" # remove window id
|
||||
if [[ -z "$term_id" ]]; then
|
||||
case "$TERM_PROGRAM" in
|
||||
|
||||
function find_sway_appid {
|
||||
# output is "app_id,container_id", for example "Alacritty,1694"
|
||||
# see example swaymsg output: https://github.com/ohmyzsh/ohmyzsh/files/13463939/output.json
|
||||
if (( ${+commands[jq]} )); then
|
||||
swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(",")'
|
||||
else
|
||||
swaymsg -t get_tree | awk '
|
||||
BEGIN { Id = ""; Appid = ""; FocusNesting = -1; Nesting = 0 }
|
||||
{
|
||||
# Enter a block
|
||||
if ($0 ~ /.*{$/) Nesting++
|
||||
|
||||
# Exit a block. If Nesting is now less than FocusNesting, we have the data we are looking for
|
||||
if ($0 ~ /^[[:blank:]]*}.*/) { Nesting--; if (FocusNesting > 0 && Nesting < FocusNesting) exit 0 }
|
||||
|
||||
# Save the Id, it is potentially what we are looking for
|
||||
if ($0 ~ /^[[:blank:]]*"id": [0-9]*,?$/) { sub(/^[[:blank:]]*"id": /, ""); sub(/,$/, ""); Id = $0 }
|
||||
|
||||
# Save the Appid, it is potentially what we are looking for
|
||||
if ($0 ~ /^[[:blank:]]*"app_id": ".*",?$/) { sub(/^[[:blank:]]*"app_id": "/, ""); sub(/",$/, ""); Appid = $0 }
|
||||
|
||||
# Window is focused, this nesting block contains the Id and Appid we want!
|
||||
if ($0 ~ /^[[:blank:]]*"focused": true,?$/) { FocusNesting = Nesting }
|
||||
}
|
||||
END {
|
||||
if (Appid != "" && Id != "" && FocusNesting != -1) print Appid "," Id
|
||||
else print ""
|
||||
}'
|
||||
fi
|
||||
}
|
||||
|
||||
function find_term_id {
|
||||
local term_id="${bgnotify_termid%%,*}" # remove window id
|
||||
if [[ -z "$term_id" ]]; then
|
||||
case "$TERM_PROGRAM" in
|
||||
iTerm.app) term_id='com.googlecode.iterm2' ;;
|
||||
Apple_Terminal) term_id='com.apple.terminal' ;;
|
||||
esac
|
||||
fi
|
||||
esac
|
||||
fi
|
||||
echo "$term_id"
|
||||
}
|
||||
|
||||
if [[ -z "$term_id" ]]; then
|
||||
terminal-notifier -message "$2" -title "$1" &>/dev/null
|
||||
else
|
||||
terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" &>/dev/null
|
||||
fi
|
||||
function bgnotify {
|
||||
local title="$1"
|
||||
local message="$2"
|
||||
local icon="$3"
|
||||
if (( ${+commands[terminal-notifier]} )); then # macOS
|
||||
local term_id=$(find_term_id)
|
||||
terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null
|
||||
elif (( ${+commands[growlnotify]} )); then # macOS growl
|
||||
growlnotify -m "$1" "$2"
|
||||
elif (( ${+commands[notify-send]} )); then # GNOME
|
||||
notify-send "$1" "$2"
|
||||
growlnotify -m "$title" "$message"
|
||||
elif (( ${+commands[notify-send]} )); then
|
||||
notify-send "$title" "$message" ${=icon:+--icon "$icon"}
|
||||
elif (( ${+commands[kdialog]} )); then # KDE
|
||||
kdialog --title "$1" --passivepopup "$2" 5
|
||||
kdialog --title "$title" --passivepopup "$message" 5
|
||||
elif (( ${+commands[notifu]} )); then # cygwin
|
||||
notifu /m "$2" /p "$1"
|
||||
notifu /m "$message" /p "$title" ${=icon:+/i "$icon"}
|
||||
fi
|
||||
}
|
||||
|
||||
## Defaults
|
||||
|
||||
# enable terminal bell on notify by default
|
||||
bgnotify_bell=${bgnotify_bell:-true}
|
||||
|
||||
# notify if command took longer than 5s by default
|
||||
bgnotify_threshold=${bgnotify_threshold:-5}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@
|
|||
for file (
|
||||
# Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found
|
||||
/usr/share/doc/pkgfile/command-not-found.zsh
|
||||
# macOS (M1 and classic Homebrew): https://github.com/Homebrew/homebrew-command-not-found
|
||||
# Homebrew: https://github.com/Homebrew/homebrew-command-not-found
|
||||
/opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
|
||||
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
|
||||
/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
|
||||
); do
|
||||
if [[ -r "$file" ]]; then
|
||||
source "$file"
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ _direnv_hook() {
|
|||
trap - SIGINT;
|
||||
}
|
||||
typeset -ag precmd_functions;
|
||||
if [[ -z ${precmd_functions[(r)_direnv_hook]} ]]; then
|
||||
if [[ -z "${precmd_functions[(r)_direnv_hook]+1}" ]]; then
|
||||
precmd_functions=( _direnv_hook ${precmd_functions[@]} )
|
||||
fi
|
||||
typeset -ag chpwd_functions;
|
||||
if [[ -z ${chpwd_functions[(r)_direnv_hook]} ]]; then
|
||||
if [[ -z "${chpwd_functions[(r)_direnv_hook]+1}" ]]; then
|
||||
chpwd_functions=( _direnv_hook ${chpwd_functions[@]} )
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -11,23 +11,24 @@ plugins=(... docker-compose)
|
|||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command | Description |
|
||||
|-----------|--------------------------------|----------------------------------------------------------------------------------|
|
||||
| dco | `docker-compose` | Docker-compose main command |
|
||||
| dcb | `docker-compose build` | Build containers |
|
||||
| dce | `docker-compose exec` | Execute command inside a container |
|
||||
| dcps | `docker-compose ps` | List containers |
|
||||
| dcrestart | `docker-compose restart` | Restart container |
|
||||
| dcrm | `docker-compose rm` | Remove container |
|
||||
| dcr | `docker-compose run` | Run a command in container |
|
||||
| dcstop | `docker-compose stop` | Stop a container |
|
||||
| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service |
|
||||
| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers |
|
||||
| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon |
|
||||
| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon |
|
||||
| dcdn | `docker-compose down` | Stop and remove containers |
|
||||
| dcl | `docker-compose logs` | Show logs of container |
|
||||
| dclf | `docker-compose logs -f` | Show logs and follow output |
|
||||
| dcpull | `docker-compose pull` | Pull image of a service |
|
||||
| dcstart | `docker-compose start` | Start a container |
|
||||
| dck | `docker-compose kill` | Kills containers |
|
||||
| Alias | Command | Description |
|
||||
|-----------|----------------------------------|----------------------------------------------------------------------------------|
|
||||
| dco | `docker-compose` | Docker-compose main command |
|
||||
| dcb | `docker-compose build` | Build containers |
|
||||
| dce | `docker-compose exec` | Execute command inside a container |
|
||||
| dcps | `docker-compose ps` | List containers |
|
||||
| dcrestart | `docker-compose restart` | Restart container |
|
||||
| dcrm | `docker-compose rm` | Remove container |
|
||||
| dcr | `docker-compose run` | Run a command in container |
|
||||
| dcstop | `docker-compose stop` | Stop a container |
|
||||
| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service |
|
||||
| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers |
|
||||
| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon |
|
||||
| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon |
|
||||
| dcdn | `docker-compose down` | Stop and remove containers |
|
||||
| dcl | `docker-compose logs` | Show logs of container |
|
||||
| dclf | `docker-compose logs -f` | Show logs and follow output |
|
||||
| dclF | `docker-compose logs -f --tail0` | Just follow recent logs |
|
||||
| dcpull | `docker-compose pull` | Pull image of a service |
|
||||
| dcstart | `docker-compose start` | Start a container |
|
||||
| dck | `docker-compose kill` | Kills containers |
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ alias dcupdb="$dccmd up -d --build"
|
|||
alias dcdn="$dccmd down"
|
||||
alias dcl="$dccmd logs"
|
||||
alias dclf="$dccmd logs -f"
|
||||
alias dclF="$dccmd logs -f --tail 0"
|
||||
alias dcpull="$dccmd pull"
|
||||
alias dcstart="$dccmd start"
|
||||
alias dck="$dccmd kill"
|
||||
|
|
|
|||
|
|
@ -1,22 +1,14 @@
|
|||
# This scripts is copied from (MIT License):
|
||||
# https://github.com/dotnet/toolset/blob/master/scripts/register-completions.zsh
|
||||
# https://raw.githubusercontent.com/dotnet/sdk/main/scripts/register-completions.zsh
|
||||
|
||||
_dotnet_zsh_complete()
|
||||
{
|
||||
local completions=("$(dotnet complete "$words")")
|
||||
|
||||
# If the completion list is empty, just continue with filename selection
|
||||
if [ -z "$completions" ]
|
||||
then
|
||||
_arguments '*::arguments: _normal'
|
||||
return
|
||||
fi
|
||||
|
||||
# This is not a variable assignment, don't remove spaces!
|
||||
_values = "${(ps:\n:)completions}"
|
||||
#compdef dotnet
|
||||
_dotnet_completion() {
|
||||
local -a completions=("${(@f)$(dotnet complete "${words}")}")
|
||||
compadd -a completions
|
||||
_files
|
||||
}
|
||||
|
||||
compdef _dotnet_zsh_complete dotnet
|
||||
compdef _dotnet_completion dotnet
|
||||
|
||||
# Aliases bellow are here for backwards compatibility
|
||||
# added by Shaun Tabone (https://github.com/xontab)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ function fwl () {
|
|||
zones=("${(@f)$(sudo firewall-cmd --get-active-zones | grep -v 'interfaces\|sources')}")
|
||||
|
||||
for i in $zones; do
|
||||
sudo firewall-cmd --zone $i --list-all
|
||||
sudo firewall-cmd --zone ${i/ \(default\)} --list-all
|
||||
done
|
||||
|
||||
echo 'Direct Rules:'
|
||||
|
|
|
|||
|
|
@ -60,12 +60,22 @@ Available search contexts are:
|
|||
| typescript | `https://google.com/search?as_sitesearch=www.typescriptlang.org/docs&as_q=` |
|
||||
| unheap | `http://www.unheap.com/?s=` |
|
||||
| vuejs | `https://www.google.com/search?as_sitesearch=vuejs.org&as_q=` |
|
||||
| nextjs | `https://www.google.com/search?as_sitesearch=nextjs.org&as_q=` |
|
||||
|
||||
If you want to have another context, open an Issue and tell us!
|
||||
|
||||
## Fallback search behaviour
|
||||
|
||||
The plugin will use Google as a fallback if the docs site for a search context does not have a search function. You can set the fallback search engine to DuckDuckGo by setting `FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced.
|
||||
The plugin will use Google as a fallback if the docs site for a search context does not have a search
|
||||
function. You can set the fallback search engine to DuckDuckGo by setting
|
||||
`FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced.
|
||||
|
||||
## DuckDuckGo Lucky Search
|
||||
|
||||
Enable DuckDuckGo's "ducky" (lucky) search feature to automatically access the top search result. This feature
|
||||
is optimized for DuckDuckGo, as Google redirects to an intermediate page. The FRONTEND_SEARCH_FALLBACK_LUCKY
|
||||
environment variable triggers the use of DuckDuckGo's lucky search, rendering the FRONTEND_SEARCH_FALLBACK
|
||||
setting unnecessary in this context.
|
||||
|
||||
## Author
|
||||
|
||||
|
|
|
|||
|
|
@ -27,12 +27,19 @@ alias stackoverflow='frontend stackoverflow'
|
|||
alias typescript='frontend typescript'
|
||||
alias unheap='frontend unheap'
|
||||
alias vuejs='frontend vuejs'
|
||||
alias nextjs='frontend nextjs'
|
||||
|
||||
function _frontend_fallback() {
|
||||
case "$FRONTEND_SEARCH_FALLBACK" in
|
||||
duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;;
|
||||
*) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;;
|
||||
esac
|
||||
if [[ "$FRONTEND_SEARCH_FALLBACK_LUCKY" == "true" ]]; then
|
||||
case true in
|
||||
*) echo "https://duckduckgo.com/?q=!ducky+site%3A$1+" ;;
|
||||
esac
|
||||
else
|
||||
case "$FRONTEND_SEARCH_FALLBACK" in
|
||||
duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;;
|
||||
*) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
function frontend() {
|
||||
|
|
@ -70,6 +77,7 @@ function frontend() {
|
|||
typescript $(_frontend_fallback 'www.typescriptlang.org/docs')
|
||||
unheap 'http://www.unheap.com/?s='
|
||||
vuejs $(_frontend_fallback 'vuejs.org')
|
||||
nextjs $(_frontend_fallback 'nextjs.org')
|
||||
)
|
||||
|
||||
# show help for command list
|
||||
|
|
@ -81,7 +89,7 @@ function frontend() {
|
|||
print -P ""
|
||||
print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia"
|
||||
print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash,"
|
||||
print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia"
|
||||
print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs"
|
||||
print -P ""
|
||||
print -P "For example: frontend npmjs mocha (or just: npmjs mocha)."
|
||||
print -P ""
|
||||
|
|
@ -96,7 +104,7 @@ function frontend() {
|
|||
echo ""
|
||||
echo " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia"
|
||||
echo " dartlang, emberjs, fontello, github, html5please, jest, jquery, lodash,"
|
||||
echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia"
|
||||
echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs"
|
||||
echo ""
|
||||
return 1
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ function git-fetch-all {
|
|||
date -R &>! "$gitdir/FETCH_LOG"
|
||||
GIT_SSH_COMMAND="command ssh -o BatchMode=yes" \
|
||||
GIT_TERMINAL_PROMPT=0 \
|
||||
command git fetch --all 2>/dev/null &>> "$gitdir/FETCH_LOG"
|
||||
command git fetch --all --recurse-submodules=yes 2>/dev/null &>> "$gitdir/FETCH_LOG"
|
||||
) &|
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ plugins=(... git-commit)
|
|||
|
||||
## Syntax
|
||||
|
||||
```zshrc
|
||||
```zsh
|
||||
git <type> [(-s, --scope) "<scope>"] "<message>"
|
||||
```
|
||||
|
||||
|
|
@ -26,11 +26,17 @@ Where `type` is one of the following:
|
|||
- `fix`
|
||||
- `perf`
|
||||
- `refactor`
|
||||
- `revert`
|
||||
- `rev`
|
||||
- `style`
|
||||
- `test`
|
||||
|
||||
> NOTE: the alias for `revert` type is `rev`, as otherwise it conflicts with the git command of the same name.
|
||||
> It will still generate a commit message in the format `revert: <message>`
|
||||
|
||||
## Examples
|
||||
|
||||
`git style "remove trailing whitespace"` -> `git commit -m "style: remove trailing whitespace"`
|
||||
`git fix -s "router" "correct redirect link"` -> `git commit -m "fix(router): correct redirect link"`
|
||||
| Git alias | Command |
|
||||
| --------------------------------------------- | ---------------------------------------------------- |
|
||||
| `git style "remove trailing whitespace"` | `git commit -m "style: remove trailing whitespace"` |
|
||||
| `git fix -s "router" "correct redirect link"` | `git commit -m "fix(router): correct redirect link"` |
|
||||
| `git rev -s "api" "rollback v2"` | `git commit -m "revert(api): rollback v2"` |
|
||||
|
|
|
|||
|
|
@ -1,9 +1,3 @@
|
|||
function _git_commit_register {
|
||||
if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then
|
||||
git config --global alias.$1 '!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$1'(${scope}): ${@}"; else git commit -m "'$1': ${@}"; fi }; a'
|
||||
fi
|
||||
}
|
||||
|
||||
local -a _git_commit_aliases
|
||||
_git_commit_aliases=(
|
||||
'build'
|
||||
|
|
@ -19,9 +13,19 @@ _git_commit_aliases=(
|
|||
'test'
|
||||
)
|
||||
|
||||
for _alias in "${_git_commit_aliases[@]}"; do
|
||||
_git_commit_register $_alias
|
||||
local alias type
|
||||
for type in "${_git_commit_aliases[@]}"; do
|
||||
# an alias can't be named "revert" because the git command takes precedence
|
||||
# https://stackoverflow.com/a/3538791
|
||||
case "$type" in
|
||||
revert) alias=rev ;;
|
||||
*) alias=$type ;;
|
||||
esac
|
||||
|
||||
local func='!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$type'(${scope}): ${@}"; else git commit -m "'$type': ${@}"; fi }; a'
|
||||
if ! git config --global --get-all alias.${alias} >/dev/null 2>&1; then
|
||||
git config --global alias.${alias} "$func"
|
||||
fi
|
||||
done
|
||||
|
||||
unfunction _git_commit_register
|
||||
unset _alias
|
||||
unset _git_commit_aliases alias type func
|
||||
|
|
|
|||
|
|
@ -10,207 +10,205 @@ plugins=(... git)
|
|||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command |
|
||||
| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` |
|
||||
| `ggpnp` | `ggl && ggp` |
|
||||
| `ggpur` | `ggu` |
|
||||
| `g` | `git` |
|
||||
| `ga` | `git add` |
|
||||
| `gaa` | `git add --all` |
|
||||
| `gapa` | `git add --patch` |
|
||||
| `gau` | `git add --update` |
|
||||
| `gav` | `git add --verbose` |
|
||||
| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` |
|
||||
| `gam` | `git am` |
|
||||
| `gama` | `git am --abort` |
|
||||
| `gamc` | `git am --continue` |
|
||||
| `gamscp` | `git am --show-current-patch` |
|
||||
| `gams` | `git am --skip` |
|
||||
| `gap` | `git apply` |
|
||||
| `gapt` | `git apply --3way` |
|
||||
| `gbs` | `git bisect` |
|
||||
| `gbsb` | `git bisect bad` |
|
||||
| `gbsg` | `git bisect good` |
|
||||
| `gbsn` | `git bisect new` |
|
||||
| `gbso` | `git bisect old` |
|
||||
| `gbsr` | `git bisect reset` |
|
||||
| `gbss` | `git bisect start` |
|
||||
| `gbl` | `git blame -w` |
|
||||
| `gb` | `git branch` |
|
||||
| `gba` | `git branch --all` |
|
||||
| `gbd` | `git branch --delete` |
|
||||
| `gbD` | `git branch --delete --force` |
|
||||
| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` |
|
||||
| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` |
|
||||
| `gbm` | `git branch --move` |
|
||||
| `gbnm` | `git branch --no-merged` |
|
||||
| `gbr` | `git branch --remote` |
|
||||
| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` |
|
||||
| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` |
|
||||
| `gco` | `git checkout` |
|
||||
| `gcor` | `git checkout --recurse-submodules` |
|
||||
| `gcb` | `git checkout -b` |
|
||||
| `gcd` | `git checkout $(git_develop_branch)` |
|
||||
| `gcm` | `git checkout $(git_main_branch)` |
|
||||
| `gcp` | `git cherry-pick` |
|
||||
| `gcpa` | `git cherry-pick --abort` |
|
||||
| `gcpc` | `git cherry-pick --continue` |
|
||||
| `gclean` | `git clean --interactive -d` |
|
||||
| `gcl` | `git clone --recurse-submodules` |
|
||||
| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` |
|
||||
| `gcam` | `git commit --all --message` |
|
||||
| `gcas` | `git commit --all --signoff` |
|
||||
| `gcasm` | `git commit --all --signoff --message` |
|
||||
| `gcmsg` | `git commit --message` |
|
||||
| `gcsm` | `git commit --signoff --message` |
|
||||
| `gc` | `git commit --verbose` |
|
||||
| `gca` | `git commit --verbose --all` |
|
||||
| `gca!` | `git commit --verbose --all --amend` |
|
||||
| `gcan!` | `git commit --verbose --all --no-edit --amend` |
|
||||
| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` |
|
||||
| `gc!` | `git commit --verbose --amend` |
|
||||
| `gcn!` | `git commit --verbose --no-edit --amend` |
|
||||
| `gcs` | `git commit -S` |
|
||||
| `gcss` | `git commit -S -s` |
|
||||
| `gcssm` | `git commit -S -s -m` |
|
||||
| `gcf` | `git config --list` |
|
||||
| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` |
|
||||
| `gd` | `git diff` |
|
||||
| `gdca` | `git diff --cached` |
|
||||
| `gdcw` | `git diff --cached --word-diff` |
|
||||
| `gds` | `git diff --staged` |
|
||||
| `gdw` | `git diff --word-diff` |
|
||||
| `gdv` | `git diff -w "$@" \| view -` |
|
||||
| `gdup` | `git diff @{upstream}` |
|
||||
| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` |
|
||||
| `gdt` | `git diff-tree --no-commit-id --name-only -r` |
|
||||
| `gf` | `git fetch` |
|
||||
| `gfa` | `git fetch --all --prune` |
|
||||
| `gfo` | `git fetch origin` |
|
||||
| `gg` | `git gui citool` |
|
||||
| `gga` | `git gui citool --amend` |
|
||||
| `ghh` | `git help` |
|
||||
| `glgg` | `git log --graph` |
|
||||
| `glgga` | `git log --graph --decorate --all` |
|
||||
| `glgm` | `git log --graph --max-count=10` |
|
||||
| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` |
|
||||
| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` |
|
||||
| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` |
|
||||
| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` |
|
||||
| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` |
|
||||
| `glo` | `git log --oneline --decorate` |
|
||||
| `glog` | `git log --oneline --decorate --graph` |
|
||||
| `gloga` | `git log --oneline --decorate --graph --all` |
|
||||
| `glp` | `git log --pretty=<format>` |
|
||||
| `glg` | `git log --stat` |
|
||||
| `glgp` | `git log --stat --patch` |
|
||||
| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` |
|
||||
| `gfg` | `git ls-files \| grep` |
|
||||
| `gm` | `git merge` |
|
||||
| `gma` | `git merge --abort` |
|
||||
| `gms` | `git merge --squash` |
|
||||
| `gmom` | `git merge origin/$(git_main_branch)` |
|
||||
| `gmum` | `git merge upstream/$(git_main_branch)` |
|
||||
| `gmtl` | `git mergetool --no-prompt` |
|
||||
| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` |
|
||||
| `gl` | `git pull` |
|
||||
| `gpr` | `git pull --rebase` |
|
||||
| `gup` | `git pull --rebase` |
|
||||
| `gupa` | `git pull --rebase --autostash` |
|
||||
| `gupav` | `git pull --rebase --autostash --verbose` |
|
||||
| `gupv` | `git pull --rebase --verbose` |
|
||||
| `ggu` | `git pull --rebase origin $(current_branch)` |
|
||||
| `gupom` | `git pull --rebase origin $(git_main_branch)` |
|
||||
| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` |
|
||||
| `ggpull` | `git pull origin "$(git_current_branch)"` |
|
||||
| `ggl` | `git pull origin $(current_branch)` |
|
||||
| `gluc` | `git pull upstream $(git_current_branch)` |
|
||||
| `glum` | `git pull upstream $(git_main_branch)` |
|
||||
| `gp` | `git push` |
|
||||
| `gpd` | `git push --dry-run` |
|
||||
| `gpf!` | `git push --force` |
|
||||
| `ggf` | `git push --force origin $(current_branch)` |
|
||||
| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` |
|
||||
| `gpf` | On Git < 2.30: `git push --force-with-lease` |
|
||||
| `ggfl` | `git push --force-with-lease origin $(current_branch)` |
|
||||
| `gpsup` | `git push --set-upstream origin $(git_current_branch)` |
|
||||
| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` |
|
||||
| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` |
|
||||
| `gpv` | `git push --verbose` |
|
||||
| `gpoat` | `git push origin --all && git push origin --tags` |
|
||||
| `gpod` | `git push origin --delete` |
|
||||
| `ggpush` | `git push origin "$(git_current_branch)"` |
|
||||
| `ggp` | `git push origin $(current_branch)` |
|
||||
| `gpu` | `git push upstream` |
|
||||
| `grb` | `git rebase` |
|
||||
| `grba` | `git rebase --abort` |
|
||||
| `grbc` | `git rebase --continue` |
|
||||
| `grbi` | `git rebase --interactive` |
|
||||
| `grbo` | `git rebase --onto` |
|
||||
| `grbs` | `git rebase --skip` |
|
||||
| `grbd` | `git rebase $(git_develop_branch)` |
|
||||
| `grbm` | `git rebase $(git_main_branch)` |
|
||||
| `grbom` | `git rebase origin/$(git_main_branch)` |
|
||||
| `gr` | `git remote` |
|
||||
| `grv` | `git remote --verbose` |
|
||||
| `gra` | `git remote add` |
|
||||
| `grrm` | `git remote remove` |
|
||||
| `grmv` | `git remote rename` |
|
||||
| `grset` | `git remote set-url` |
|
||||
| `grup` | `git remote update` |
|
||||
| `grh` | `git reset` |
|
||||
| `gru` | `git reset --` |
|
||||
| `grhh` | `git reset --hard` |
|
||||
| `grhk` | `git reset --keep` |
|
||||
| `grhs` | `git reset --soft` |
|
||||
| `gpristine` | `git reset --hard && git clean -dffx` |
|
||||
| `groh` | `git reset origin/$(git_current_branch) --hard` |
|
||||
| `grs` | `git restore` |
|
||||
| `grss` | `git restore --source` |
|
||||
| `grst` | `git restore --staged` |
|
||||
| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` |
|
||||
| `grev` | `git revert` |
|
||||
| `grm` | `git rm` |
|
||||
| `grmc` | `git rm --cached` |
|
||||
| `gcount` | `git shortlog --summary -n` |
|
||||
| `gsh` | `git show` |
|
||||
| `gsps` | `git show --pretty=short --show-signature` |
|
||||
| `gstall` | `git stash --all` |
|
||||
| `gstu` | `git stash --include-untracked` |
|
||||
| `gstaa` | `git stash apply` |
|
||||
| `gstc` | `git stash clear` |
|
||||
| `gstd` | `git stash drop` |
|
||||
| `gstl` | `git stash list` |
|
||||
| `gstp` | `git stash pop` |
|
||||
| `gsta` | On Git >= 2.13: `git stash push` |
|
||||
| `gsta` | On Git < 2.13: `git stash save` |
|
||||
| `gsts` | `git stash show --patch` |
|
||||
| `gst` | `git status` |
|
||||
| `gss` | `git status --short` |
|
||||
| `gsb` | `git status --short -b` |
|
||||
| `gsi` | `git submodule init` |
|
||||
| `gsu` | `git submodule update` |
|
||||
| `gsd` | `git svn dcommit` |
|
||||
| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` |
|
||||
| `gsr` | `git svn rebase` |
|
||||
| `gsw` | `git switch` |
|
||||
| `gswc` | `git switch -c` |
|
||||
| `gswd` | `git switch $(git_develop_branch)` |
|
||||
| `gswm` | `git switch $(git_main_branch)` |
|
||||
| `gta` | `git tag --annotate` |
|
||||
| `gts` | `git tag -s` |
|
||||
| `gtv` | `git tag \| sort -V` |
|
||||
| `gignore` | `git update-index --assume-unchanged` |
|
||||
| `gunignore` | `git update-index --no-assume-unchanged` |
|
||||
| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` |
|
||||
| `gwt` | `git worktree` |
|
||||
| `gwtls` | `git worktree list` |
|
||||
| `gwtmv` | `git worktree move` |
|
||||
| `gwtrm` | `git worktree remove` |
|
||||
| `gk` | `gitk --all --branches &!` |
|
||||
| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` |
|
||||
| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` |
|
||||
| Alias | Command |
|
||||
| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` |
|
||||
| `ggpnp` | `ggl && ggp` |
|
||||
| `ggpur` | `ggu` |
|
||||
| `g` | `git` |
|
||||
| `ga` | `git add` |
|
||||
| `gaa` | `git add --all` |
|
||||
| `gapa` | `git add --patch` |
|
||||
| `gau` | `git add --update` |
|
||||
| `gav` | `git add --verbose` |
|
||||
| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` |
|
||||
| `gam` | `git am` |
|
||||
| `gama` | `git am --abort` |
|
||||
| `gamc` | `git am --continue` |
|
||||
| `gamscp` | `git am --show-current-patch` |
|
||||
| `gams` | `git am --skip` |
|
||||
| `gap` | `git apply` |
|
||||
| `gapt` | `git apply --3way` |
|
||||
| `gbs` | `git bisect` |
|
||||
| `gbsb` | `git bisect bad` |
|
||||
| `gbsg` | `git bisect good` |
|
||||
| `gbsn` | `git bisect new` |
|
||||
| `gbso` | `git bisect old` |
|
||||
| `gbsr` | `git bisect reset` |
|
||||
| `gbss` | `git bisect start` |
|
||||
| `gbl` | `git blame -w` |
|
||||
| `gb` | `git branch` |
|
||||
| `gba` | `git branch --all` |
|
||||
| `gbd` | `git branch --delete` |
|
||||
| `gbD` | `git branch --delete --force` |
|
||||
| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` |
|
||||
| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` |
|
||||
| `gbm` | `git branch --move` |
|
||||
| `gbnm` | `git branch --no-merged` |
|
||||
| `gbr` | `git branch --remote` |
|
||||
| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` |
|
||||
| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` |
|
||||
| `gco` | `git checkout` |
|
||||
| `gcor` | `git checkout --recurse-submodules` |
|
||||
| `gcb` | `git checkout -b` |
|
||||
| `gcd` | `git checkout $(git_develop_branch)` |
|
||||
| `gcm` | `git checkout $(git_main_branch)` |
|
||||
| `gcp` | `git cherry-pick` |
|
||||
| `gcpa` | `git cherry-pick --abort` |
|
||||
| `gcpc` | `git cherry-pick --continue` |
|
||||
| `gclean` | `git clean --interactive -d` |
|
||||
| `gcl` | `git clone --recurse-submodules` |
|
||||
| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` |
|
||||
| `gcam` | `git commit --all --message` |
|
||||
| `gcas` | `git commit --all --signoff` |
|
||||
| `gcasm` | `git commit --all --signoff --message` |
|
||||
| `gcmsg` | `git commit --message` |
|
||||
| `gcsm` | `git commit --signoff --message` |
|
||||
| `gc` | `git commit --verbose` |
|
||||
| `gca` | `git commit --verbose --all` |
|
||||
| `gca!` | `git commit --verbose --all --amend` |
|
||||
| `gcan!` | `git commit --verbose --all --no-edit --amend` |
|
||||
| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` |
|
||||
| `gc!` | `git commit --verbose --amend` |
|
||||
| `gcn!` | `git commit --verbose --no-edit --amend` |
|
||||
| `gcs` | `git commit -S` |
|
||||
| `gcss` | `git commit -S -s` |
|
||||
| `gcssm` | `git commit -S -s -m` |
|
||||
| `gcf` | `git config --list` |
|
||||
| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` |
|
||||
| `gd` | `git diff` |
|
||||
| `gdca` | `git diff --cached` |
|
||||
| `gdcw` | `git diff --cached --word-diff` |
|
||||
| `gds` | `git diff --staged` |
|
||||
| `gdw` | `git diff --word-diff` |
|
||||
| `gdv` | `git diff -w "$@" \| view -` |
|
||||
| `gdup` | `git diff @{upstream}` |
|
||||
| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` |
|
||||
| `gdt` | `git diff-tree --no-commit-id --name-only -r` |
|
||||
| `gf` | `git fetch` |
|
||||
| `gfa` | `git fetch --all --prune` |
|
||||
| `gfo` | `git fetch origin` |
|
||||
| `gg` | `git gui citool` |
|
||||
| `gga` | `git gui citool --amend` |
|
||||
| `ghh` | `git help` |
|
||||
| `glgg` | `git log --graph` |
|
||||
| `glgga` | `git log --graph --decorate --all` |
|
||||
| `glgm` | `git log --graph --max-count=10` |
|
||||
| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` |
|
||||
| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` |
|
||||
| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` |
|
||||
| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` |
|
||||
| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` |
|
||||
| `glo` | `git log --oneline --decorate` |
|
||||
| `glog` | `git log --oneline --decorate --graph` |
|
||||
| `gloga` | `git log --oneline --decorate --graph --all` |
|
||||
| `glp` | `git log --pretty=<format>` |
|
||||
| `glg` | `git log --stat` |
|
||||
| `glgp` | `git log --stat --patch` |
|
||||
| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` |
|
||||
| `gfg` | `git ls-files \| grep` |
|
||||
| `gm` | `git merge` |
|
||||
| `gma` | `git merge --abort` |
|
||||
| `gms` | `git merge --squash` |
|
||||
| `gmom` | `git merge origin/$(git_main_branch)` |
|
||||
| `gmum` | `git merge upstream/$(git_main_branch)` |
|
||||
| `gmtl` | `git mergetool --no-prompt` |
|
||||
| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` |
|
||||
| `gl` | `git pull` |
|
||||
| `gpr` | `git pull --rebase` |
|
||||
| `gprv` | `git pull --rebase -v` |
|
||||
| `gpra` | `git pull --rebase --autostash` |
|
||||
| `gprav` | `git pull --rebase --autostash -v` |
|
||||
| `gprom` | `git pull --rebase origin $(git_main_branch)` |
|
||||
| `gpromi` | `git pull --rebase=interactive origin $(git_main_branch)` |
|
||||
| `ggpull` | `git pull origin "$(git_current_branch)"` |
|
||||
| `ggl` | `git pull origin $(current_branch)` |
|
||||
| `gluc` | `git pull upstream $(git_current_branch)` |
|
||||
| `glum` | `git pull upstream $(git_main_branch)` |
|
||||
| `gp` | `git push` |
|
||||
| `gpd` | `git push --dry-run` |
|
||||
| `gpf!` | `git push --force` |
|
||||
| `ggf` | `git push --force origin $(current_branch)` |
|
||||
| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` |
|
||||
| `gpf` | On Git < 2.30: `git push --force-with-lease` |
|
||||
| `ggfl` | `git push --force-with-lease origin $(current_branch)` |
|
||||
| `gpsup` | `git push --set-upstream origin $(git_current_branch)` |
|
||||
| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` |
|
||||
| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` |
|
||||
| `gpv` | `git push --verbose` |
|
||||
| `gpoat` | `git push origin --all && git push origin --tags` |
|
||||
| `gpod` | `git push origin --delete` |
|
||||
| `ggpush` | `git push origin "$(git_current_branch)"` |
|
||||
| `ggp` | `git push origin $(current_branch)` |
|
||||
| `gpu` | `git push upstream` |
|
||||
| `grb` | `git rebase` |
|
||||
| `grba` | `git rebase --abort` |
|
||||
| `grbc` | `git rebase --continue` |
|
||||
| `grbi` | `git rebase --interactive` |
|
||||
| `grbo` | `git rebase --onto` |
|
||||
| `grbs` | `git rebase --skip` |
|
||||
| `grbd` | `git rebase $(git_develop_branch)` |
|
||||
| `grbm` | `git rebase $(git_main_branch)` |
|
||||
| `grbom` | `git rebase origin/$(git_main_branch)` |
|
||||
| `gr` | `git remote` |
|
||||
| `grv` | `git remote --verbose` |
|
||||
| `gra` | `git remote add` |
|
||||
| `grrm` | `git remote remove` |
|
||||
| `grmv` | `git remote rename` |
|
||||
| `grset` | `git remote set-url` |
|
||||
| `grup` | `git remote update` |
|
||||
| `grh` | `git reset` |
|
||||
| `gru` | `git reset --` |
|
||||
| `grhh` | `git reset --hard` |
|
||||
| `grhk` | `git reset --keep` |
|
||||
| `grhs` | `git reset --soft` |
|
||||
| `gpristine` | `git reset --hard && git clean -dffx` |
|
||||
| `groh` | `git reset origin/$(git_current_branch) --hard` |
|
||||
| `grs` | `git restore` |
|
||||
| `grss` | `git restore --source` |
|
||||
| `grst` | `git restore --staged` |
|
||||
| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` |
|
||||
| `grev` | `git revert` |
|
||||
| `grm` | `git rm` |
|
||||
| `grmc` | `git rm --cached` |
|
||||
| `gcount` | `git shortlog --summary -n` |
|
||||
| `gsh` | `git show` |
|
||||
| `gsps` | `git show --pretty=short --show-signature` |
|
||||
| `gstall` | `git stash --all` |
|
||||
| `gstu` | `git stash --include-untracked` |
|
||||
| `gstaa` | `git stash apply` |
|
||||
| `gstc` | `git stash clear` |
|
||||
| `gstd` | `git stash drop` |
|
||||
| `gstl` | `git stash list` |
|
||||
| `gstp` | `git stash pop` |
|
||||
| `gsta` | On Git >= 2.13: `git stash push` |
|
||||
| `gsta` | On Git < 2.13: `git stash save` |
|
||||
| `gsts` | `git stash show --patch` |
|
||||
| `gst` | `git status` |
|
||||
| `gss` | `git status --short` |
|
||||
| `gsb` | `git status --short -b` |
|
||||
| `gsi` | `git submodule init` |
|
||||
| `gsu` | `git submodule update` |
|
||||
| `gsd` | `git svn dcommit` |
|
||||
| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` |
|
||||
| `gsr` | `git svn rebase` |
|
||||
| `gsw` | `git switch` |
|
||||
| `gswc` | `git switch -c` |
|
||||
| `gswd` | `git switch $(git_develop_branch)` |
|
||||
| `gswm` | `git switch $(git_main_branch)` |
|
||||
| `gta` | `git tag --annotate` |
|
||||
| `gts` | `git tag -s` |
|
||||
| `gtv` | `git tag \| sort -V` |
|
||||
| `gignore` | `git update-index --assume-unchanged` |
|
||||
| `gunignore` | `git update-index --no-assume-unchanged` |
|
||||
| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` |
|
||||
| `gwt` | `git worktree` |
|
||||
| `gwtls` | `git worktree list` |
|
||||
| `gwtmv` | `git worktree move` |
|
||||
| `gwtrm` | `git worktree remove` |
|
||||
| `gk` | `gitk --all --branches &!` |
|
||||
| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` |
|
||||
| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` |
|
||||
|
||||
### Main branch preference
|
||||
|
||||
|
|
@ -224,19 +222,25 @@ branch exists. We do this via the function `git_main_branch`.
|
|||
These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not,
|
||||
receive further support.
|
||||
|
||||
| Alias | Command | Modification |
|
||||
| :------- | :----------------------------------------------------- | :-------------------------------------------------------- |
|
||||
| `gap` | `git add --patch` | New alias: `gapa`. |
|
||||
| `gcl` | `git config --list` | New alias: `gcf`. |
|
||||
| `gdc` | `git diff --cached` | New alias: `gdca`. |
|
||||
| `gdt` | `git difftool` | No replacement. |
|
||||
| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) |
|
||||
| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) |
|
||||
| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) |
|
||||
| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. |
|
||||
| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. |
|
||||
| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. |
|
||||
| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. |
|
||||
| Alias | Command | Modification |
|
||||
| :------- | :-------------------------------------------------------- | :-------------------------------------------------------- |
|
||||
| `gap` | `git add --patch` | New alias: `gapa`. |
|
||||
| `gcl` | `git config --list` | New alias: `gcf`. |
|
||||
| `gdc` | `git diff --cached` | New alias: `gdca`. |
|
||||
| `gdt` | `git difftool` | No replacement. |
|
||||
| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) |
|
||||
| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) |
|
||||
| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) |
|
||||
| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. |
|
||||
| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. |
|
||||
| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. |
|
||||
| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. |
|
||||
| `gup` | `git pull --rebase` | now alias `gpr` |
|
||||
| `gupv` | `git pull --rebase -v` | now alias `gprv` |
|
||||
| `gupa` | `git pull --rebase --autostash` | now alias `gpra` |
|
||||
| `gupav` | `git pull --rebase --autostash -v` | now alias `gprav` |
|
||||
| `gupom` | `git pull --rebase origin $(git_main_branch)` | now alias `gprom` |
|
||||
| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | now alias `gpromi` |
|
||||
|
||||
## Functions
|
||||
|
||||
|
|
@ -250,7 +254,8 @@ receive further support.
|
|||
| `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. |
|
||||
| `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. |
|
||||
| `grename <old> <new>` | Renames branch `<old>` to `<new>`, including on the origin remote. |
|
||||
| `gbda` | Deletes all merged and squash-merged branches |
|
||||
| `gbda` | Deletes all merged branches |
|
||||
| `gbds` | Deletes all squash-merged branches (**Note: performance degrades with number of branches**) |
|
||||
|
||||
### Work in Progress (WIP)
|
||||
|
||||
|
|
|
|||
|
|
@ -128,18 +128,20 @@ alias gba='git branch --all'
|
|||
alias gbd='git branch --delete'
|
||||
alias gbD='git branch --delete --force'
|
||||
|
||||
# Copied and modified from James Roeder (jmaroeder) under MIT License
|
||||
# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish
|
||||
function gbda() {
|
||||
git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null
|
||||
}
|
||||
|
||||
# Copied and modified from James Roeder (jmaroeder) under MIT License
|
||||
# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish
|
||||
function gbds() {
|
||||
local default_branch=$(git_main_branch)
|
||||
(( ! $? )) || default_branch=$(git_develop_branch)
|
||||
|
||||
git for-each-ref refs/heads/ "--format=%(refname:short)" | \
|
||||
while read branch; do
|
||||
local merge_base=$(git merge-base $default_branch $branch)
|
||||
if [[ '-*' == $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) ]]; then
|
||||
if [[ $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) = -* ]]; then
|
||||
git branch -D $branch
|
||||
fi
|
||||
done
|
||||
|
|
@ -164,8 +166,17 @@ alias gclean='git clean --interactive -d'
|
|||
alias gcl='git clone --recurse-submodules'
|
||||
|
||||
function gccd() {
|
||||
command git clone --recurse-submodules "$@"
|
||||
[[ -d "$_" ]] && cd "$_" || cd "${${_:t}%.git}"
|
||||
setopt localoptions extendedglob
|
||||
|
||||
# get repo URI from args based on valid formats: https://git-scm.com/docs/git-clone#URLS
|
||||
local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}"
|
||||
|
||||
# clone repository and exit if it fails
|
||||
command git clone --recurse-submodules "$@" || return
|
||||
|
||||
# if last arg passed was a directory, that's where the repo was cloned
|
||||
# otherwise parse the repo URI and use the last part as the directory
|
||||
[[ -d "$_" ]] && cd "$_" || cd "${${repo:t}%.git/#}"
|
||||
}
|
||||
compdef _git gccd=git-clone
|
||||
|
||||
|
|
@ -244,12 +255,12 @@ alias gmom='git merge origin/$(git_main_branch)'
|
|||
alias gmum='git merge upstream/$(git_main_branch)'
|
||||
alias gmtl='git mergetool --no-prompt'
|
||||
alias gmtlvim='git mergetool --no-prompt --tool=vimdiff'
|
||||
|
||||
alias gl='git pull'
|
||||
alias gpr='git pull --rebase'
|
||||
alias gup='git pull --rebase'
|
||||
alias gupa='git pull --rebase --autostash'
|
||||
alias gupav='git pull --rebase --autostash --verbose'
|
||||
alias gupv='git pull --rebase --verbose'
|
||||
alias gprv='git pull --rebase -v'
|
||||
alias gpra='git pull --rebase --autostash'
|
||||
alias gprav='git pull --rebase --autostash -v'
|
||||
|
||||
function ggu() {
|
||||
[[ "$#" != 1 ]] && local b="$(git_current_branch)"
|
||||
|
|
@ -257,8 +268,8 @@ function ggu() {
|
|||
}
|
||||
compdef _git ggu=git-checkout
|
||||
|
||||
alias gupom='git pull --rebase origin $(git_main_branch)'
|
||||
alias gupomi='git pull --rebase=interactive origin $(git_main_branch)'
|
||||
alias gprom='git pull --rebase origin $(git_main_branch)'
|
||||
alias gpromi='git pull --rebase=interactive origin $(git_main_branch)'
|
||||
alias ggpull='git pull origin "$(git_current_branch)"'
|
||||
|
||||
function ggl() {
|
||||
|
|
@ -386,3 +397,20 @@ alias gk='\gitk --all --branches &!'
|
|||
alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!'
|
||||
|
||||
unset git_version
|
||||
|
||||
# Logic for adding warnings on deprecated aliases
|
||||
local old_alias new_alias
|
||||
for old_alias new_alias (
|
||||
# TODO(2023-10-19): remove deprecated `git pull --rebase` aliases
|
||||
gup gpr
|
||||
gupv gprv
|
||||
gupa gpra
|
||||
gupav gprav
|
||||
gupom gprom
|
||||
gupomi gpromi
|
||||
); do
|
||||
aliases[$old_alias]="
|
||||
print -Pu2 \"%F{yellow}[oh-my-zsh] '%F{red}${old_alias}%F{yellow}' is a deprecated alias, using '%F{green}${new_alias}%F{yellow}' instead.%f\"
|
||||
$new_alias"
|
||||
done
|
||||
unset old_alias new_alias
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ files=(
|
|||
/etc/grc.zsh # default
|
||||
/usr/local/etc/grc.zsh # homebrew darwin-x64
|
||||
/opt/homebrew/etc/grc.zsh # homebrew darwin-arm64
|
||||
/usr/share/grc/grc.zsh # Gentoo Linux (app-misc/grc)
|
||||
)
|
||||
|
||||
# verify the file is readable and source it
|
||||
|
|
|
|||
|
|
@ -13,5 +13,6 @@ plugins=(... history)
|
|||
| Alias | Command | Description |
|
||||
|-------|----------------------|------------------------------------------------------------------|
|
||||
| `h` | `history` | Prints your command history |
|
||||
| `hl` | `history \| less` | Pipe history output to less to search and navigate it easily |
|
||||
| `hs` | `history \| grep` | Use grep to search your command history |
|
||||
| `hsi` | `history \| grep -i` | Use grep to do a case-insensitive search of your command history |
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
alias h='history'
|
||||
alias hl='history | less'
|
||||
alias hs='history | grep'
|
||||
alias hsi='history | grep -i'
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ jaddr() {
|
|||
elif [[ $# -eq 2 ]]; then
|
||||
# Get unit address
|
||||
juju status "$1/$2" --format=json \
|
||||
| jq -r ".applications.\"$1\".units.\"$1/$2\".address"
|
||||
| jq -r ".applications.\"$1\".units.\"$1/$2\" | .address // .\"public-address\""
|
||||
else
|
||||
echo "Invalid number of arguments."
|
||||
echo "Usage: jaddr <app-name> [<unit-number>]"
|
||||
|
|
|
|||
|
|
@ -162,6 +162,7 @@ alias kdelsa="kubectl delete sa"
|
|||
|
||||
# DaemonSet management.
|
||||
alias kgds='kubectl get daemonset'
|
||||
alias kgdsa='kubectl get daemonset --all-namespaces'
|
||||
alias kgdsw='kgds --watch'
|
||||
alias keds='kubectl edit daemonset'
|
||||
alias kdds='kubectl describe daemonset'
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ To use it, add `lando` to the plugins array in your zshrc file:
|
|||
plugins=(... lando)
|
||||
```
|
||||
|
||||
## ALIASES:
|
||||
## Wrapped Commands
|
||||
|
||||
| Alias | Description |
|
||||
|:----------:|:----------------:|
|
||||
|
|
@ -21,16 +21,34 @@ plugins=(... lando)
|
|||
| `wp` | `lando wp` |
|
||||
| `yarn` | `lando yarn` |
|
||||
|
||||
More or different commands can be wrapped by setting the `LANDO_ZSH_WRAPPED_COMMANDS` setting, see [Settings](#settings) below.
|
||||
|
||||
## How It Works:
|
||||
|
||||
This plugin removes the requirement to type `lando` before a command. It utilizes the lando version of supported commands run within directories with the following criteria:
|
||||
|
||||
- The `.lando.yml` file is found in the current directory or any parent directory within `$LANDO_ZSH_SITES_DIRECTORY`.
|
||||
- The current directory is within `$LANDO_ZSH_SITES_DIRECTORY` but is not `$LANDO_ZSH_SITES_DIRECTORY` itself.
|
||||
- If the command is not a part of the commands available in the lando environment, it will run the command without `lando`.
|
||||
|
||||
## Settings:
|
||||
|
||||
- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory.
|
||||
- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando.
|
||||
> NOTE: these settings must be set *before* the plugin is loaded, and any changes require a restart of the shell to be applied.
|
||||
|
||||
- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory:
|
||||
```sh
|
||||
LANDO_ZSH_SITES_DIRECTORY="$HOME/Code"
|
||||
```
|
||||
|
||||
- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando:
|
||||
```sh
|
||||
LANDO_ZSH_CONFIG_FILE=".lando.dev.yml"
|
||||
```
|
||||
|
||||
- `LANDO_ZSH_WRAPPED_COMMANDS`: The list of commands to wrap, as a string of commands separated by whitespace:
|
||||
```sh
|
||||
LANDO_ZSH_WRAPPED_COMMANDS="mysql php composer test artisan"
|
||||
```
|
||||
|
||||
## Author:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +1,36 @@
|
|||
# Settings
|
||||
: ${LANDO_ZSH_SITES_DIRECTORY:="$HOME/Sites"}
|
||||
: ${LANDO_ZSH_CONFIG_FILE:=.lando.yml}
|
||||
: ${LANDO_ZSH_WRAPPED_COMMANDS:="
|
||||
artisan
|
||||
composer
|
||||
drush
|
||||
gulp
|
||||
npm
|
||||
php
|
||||
wp
|
||||
yarn
|
||||
"}
|
||||
|
||||
# Enable multiple commands with lando.
|
||||
function artisan \
|
||||
composer \
|
||||
drush \
|
||||
gulp \
|
||||
npm \
|
||||
php \
|
||||
wp \
|
||||
yarn {
|
||||
if checkForLandoFile; then
|
||||
lando "$0" "$@"
|
||||
function ${=LANDO_ZSH_WRAPPED_COMMANDS} {
|
||||
# If the lando task is available in `lando --help`, then it means:
|
||||
#
|
||||
# 1. `lando` is in a project with a `.lando.yml` file.
|
||||
# 2. The lando task is available for lando, based on the .lando.yml config file.
|
||||
#
|
||||
# This has a penalty of about 250ms, so we still want to check if the lando file
|
||||
# exists before, which is the fast path. If it exists, checking help output is
|
||||
# still faster than running the command and failing.
|
||||
if _lando_file_exists && lando --help 2>&1 | command grep -Eq "^ +lando $0 "; then
|
||||
command lando "$0" "$@"
|
||||
else
|
||||
command "$0" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Check for the file in the current and parent directories.
|
||||
checkForLandoFile() {
|
||||
_lando_file_exists() {
|
||||
# Only bother checking for lando within the Sites directory.
|
||||
if [[ "$PWD/" != "$LANDO_ZSH_SITES_DIRECTORY"/* ]]; then
|
||||
# Not within $LANDO_ZSH_SITES_DIRECTORY
|
||||
|
|
@ -38,4 +49,4 @@ checkForLandoFile() {
|
|||
# Could not find $LANDO_ZSH_CONFIG_FILE in the current directory
|
||||
# or in any of its parents up to $LANDO_ZSH_SITES_DIRECTORY.
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ plugins=(... npm)
|
|||
| `npmi` | `npm info` | Run npm info |
|
||||
| `npmSe` | `npm search` | Run npm search |
|
||||
| `npmrd` | `npm run dev` | Run npm run dev |
|
||||
| `npmrb` | `npm run build` | Run npm run build |
|
||||
|
||||
## `npm install` / `npm uninstall` toggle
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,9 @@ alias npmSe="npm search"
|
|||
# Run npm run dev
|
||||
alias npmrd="npm run dev"
|
||||
|
||||
# Run npm run build
|
||||
alias npmrb="npm run build"
|
||||
|
||||
npm_toggle_install_uninstall() {
|
||||
# Look up to the previous 2 history commands
|
||||
local line
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ toggle set the `PER_DIRECTORY_HISTORY_TOGGLE` environment variable.
|
|||
and global histories.
|
||||
* `PER_DIRECTORY_HISTORY_TOGGLE` is the key binding used to run the toggle-history
|
||||
function above (default `^G`)
|
||||
* `PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE` is a variable which toggles whether
|
||||
the current mode is printed to the screen following a mode change (default `true`)
|
||||
|
||||
## History
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
|
||||
[[ -z $HISTORY_START_WITH_GLOBAL ]] && HISTORY_START_WITH_GLOBAL=false
|
||||
[[ -z $PER_DIRECTORY_HISTORY_TOGGLE ]] && PER_DIRECTORY_HISTORY_TOGGLE='^G'
|
||||
[[ -z $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE ]] && PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE=true
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# toggle global/directory history used for searching - ctrl-G by default
|
||||
|
|
@ -68,14 +69,16 @@ function per-directory-history-toggle-history() {
|
|||
if [[ $_per_directory_history_is_global == true ]]; then
|
||||
_per-directory-history-set-directory-history
|
||||
_per_directory_history_is_global=false
|
||||
print -n "\nusing local history"
|
||||
if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then
|
||||
zle -M "using local history"
|
||||
fi
|
||||
else
|
||||
_per-directory-history-set-global-history
|
||||
_per_directory_history_is_global=true
|
||||
print -n "\nusing global history"
|
||||
if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then
|
||||
zle -M "using global history"
|
||||
fi
|
||||
fi
|
||||
zle .push-line
|
||||
zle .accept-line
|
||||
}
|
||||
|
||||
autoload per-directory-history-toggle-history
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ plugins=(... python)
|
|||
|
||||
| Command | Description |
|
||||
| ---------------- | -------------------------------------------------------------------------------------- |
|
||||
| `py` | Runs `python3` |
|
||||
| `py` | Runs `python3`. Only set if `py` is not installed. |
|
||||
| `ipython` | Runs the appropriate `ipython` version according to the activated virtualenv |
|
||||
| `pyfind` | Finds .py files recursively in the current directory |
|
||||
| `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one |
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# python command
|
||||
alias py='python3'
|
||||
# set python command if 'py' not installed
|
||||
builtin which py > /dev/null || alias py='python3'
|
||||
|
||||
# Find python file
|
||||
alias pyfind='find . -name "*.py"'
|
||||
|
|
|
|||
|
|
@ -13,6 +13,11 @@ function _start_agent() {
|
|||
fi
|
||||
fi
|
||||
|
||||
if [[ ! -d "$HOME/.ssh" ]]; then
|
||||
echo "[oh-my-zsh] ssh-agent plugin requires ~/.ssh directory"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Set a maximum lifetime for identities added to ssh-agent
|
||||
local lifetime
|
||||
zstyle -s :omz:plugins:ssh-agent lifetime lifetime
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ The plugin also supports the following:
|
|||
| `tkss` | tmux kill-session -t | Terminate named running tmux session |
|
||||
| `tmux` | `_zsh_tmux_plugin_run` | Start a new tmux session |
|
||||
| `tmuxconf` | `$EDITOR $ZSH_TMUX_CONFIG` | Open .tmux.conf file with an editor |
|
||||
| `tds` | `_tmux_directory_session` | Creates or attaches to a session for the current path |
|
||||
|
||||
## Configuration Variables
|
||||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,19 @@ compdef _tmux _zsh_tmux_plugin_run
|
|||
# Alias tmux to our wrapper function.
|
||||
alias tmux=_zsh_tmux_plugin_run
|
||||
|
||||
function _tmux_directory_session() {
|
||||
# current directory without leading path
|
||||
local dir=${PWD##*/}
|
||||
# md5 hash for the full working directory path
|
||||
local md5=$(printf '%s' "$PWD" | md5sum | cut -d ' ' -f 1)
|
||||
# human friendly unique session name for this directory
|
||||
local session_name="${dir}-${md5:0:6}"
|
||||
# create or attach to the session
|
||||
tmux new -As "$session_name"
|
||||
}
|
||||
|
||||
alias tds=_tmux_directory_session
|
||||
|
||||
# Autostart if not already in tmux and enabled.
|
||||
if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" ]]; then
|
||||
# Actually don't autostart if we already did and multiple autostarts are disabled.
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ plugins=(... vi-mode)
|
|||
- `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode.
|
||||
See [Mode indicators](#mode-indicators) for details.
|
||||
|
||||
- `VI_MODE_DISABLE_CLIPBOARD`: If set, disables clipboard integration on yank/paste
|
||||
|
||||
## Mode indicators
|
||||
|
||||
*Normal mode* is indicated with a red `<<<` mark at the right prompt, when it
|
||||
|
|
|
|||
|
|
@ -147,16 +147,19 @@ function wrap_clipboard_widgets() {
|
|||
done
|
||||
}
|
||||
|
||||
wrap_clipboard_widgets copy \
|
||||
vi-yank vi-yank-eol vi-yank-whole-line \
|
||||
vi-change vi-change-eol vi-change-whole-line \
|
||||
vi-kill-line vi-kill-eol vi-backward-kill-word \
|
||||
vi-delete vi-delete-char vi-backward-delete-char
|
||||
if [[ -z "${VI_MODE_DISABLE_CLIPBOARD:-}" ]]; then
|
||||
wrap_clipboard_widgets copy \
|
||||
vi-yank vi-yank-eol vi-yank-whole-line \
|
||||
vi-change vi-change-eol vi-change-whole-line \
|
||||
vi-kill-line vi-kill-eol vi-backward-kill-word \
|
||||
vi-delete vi-delete-char vi-backward-delete-char
|
||||
|
||||
wrap_clipboard_widgets paste \
|
||||
vi-put-{before,after}
|
||||
wrap_clipboard_widgets paste \
|
||||
vi-put-{before,after} \
|
||||
put-replace-selection
|
||||
|
||||
unfunction wrap_clipboard_widgets
|
||||
unfunction wrap_clipboard_widgets
|
||||
fi
|
||||
|
||||
# if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default
|
||||
if [[ -z "$MODE_INDICATOR" ]]; then
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell
|
|||
|
||||
## Using multiple flavours
|
||||
|
||||
If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can
|
||||
If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can
|
||||
manually specify the flavour's executable. Add the following line to the .zshrc file (between the `ZSH_THEME` and the `plugins=()` lines).
|
||||
This will make the plugin use your manually defined executable.
|
||||
|
||||
|
|
@ -53,6 +53,7 @@ source $ZSH/oh-my-zsh.sh
|
|||
| Alias | Command | Description |
|
||||
| ----------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------- |
|
||||
| vsc | code . | Open the current folder in VS code |
|
||||
| vsc `dir` | code `dir` | Open passed folder in VS code |
|
||||
| vsca `dir` | code --add `dir` | Add folder(s) to the last active window |
|
||||
| vscd `file` `file` | code --diff `file` `file` | Compare two files with each other. |
|
||||
| vscg `file:line[:char]` | code --goto `file:line[:char]` | Open a file at the path on the specified line and character position. |
|
||||
|
|
|
|||
|
|
@ -23,7 +23,14 @@ if [[ -z "$VSCODE" ]]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
alias vsc="$VSCODE ."
|
||||
function vsc {
|
||||
if (( $# )); then
|
||||
$VSCODE $@
|
||||
else
|
||||
$VSCODE .
|
||||
fi
|
||||
}
|
||||
|
||||
alias vsca="$VSCODE --add"
|
||||
alias vscd="$VSCODE --diff"
|
||||
alias vscg="$VSCODE --goto"
|
||||
|
|
|
|||
|
|
@ -396,7 +396,7 @@ fi
|
|||
# disable extendedglob for the complete wd execution time
|
||||
setopt | grep -q extendedglob
|
||||
wd_extglob_is_set=$?
|
||||
[[ $wd_extglob_is_set ]] && setopt noextendedglob
|
||||
(( ! $wd_extglob_is_set )) && setopt noextendedglob
|
||||
|
||||
# load warp points
|
||||
typeset -A points
|
||||
|
|
@ -484,7 +484,7 @@ fi
|
|||
# if not, next time warp will pick up variables from this run
|
||||
# remember, there's no sub shell
|
||||
|
||||
[[ $wd_extglob_is_set ]] && setopt extendedglob
|
||||
(( ! $wd_extglob_is_set )) && setopt extendedglob
|
||||
|
||||
unset wd_extglob_is_set
|
||||
unset wd_warp
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ ) %{$fg[cyan]%}%c%{$reset_color%}"
|
||||
PROMPT="%(?:%{$fg_bold[green]%}%1{➜%} :%{$fg_bold[red]%}%1{➜%} ) %{$fg[cyan]%}%c%{$reset_color%}"
|
||||
PROMPT+=' $(git_prompt_info)'
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}%1{✗%}"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
|
||||
|
|
|
|||
|
|
@ -63,7 +63,9 @@ zdot="${ZDOTDIR:-$HOME}"
|
|||
# Default value for $ZSH
|
||||
# a) if $ZDOTDIR is supplied and not $HOME: $ZDOTDIR/ohmyzsh
|
||||
# b) otherwise, $HOME/.oh-my-zsh
|
||||
[ "$ZDOTDIR" = "$HOME" ] || ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}"
|
||||
if [ -n "$ZDOTDIR" ] && [ "$ZDOTDIR" != "$HOME" ]; then
|
||||
ZSH="${ZSH:-$ZDOTDIR/ohmyzsh}"
|
||||
fi
|
||||
ZSH="${ZSH:-$HOME/.oh-my-zsh}"
|
||||
|
||||
# Default settings
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue