mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-13 05:59:46 +08:00
Compare commits
9 Commits
a779d6563f
...
203369b0f9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
203369b0f9 | ||
|
|
41d2029dec | ||
|
|
c77a01dbe2 | ||
|
|
bbfb985359 | ||
|
|
dfb436b54a | ||
|
|
f6b3fc84d1 | ||
|
|
04b66b2308 | ||
|
|
0621944db5 | ||
|
|
309129f651 |
2
.github/dependencies.yml
vendored
2
.github/dependencies.yml
vendored
@ -39,7 +39,7 @@ dependencies:
|
||||
plugins/wd:
|
||||
repo: mfaerevaag/wd
|
||||
branch: master
|
||||
version: tag:v0.6.1
|
||||
version: tag:v0.7.0
|
||||
precopy: |
|
||||
set -e
|
||||
rm -r test
|
||||
|
||||
2
.github/workflows/dependencies.yml
vendored
2
.github/workflows/dependencies.yml
vendored
@ -2,7 +2,7 @@ name: Update dependencies
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
schedule:
|
||||
- cron: "34 3 * * */8"
|
||||
- cron: "0 6 * * 0"
|
||||
|
||||
jobs:
|
||||
check:
|
||||
|
||||
72
.github/workflows/dependencies/updater.py
vendored
72
.github/workflows/dependencies/updater.py
vendored
@ -228,21 +228,22 @@ class Dependency:
|
||||
self.__apply_upstream_changes()
|
||||
|
||||
# Add all changes and commit
|
||||
Git.add_and_commit(self.name, short_sha)
|
||||
has_new_commit = Git.add_and_commit(self.name, short_sha)
|
||||
|
||||
# Push changes to remote
|
||||
Git.push(branch)
|
||||
if has_new_commit:
|
||||
# Push changes to remote
|
||||
Git.push(branch)
|
||||
|
||||
# Create GitHub PR
|
||||
GitHub.create_pr(
|
||||
branch,
|
||||
f"feat({self.name}): update to version {new_version}",
|
||||
f"""## Description
|
||||
# Create GitHub PR
|
||||
GitHub.create_pr(
|
||||
branch,
|
||||
f"feat({self.name}): update to version {new_version}",
|
||||
f"""## Description
|
||||
|
||||
Update for **{self.desc}**: update to version [{new_version}]({status['head_url']}).
|
||||
Check out the [list of changes]({status['compare_url']}).
|
||||
""",
|
||||
)
|
||||
)
|
||||
|
||||
# Clean up repository
|
||||
Git.clean_repo()
|
||||
@ -377,7 +378,21 @@ class Git:
|
||||
return branch_name
|
||||
|
||||
@staticmethod
|
||||
def add_and_commit(scope: str, version: str):
|
||||
def add_and_commit(scope: str, version: str) -> bool:
|
||||
"""
|
||||
Returns `True` if there were changes and were indeed commited.
|
||||
Returns `False` if the repo was clean and no changes were commited.
|
||||
"""
|
||||
# check if repo is clean (clean => no error, no commit)
|
||||
try:
|
||||
CommandRunner.run_or_fail(
|
||||
["git", "diff", "--exit-code"], stage="CheckRepoClean"
|
||||
)
|
||||
return False
|
||||
except CommandRunner.Exception:
|
||||
# if it's other kind of error just throw!
|
||||
pass
|
||||
|
||||
user_name = os.environ.get("GIT_APP_NAME")
|
||||
user_email = os.environ.get("GIT_APP_EMAIL")
|
||||
|
||||
@ -390,27 +405,22 @@ class Git:
|
||||
clean_env["GIT_CONFIG_GLOBAL"] = "/dev/null"
|
||||
clean_env["GIT_CONFIG_NOSYSTEM"] = "1"
|
||||
|
||||
# check if repo is clean (clean => no error, no commit)
|
||||
try:
|
||||
CommandRunner.run_or_fail(
|
||||
["git", "diff", "--exit-code"], stage="CheckRepoClean", env=clean_env
|
||||
)
|
||||
except CommandRunner.Exception:
|
||||
# Commit with settings above
|
||||
CommandRunner.run_or_fail(
|
||||
[
|
||||
"git",
|
||||
"-c",
|
||||
f"user.name={user_name}",
|
||||
"-c",
|
||||
f"user.email={user_email}",
|
||||
"commit",
|
||||
"-m",
|
||||
f"feat({scope}): update to {version}",
|
||||
],
|
||||
stage="CreateCommit",
|
||||
env=clean_env,
|
||||
)
|
||||
# Commit with settings above
|
||||
CommandRunner.run_or_fail(
|
||||
[
|
||||
"git",
|
||||
"-c",
|
||||
f"user.name={user_name}",
|
||||
"-c",
|
||||
f"user.email={user_email}",
|
||||
"commit",
|
||||
"-m",
|
||||
f"feat({scope}): update to {version}",
|
||||
],
|
||||
stage="CreateCommit",
|
||||
env=clean_env,
|
||||
)
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def push(branch: str):
|
||||
|
||||
@ -36,6 +36,10 @@ plugins=(... laravel)
|
||||
| `pamj` | `php artisan make:job` |
|
||||
| `paml` | `php artisan make:listener` |
|
||||
| `pamn` | `php artisan make:notification` |
|
||||
| `pamcl` | `php artisan make:class` |
|
||||
| `pamen` | `php artisan make:enum` |
|
||||
| `pami` | `php artisan make:interface` |
|
||||
| `pamtr` | `php artisan make:trait` |
|
||||
|
||||
## Clears
|
||||
|
||||
|
||||
@ -25,6 +25,10 @@ alias pamj='php artisan make:job'
|
||||
alias paml='php artisan make:listener'
|
||||
alias pamn='php artisan make:notification'
|
||||
alias pampp='php artisan make:provider'
|
||||
alias pamcl='php artisan make:class'
|
||||
alias pamen='php artisan make:enum'
|
||||
alias pami='php artisan make:interface'
|
||||
alias pamtr='php artisan make:trait'
|
||||
|
||||
|
||||
# Clears
|
||||
|
||||
15
plugins/tldr/README.md
Normal file
15
plugins/tldr/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# tldr plugin
|
||||
|
||||
This plugin adds a shortcut to insert tldr before the previous command.
|
||||
Heavily inspired from [Man plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/man).
|
||||
|
||||
To use it, add `tldr` to the plugins array in your zshrc file:
|
||||
|
||||
```zsh
|
||||
plugins=(... tldr)
|
||||
```
|
||||
|
||||
# Keyboard Shortcuts
|
||||
| Shortcut | Description |
|
||||
|------------------------------------|----------------------------------------------------------------------------|
|
||||
| <kbd>Esc</kbd> + tldr | add tldr before the previous command to see the tldr page for this command |
|
||||
19
plugins/tldr/tldr.plugin.zsh
Normal file
19
plugins/tldr/tldr.plugin.zsh
Normal file
@ -0,0 +1,19 @@
|
||||
tldr-command-line() {
|
||||
# if there is no command typed, use the last command
|
||||
[[ -z "$BUFFER" ]] && zle up-history
|
||||
|
||||
# if typed command begins with tldr, do nothing
|
||||
[[ "$BUFFER" = tldr\ * ]] && return
|
||||
|
||||
# get command and possible subcommand
|
||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
|
||||
local -a args
|
||||
args=(${${(Az)BUFFER}[1]} ${${(Az)BUFFER}[2]})
|
||||
|
||||
BUFFER="tldr ${args[1]}"
|
||||
}
|
||||
|
||||
zle -N tldr-command-line
|
||||
# Defined shortcut keys: [Esc]tldr
|
||||
bindkey "\e"tldr tldr-command-line
|
||||
|
||||
@ -142,7 +142,7 @@ rm -f ~/.zcompdump; compinit
|
||||
If you want to make use of the `fzf`-powered browse feature to fuzzy search through all your warp points, set up a keybind in your `.zshrc`:
|
||||
|
||||
```zsh
|
||||
bindkey '^G' wd_browse
|
||||
bindkey ${FZF_WD_BINDKEY:-'^B'} fuzzy_wd_widget
|
||||
```
|
||||
|
||||
## Usage
|
||||
@ -158,6 +158,19 @@ If a warp point with the same name exists, use `wd add foo --force` to overwrite
|
||||
**Note:** a warp point cannot contain colons, or consist of only spaces and dots.
|
||||
The first will conflict in how `wd` stores the warp points, and the second will conflict with other features, as below.
|
||||
|
||||
* Add warp point to any directory with default name:
|
||||
|
||||
```zsh
|
||||
wd addcd /foo/ bar
|
||||
```
|
||||
|
||||
* Add warp point to any directory with a custom name:
|
||||
|
||||
```zsh
|
||||
wd addcd /foo/
|
||||
```
|
||||
|
||||
|
||||
You can omit point name to automatically use the current directory's name instead.
|
||||
|
||||
* From any directory, warp to `foo` with:
|
||||
|
||||
@ -31,6 +31,7 @@ function _wd() {
|
||||
|
||||
commands=(
|
||||
'add:Adds the current working directory to your warp points'
|
||||
'addcd:Adds a directory to your warp points'
|
||||
'add!:Overwrites existing warp point'
|
||||
'export:Export warp points as static named directories'
|
||||
'rm:Removes the given warp point'
|
||||
@ -63,6 +64,9 @@ function _wd() {
|
||||
add)
|
||||
_message 'Write the name of your warp point' && ret=0
|
||||
;;
|
||||
addcd)
|
||||
_message 'Write the name of your path' && ret=0
|
||||
;;
|
||||
show)
|
||||
_describe -t points "Warp points" warp_points && ret=0
|
||||
;;
|
||||
|
||||
@ -14,7 +14,8 @@
|
||||
|
||||
eval "wd() { source '${0:A:h}/wd.sh' }"
|
||||
wd > /dev/null
|
||||
# Register the function as a Zsh widget
|
||||
zle -N wd_browse
|
||||
# Bind the widget to a key combination
|
||||
bindkey '^G' wd_browse
|
||||
zle -N wd_browse_widget
|
||||
zle -N wd_restore_buffer
|
||||
autoload -Uz add-zle-hook-widget
|
||||
add-zle-hook-widget line-init wd_restore_buffer
|
||||
bindkey ${FZF_WD_BINDKEY:-'^B'} wd_browse_widget
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
# @github.com/mfaerevaag/wd
|
||||
|
||||
# version
|
||||
readonly WD_VERSION=0.6.1
|
||||
readonly WD_VERSION=0.7.0
|
||||
|
||||
# colors
|
||||
readonly WD_BLUE="\033[96m"
|
||||
@ -59,7 +59,7 @@ wd_print_msg()
|
||||
then
|
||||
local color="${1:-$WD_BLUE}" # Default to blue if no color is provided
|
||||
local msg="$2"
|
||||
|
||||
|
||||
if [[ -z "$msg" ]]; then
|
||||
print "${WD_RED}*${WD_NOC} Could not print message. Sorry!"
|
||||
else
|
||||
@ -74,18 +74,20 @@ wd_print_usage()
|
||||
Usage: wd [command] [point]
|
||||
|
||||
Commands:
|
||||
<point> Warps to the directory specified by the warp point
|
||||
<point> <path> Warps to the directory specified by the warp point with path appended
|
||||
add <point> Adds the current working directory to your warp points
|
||||
add Adds the current working directory to your warp points with current directory's name
|
||||
rm <point> Removes the given warp point
|
||||
rm Removes the given warp point with current directory's name
|
||||
show <point> Print path to given warp point
|
||||
show Print warp points to current directory
|
||||
list Print all stored warp points
|
||||
ls <point> Show files from given warp point (ls)
|
||||
path <point> Show the path to given warp point (pwd)
|
||||
clean Remove points warping to nonexistent directories (will prompt unless --force is used)
|
||||
<point> Warps to the directory specified by the warp point
|
||||
<point> <path> Warps to the directory specified by the warp point with path appended
|
||||
add <point> Adds the current working directory to your warp points
|
||||
add Adds the current working directory to your warp points with current directory's name
|
||||
addcd <path> Adds a path to your warp points with the directory's name
|
||||
addcd <path> <point> Adds a path to your warp points with a custom name
|
||||
rm <point> Removes the given warp point
|
||||
rm Removes the given warp point with current directory's name
|
||||
show <point> Print path to given warp point
|
||||
show Print warp points to current directory
|
||||
list Print all stored warp points
|
||||
ls <point> Show files from given warp point (ls)
|
||||
path <point> Show the path to given warp point (pwd)
|
||||
clean Remove points warping to nonexistent directories (will prompt unless --force is used)
|
||||
|
||||
-v | --version Print version
|
||||
-d | --debug Exit after execution with exit codes (for testing)
|
||||
@ -203,6 +205,28 @@ wd_add()
|
||||
fi
|
||||
}
|
||||
|
||||
wd_addcd() {
|
||||
local folder="$1"
|
||||
local point=$2
|
||||
local force=$3
|
||||
local currentdir=$PWD
|
||||
|
||||
if [[ -z "$folder" ]]; then
|
||||
wd_exit_fail "You must specify a path"
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ ! -d "$folder" ]]; then
|
||||
wd_exit_fail "The directory does not exist"
|
||||
return
|
||||
fi
|
||||
|
||||
cd "$folder" || return
|
||||
wd_add "$point" "$force"
|
||||
cd "$currentdir" || return
|
||||
}
|
||||
|
||||
|
||||
wd_remove()
|
||||
{
|
||||
local point_list=$1
|
||||
@ -235,7 +259,15 @@ wd_browse() {
|
||||
return 1
|
||||
fi
|
||||
local entries=("${(@f)$(sed "s:${HOME}:~:g" "$WD_CONFIG" | awk -F ':' '{print $1 " -> " $2}')}")
|
||||
local selected_entry=$(printf '%s\n' "${entries[@]}" | fzf --height 40% --reverse)
|
||||
local script_path="${${(%):-%x}:h}"
|
||||
local wd_remove_output=$(mktemp "${TMPDIR:-/tmp}/wd.XXXXXXXXXX")
|
||||
local entries_with_headers=("All warp points:" "Press enter to select. Press delete to remove" "${entries[@]}")
|
||||
local fzf_bind="delete:execute(echo {} | awk -F ' -> ' '{print \$1}' | xargs -I {} "$script_path/wd.sh" rm {} > "$wd_remove_output")+abort"
|
||||
local fzf_command=$(printf '%s\n' "${entries_with_headers[@]}" | fzf --height 100% --reverse --header-lines=2 --bind="$fzf_bind")
|
||||
if [[ -e $wd_remove_output ]]; then
|
||||
cat "$wd_remove_output"
|
||||
rm "$wd_remove_output"
|
||||
fi
|
||||
if [[ -n $selected_entry ]]; then
|
||||
local selected_point="${selected_entry%% ->*}"
|
||||
selected_point=$(echo "$selected_point" | xargs)
|
||||
@ -243,6 +275,24 @@ wd_browse() {
|
||||
fi
|
||||
}
|
||||
|
||||
wd_browse_widget() {
|
||||
if [[ -e $WD_CONFIG ]]; then
|
||||
wd_browse
|
||||
saved_buffer=$BUFFER
|
||||
saved_cursor=$CURSOR
|
||||
BUFFER=
|
||||
zle redisplay
|
||||
zle accept-line
|
||||
fi
|
||||
}
|
||||
|
||||
wd_restore_buffer() {
|
||||
BUFFER=$saved_buffer
|
||||
CURSOR=$saved_cursor
|
||||
saved_buffer=
|
||||
saved_cursor=1
|
||||
}
|
||||
|
||||
wd_list_all()
|
||||
{
|
||||
wd_print_msg "$WD_BLUE" "All warp points:"
|
||||
@ -371,7 +421,7 @@ wd_export_static_named_directories() {
|
||||
fi
|
||||
}
|
||||
|
||||
local WD_CONFIG=${WD_CONFIG:-$HOME/.warprc}
|
||||
WD_CONFIG=${WD_CONFIG:-$HOME/.warprc}
|
||||
local WD_QUIET=0
|
||||
local WD_EXIT_CODE=0
|
||||
local WD_DEBUG=0
|
||||
@ -455,6 +505,10 @@ else
|
||||
wd_browse
|
||||
break
|
||||
;;
|
||||
"-c"|"--addcd"|"addcd")
|
||||
wd_addcd "$2" "$3" "$wd_force_mode"
|
||||
break
|
||||
;;
|
||||
"-e"|"export")
|
||||
wd_export_static_named_directories
|
||||
break
|
||||
@ -510,6 +564,7 @@ fi
|
||||
unset wd_extglob_is_set
|
||||
unset wd_warp
|
||||
unset wd_add
|
||||
unset wd_addcd
|
||||
unset wd_remove
|
||||
unset wd_show
|
||||
unset wd_list_all
|
||||
|
||||
Loading…
Reference in New Issue
Block a user