Merge branch 'master' of git.ducamps.win:vincent/conf2
This commit is contained in:
commit
e22546cabc
@ -14,3 +14,4 @@ run keepassxc
|
||||
run aarchup
|
||||
run redshift-gtk
|
||||
run start-pulseaudio-x11
|
||||
run albert
|
||||
|
@ -1,4 +1,4 @@
|
||||
SERVICES=("syncthing@vincent" "named" "mariadb" "nginx" "php-fpm" "gitea" "tt-rss" "named" "gunicorn-chainetv.socket" "gunicorn-supysonic" "rsyncd.socket" "fail2ban")
|
||||
SERVICES=("syncthing@vincent" "named" "mariadb" "nginx" "php-fpm" "gitea" "tt-rss" "named" "gunicorn-chainetv.socket" "gunicorn-supysonic" "rsyncd.service" "fail2ban" "supysonic-daemon" "home-assistant" "radicale")
|
||||
HOST=$(hostname)
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
Host *
|
||||
AddKeysToAgent yes
|
||||
ForwardAgent no
|
||||
ForwardAgent yes
|
||||
# ForwardX11 no
|
||||
# PasswordAuthentication yes
|
||||
# HostbasedAuthentication no
|
||||
@ -44,4 +44,10 @@
|
||||
# VisualHostKey no
|
||||
# ProxyCommand ssh -q -W %h:%p gateway.example.com
|
||||
# RekeyLimit 1G 1h
|
||||
|
||||
Host git.ducamps.win
|
||||
HostName git.ducamps.win
|
||||
User gitea
|
||||
IdentityFile ~/.ssh/id_gitea
|
||||
Host oscar
|
||||
HostName oscar
|
||||
User vincent
|
||||
|
@ -47,7 +47,6 @@ glx-copy-from-front = false;
|
||||
# Useless with --glx-use-copysubbuffermesa.
|
||||
# Partially breaks --resize-damage.
|
||||
# Defaults to undefined.
|
||||
glx-swap-method = "undefined";
|
||||
|
||||
#################################
|
||||
#
|
||||
@ -57,12 +56,7 @@ glx-swap-method = "undefined";
|
||||
|
||||
# Enabled client-side shadows on windows.
|
||||
shadow = true;
|
||||
# Don't draw shadows on DND windows.
|
||||
no-dnd-shadow = true;
|
||||
# Avoid drawing shadows on dock/panel windows.
|
||||
no-dock-shadow = true;
|
||||
# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.
|
||||
clear-shadow = true;
|
||||
# The blur radius for shadows. (default 12)
|
||||
shadow-radius = 5;
|
||||
# The left offset for shadows. (default -15)
|
||||
@ -109,12 +103,10 @@ shadow-ignore-shaped = false;
|
||||
#
|
||||
#################################
|
||||
|
||||
menu-opacity = 1;
|
||||
inactive-opacity = 1;
|
||||
active-opacity = 1;
|
||||
frame-opacity = 1;
|
||||
inactive-opacity-override = false;
|
||||
alpha-step = 0.06;
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0)
|
||||
# inactive-dim = 0.2;
|
||||
@ -184,13 +176,12 @@ refresh-rate = 0;
|
||||
# opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental.
|
||||
# opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use.
|
||||
# (Note some VSync methods may not be enabled at compile time.)
|
||||
vsync = "opengl-swc";
|
||||
vsync = true;
|
||||
|
||||
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
|
||||
# Reported to have no effect, though.
|
||||
dbe = false;
|
||||
# Painting on X Composite overlay window. Recommended.
|
||||
paint-on-overlay = true;
|
||||
|
||||
# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.
|
||||
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
|
||||
@ -218,7 +209,23 @@ detect-client-leader = true;
|
||||
#################################
|
||||
|
||||
wintypes:
|
||||
{
|
||||
{
|
||||
popup_menu=
|
||||
{
|
||||
opacity = 1;
|
||||
}
|
||||
dropdown_menu =
|
||||
{
|
||||
opacity = 1;
|
||||
}
|
||||
dock =
|
||||
{
|
||||
shadow = false;
|
||||
}
|
||||
dnd =
|
||||
{
|
||||
shadow = false;
|
||||
}
|
||||
tooltip =
|
||||
{
|
||||
# fade: Fade the particular type of windows.
|
@ -14,7 +14,7 @@ nvidia-settings --load-config-only &
|
||||
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
|
||||
export SSH_AUTH_SOCK
|
||||
numlockx &
|
||||
compton -b &
|
||||
picom -b &
|
||||
#config pad
|
||||
xinput set-prop 13 323 1 &
|
||||
xinput set-prop 13 307 1 &
|
||||
|
1
zsh/.oh-my-zsh/.gitignore
vendored
1
zsh/.oh-my-zsh/.gitignore
vendored
@ -5,3 +5,4 @@ custom/
|
||||
cache/
|
||||
log/
|
||||
*.swp
|
||||
.DS_Store
|
||||
|
@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2009-2019 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/contributors)
|
||||
Copyright (c) 2009-2020 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/contributors)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -2,9 +2,6 @@
|
||||
<img src="https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png" alt="Oh My Zsh">
|
||||
</p>
|
||||
|
||||
[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
|
||||
[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
|
||||
|
||||
Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
|
||||
|
||||
Sounds boring. Let's try again.
|
||||
@ -15,7 +12,11 @@ Once installed, your terminal shell will become the talk of the town _or your mo
|
||||
|
||||
Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬
|
||||
|
||||
To learn more, visit [ohmyz.sh](https://ohmyz.sh) and follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
|
||||
To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and/or join us on Discord.
|
||||
|
||||
![Check Suite](https://github.com/ohmyzsh/ohmyzsh/workflows/Check%20Suite/badge.svg)
|
||||
[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
|
||||
[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
|
||||
|
||||
## Getting Started
|
||||
|
||||
|
@ -24,7 +24,7 @@ function clipcopy() {
|
||||
else
|
||||
cat $file | pbcopy
|
||||
fi
|
||||
elif [[ $OSTYPE == cygwin* ]]; then
|
||||
elif [[ $OSTYPE == (cygwin|msys)* ]]; then
|
||||
if [[ -z $file ]]; then
|
||||
cat > /dev/clipboard
|
||||
else
|
||||
@ -71,7 +71,7 @@ function clippaste() {
|
||||
emulate -L zsh
|
||||
if [[ $OSTYPE == darwin* ]]; then
|
||||
pbpaste
|
||||
elif [[ $OSTYPE == cygwin* ]]; then
|
||||
elif [[ $OSTYPE == (cygwin|msys)* ]]; then
|
||||
cat /dev/clipboard
|
||||
else
|
||||
if (( $+commands[xclip] )); then
|
||||
|
@ -32,8 +32,8 @@ fi
|
||||
is_plugin() {
|
||||
local base_dir=$1
|
||||
local name=$2
|
||||
test -f $base_dir/plugins/$name/$name.plugin.zsh \
|
||||
|| test -f $base_dir/plugins/$name/_$name
|
||||
builtin test -f $base_dir/plugins/$name/$name.plugin.zsh \
|
||||
|| builtin test -f $base_dir/plugins/$name/_$name
|
||||
}
|
||||
|
||||
# Add all defined plugins to fpath. This must be done
|
||||
|
@ -10,7 +10,8 @@ function asp() {
|
||||
return
|
||||
fi
|
||||
|
||||
local available_profiles=($(aws_profiles))
|
||||
local -a available_profiles
|
||||
available_profiles=($(aws_profiles))
|
||||
if [[ -z "${available_profiles[(r)$1]}" ]]; then
|
||||
echo "${fg[red]}Profile '$1' not found in '${AWS_CONFIG_FILE:-$HOME/.aws/config}'" >&2
|
||||
echo "Available profiles: ${(j:, :)available_profiles:-no profiles found}${reset_color}" >&2
|
||||
|
@ -17,7 +17,7 @@ EOF
|
||||
fi
|
||||
|
||||
function colored() {
|
||||
env \
|
||||
command env \
|
||||
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
|
||||
LESS_TERMCAP_md=$(printf "\e[1;31m") \
|
||||
LESS_TERMCAP_me=$(printf "\e[0m") \
|
||||
|
@ -17,10 +17,10 @@ plugins=(... colorize)
|
||||
|
||||
### Requirements
|
||||
|
||||
This plugin requires that either of the following tools be installed:
|
||||
This plugin requires that at least one of the following tools is installed:
|
||||
|
||||
* Chroma: [https://github.com/alecthomas/chroma](https://github.com/alecthomas/chroma)
|
||||
* Pygments be installed: [pygments.org](https://pygments.org/)
|
||||
* [Chroma](https://github.com/alecthomas/chroma)
|
||||
* [Pygments](https://pygments.org/download/)
|
||||
|
||||
### Colorize tool
|
||||
|
||||
@ -41,12 +41,8 @@ ZSH_COLORIZE_STYLE="colorful"
|
||||
## Usage
|
||||
|
||||
* `ccat <file> [files]`: colorize the contents of the file (or files, if more than one are provided).
|
||||
If no arguments are passed it will colorize the standard input or stdin.
|
||||
If no files are passed it will colorize the standard input.
|
||||
|
||||
* `cless <file> [files]`: colorize the contents of the file (or files, if more than one are provided) and
|
||||
open less. If no arguments are passed it will colorize the standard input or stdin.
|
||||
|
||||
Note that `cless` will behave as less when provided more than one file: you have to navigate files with
|
||||
the commands `:n` for next and `:p` for previous. The downside is that less options are not supported.
|
||||
But you can circumvent this by either using the LESS environment variable, or by running `ccat file1 file2|less --opts`.
|
||||
In the latter form, the file contents will be concatenated and presented by less as a single file.
|
||||
* `cless [less-options] <file> [files]`: colorize the contents of the file (or files, if more than one are provided) and open less.
|
||||
If no files are passed it will colorize the standard input.
|
||||
The LESSOPEN and LESSCLOSE will be overwritten for this to work, but only in a local scope.
|
||||
|
@ -1,8 +1,11 @@
|
||||
# easier alias to use the plugin
|
||||
alias ccat='colorize_via_pygmentize'
|
||||
alias cless='colorize_via_pygmentize_less'
|
||||
# Easier alias to use the plugin
|
||||
alias ccat="colorize_cat"
|
||||
alias cless="colorize_less"
|
||||
|
||||
colorize_via_pygmentize() {
|
||||
# '$0:A' gets the absolute path of this file
|
||||
ZSH_COLORIZE_PLUGIN_PATH=$0:A
|
||||
|
||||
colorize_check_requirements() {
|
||||
local available_tools=("chroma" "pygmentize")
|
||||
|
||||
if [ -z "$ZSH_COLORIZE_TOOL" ]; then
|
||||
@ -23,6 +26,12 @@ colorize_via_pygmentize() {
|
||||
echo "Package '$ZSH_COLORIZE_TOOL' is not installed!" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
colorize_cat() {
|
||||
if ! colorize_check_requirements; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# If the environment variable ZSH_COLORIZE_STYLE
|
||||
# is set, use that theme instead. Otherwise,
|
||||
@ -32,7 +41,7 @@ colorize_via_pygmentize() {
|
||||
ZSH_COLORIZE_STYLE="emacs"
|
||||
fi
|
||||
|
||||
# pygmentize stdin if no arguments passed
|
||||
# Use stdin if no arguments have been passed.
|
||||
if [ $# -eq 0 ]; then
|
||||
if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then
|
||||
pygmentize -O style="$ZSH_COLORIZE_STYLE" -g
|
||||
@ -42,12 +51,9 @@ colorize_via_pygmentize() {
|
||||
return $?
|
||||
fi
|
||||
|
||||
# guess lexer from file extension, or
|
||||
# guess it from file contents if unsuccessful
|
||||
|
||||
# Guess lexer from file extension, or guess it from file contents if unsuccessful.
|
||||
local FNAME lexer
|
||||
for FNAME in "$@"
|
||||
do
|
||||
for FNAME in "$@"; do
|
||||
if [[ "$ZSH_COLORIZE_TOOL" == "pygmentize" ]]; then
|
||||
lexer=$(pygmentize -N "$FNAME")
|
||||
if [[ $lexer != text ]]; then
|
||||
@ -61,22 +67,47 @@ colorize_via_pygmentize() {
|
||||
done
|
||||
}
|
||||
|
||||
colorize_via_pygmentize_less() (
|
||||
# this function is a subshell so tmp_files can be shared to cleanup function
|
||||
declare -a tmp_files
|
||||
# The less option 'F - Forward forever; like "tail -f".' will not work in this implementation
|
||||
# caused by the lack of the ability to follow the file within pygmentize.
|
||||
colorize_less() {
|
||||
if ! colorize_check_requirements; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
cleanup () {
|
||||
[[ ${#tmp_files} -gt 0 ]] && rm -f "${tmp_files[@]}"
|
||||
exit
|
||||
_cless() {
|
||||
# LESS="-R $LESS" enables raw ANSI colors, while maintain already set options.
|
||||
local LESS="-R $LESS"
|
||||
|
||||
# This variable tells less to pipe every file through the specified command
|
||||
# (see the man page of less INPUT PREPROCESSOR).
|
||||
# 'zsh -ic "colorize_cat %s 2> /dev/null"' would not work for huge files like
|
||||
# the ~/.zsh_history. For such files the tty of the preprocessor will be supended.
|
||||
# Therefore we must source this file to make colorize_cat available in the
|
||||
# preprocessor without the interactive mode.
|
||||
# `2>/dev/null` will suppress the error for large files 'broken pipe' of the python
|
||||
# script pygmentize, which will show up if less has not fully "loaded the file"
|
||||
# (e.g. when not scrolled to the bottom) while already the next file will be displayed.
|
||||
local LESSOPEN="| zsh -c 'source \"$ZSH_COLORIZE_PLUGIN_PATH\"; \
|
||||
ZSH_COLORIZE_TOOL=$ZSH_COLORIZE_TOOL ZSH_COLORIZE_STYLE=$ZSH_COLORIZE_STYLE \
|
||||
colorize_cat %s 2> /dev/null'"
|
||||
|
||||
# LESSCLOSE will be set to prevent any errors by executing a user script
|
||||
# which assumes that his LESSOPEN has been executed.
|
||||
local LESSCLOSE=""
|
||||
|
||||
LESS="$LESS" LESSOPEN="$LESSOPEN" LESSCLOSE="$LESSCLOSE" less "$@"
|
||||
}
|
||||
trap 'cleanup' EXIT HUP TERM INT
|
||||
|
||||
while (( $# != 0 )); do #TODO: filter out less opts
|
||||
tmp_file="$(mktemp -t "tmp.colorize.XXXX.$(sed 's/\//./g' <<< "$1")")"
|
||||
tmp_files+=("$tmp_file")
|
||||
colorize_via_pygmentize "$1" > "$tmp_file"
|
||||
shift 1
|
||||
done
|
||||
|
||||
less -f "${tmp_files[@]}"
|
||||
)
|
||||
if [ -t 0 ]; then
|
||||
_cless "$@"
|
||||
else
|
||||
# The input is not associated with a terminal, therefore colorize_cat will
|
||||
# colorize this input and pass it to less.
|
||||
# Less has now to decide what to use. If any files have been provided, less
|
||||
# will ignore the input by default, otherwise the colorized input will be used.
|
||||
# If files have been supplied and the input has been redirected, this will
|
||||
# lead to unnecessary overhead, but retains the ability to use the less options
|
||||
# without checking for them inside this script.
|
||||
colorize_cat | _cless "$@"
|
||||
fi
|
||||
}
|
||||
|
@ -25,6 +25,8 @@ plugins=(... extract)
|
||||
| `gz` | Gzip file |
|
||||
| `ipsw` | iOS firmware file |
|
||||
| `jar` | Java Archive |
|
||||
| `lrz` | LRZ archive |
|
||||
| `lz4` | LZ4 archive |
|
||||
| `lzma` | LZMA archive |
|
||||
| `rar` | WinRAR archive |
|
||||
| `rpm` | RPM package |
|
||||
@ -32,7 +34,9 @@ plugins=(... extract)
|
||||
| `tar` | Tarball |
|
||||
| `tar.bz2` | Tarball with bzip2 compression |
|
||||
| `tar.gz` | Tarball with gzip compression |
|
||||
| `tar.lrz` | Tarball with lrzip compression |
|
||||
| `tar.lz` | Tarball with lzip compression |
|
||||
| `tar.lz4` | Tarball with lz4 compression |
|
||||
| `tar.xz` | Tarball with lzma2 compression |
|
||||
| `tar.zma` | Tarball with lzma compression |
|
||||
| `tar.zst` | Tarball with zstd compression |
|
||||
|
@ -3,5 +3,5 @@
|
||||
|
||||
_arguments \
|
||||
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
|
||||
"*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lz|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
|
||||
"*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|deb|gz|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \
|
||||
&& return 0
|
||||
|
@ -46,9 +46,13 @@ extract() {
|
||||
|| zstdcat "$1" | tar xvf - ;;
|
||||
(*.tar) tar xvf "$1" ;;
|
||||
(*.tar.lz) (( $+commands[lzip] )) && tar xvf "$1" ;;
|
||||
(*.tar.lz4) lz4 -c -d "$1" | tar xvf - ;;
|
||||
(*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$1" ;;
|
||||
(*.gz) (( $+commands[pigz] )) && pigz -dk "$1" || gunzip -k "$1" ;;
|
||||
(*.bz2) bunzip2 "$1" ;;
|
||||
(*.xz) unxz "$1" ;;
|
||||
(*.lrz) (( $+commands[lrunzip] )) && lrunzip "$1" ;;
|
||||
(*.lz4) lz4 -d "$1" ;;
|
||||
(*.lzma) unlzma "$1" ;;
|
||||
(*.z) uncompress "$1" ;;
|
||||
(*.zip|*.war|*.jar|*.sublime-package|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$1" -d $extract_dir ;;
|
||||
|
@ -1,15 +1,5 @@
|
||||
################################################################################
|
||||
# FILE: fastfile.plugin.zsh
|
||||
# DESCRIPTION: oh-my-zsh plugin file.
|
||||
# AUTHOR: Michael Varner (musikmichael@web.de)
|
||||
# VERSION: 1.0.0
|
||||
#
|
||||
# This plugin adds the ability to on the fly generate and access file shortcuts.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
###########################
|
||||
# Settings
|
||||
# Settings
|
||||
|
||||
# These can be overwritten any time.
|
||||
# If they are not set yet, they will be
|
||||
@ -33,7 +23,7 @@ default fastfile_var_prefix "§"
|
||||
function fastfile() {
|
||||
test "$2" || 2="."
|
||||
file=$(readlink -f "$2")
|
||||
|
||||
|
||||
test "$1" || 1="$(basename "$file")"
|
||||
name=$(echo "$1" | tr " " "_")
|
||||
|
||||
@ -51,7 +41,7 @@ function fastfile() {
|
||||
# Arguments:
|
||||
# 1. name - The name of the shortcut
|
||||
# STDOUT:
|
||||
# The path
|
||||
# The path to the shortcut file
|
||||
#
|
||||
function fastfile_resolv() {
|
||||
echo "${fastfile_dir}${1}"
|
||||
@ -88,12 +78,12 @@ function fastfile_print() {
|
||||
# (=> fastfle_print) for each shortcut
|
||||
#
|
||||
function fastfile_ls() {
|
||||
for f in "${fastfile_dir}"/*; do
|
||||
file=`basename "$f"` # To enable simpler handeling of spaces in file names
|
||||
varkey=`echo "$file" | tr " " "_"`
|
||||
for f in "${fastfile_dir}"/*; do
|
||||
file=`basename "$f"` # To enable simpler handeling of spaces in file names
|
||||
varkey=`echo "$file" | tr " " "_"`
|
||||
|
||||
# Special format for colums
|
||||
echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")"
|
||||
# Special format for colums
|
||||
echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")"
|
||||
done | column -t -s "|"
|
||||
}
|
||||
|
||||
@ -102,7 +92,6 @@ function fastfile_ls() {
|
||||
#
|
||||
# Arguments:
|
||||
# 1. name - The name of the shortcut (default: name of the file)
|
||||
# 2. file - The file or directory to make the shortcut for
|
||||
# STDOUT:
|
||||
# => fastfle_print
|
||||
#
|
||||
@ -115,11 +104,11 @@ function fastfile_rm() {
|
||||
# Generate the aliases for the shortcuts
|
||||
#
|
||||
function fastfile_sync() {
|
||||
for f in "${fastfile_dir}"/*; do
|
||||
file=`basename "$f"` # To enable simpler handeling of spaces in file names
|
||||
varkey=`echo "$file" | tr " " "_"`
|
||||
for f in "${fastfile_dir}"/*; do
|
||||
file=`basename "$f"` # To enable simpler handeling of spaces in file names
|
||||
varkey=`echo "$file" | tr " " "_"`
|
||||
|
||||
alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'"
|
||||
alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'"
|
||||
done
|
||||
}
|
||||
|
||||
@ -133,6 +122,6 @@ alias ffls=fastfile_ls
|
||||
alias ffsync=fastfile_sync
|
||||
|
||||
##################################
|
||||
# Init
|
||||
# Init
|
||||
|
||||
fastfile_sync
|
||||
fastfile_sync
|
||||
|
@ -1,22 +0,0 @@
|
||||
# FirewallD Plugin
|
||||
|
||||
This plugin adds some aliases and functions for FirewallD using the `firewalld-cmd` command. To use it, add firewalld to your plugins array.
|
||||
|
||||
```zsh
|
||||
plugins=(... firewalld)
|
||||
```
|
||||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command | Description |
|
||||
| :---- | :----------------------------------------- | :--------------------------- |
|
||||
| fw | `sudo firewall-cmd` | Shorthand |
|
||||
| fwr | `sudo firewall-cmd --reload` | Reload current configuration |
|
||||
| fwp | `sudo firewall-cmd --permanent` | Create permanent rule |
|
||||
| fwrp | `sudo firewall-cmd --runtime-to-permanent` | Save current configuration |
|
||||
|
||||
## Functions
|
||||
|
||||
| Function | Description |
|
||||
| :------- | :--------------------------------------------------------- |
|
||||
| fwl | Lists configuration from all active zones and direct rules |
|
@ -1,3 +0,0 @@
|
||||
# if there is a user named 'glassfish' on the system, we'll assume
|
||||
# that is the user asadmin should be run as
|
||||
# grep -e '^glassfish' /etc/passwd > /dev/null && alias asadmin='sudo -u glassfish asadmin'
|
@ -5,79 +5,79 @@
|
||||
# VERSION: 1.0.0
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
|
||||
if [[ -x "${commands[gwhoami]}" ]]; then
|
||||
__gnu_utils() {
|
||||
emulate -L zsh
|
||||
local gcmds
|
||||
local gcmd
|
||||
local cmd
|
||||
local prefix
|
||||
|
||||
# coreutils
|
||||
gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod'
|
||||
'gchown' 'gchroot' 'gcksum' 'gcomm' 'gcp' 'gcsplit' 'gcut' 'gdate'
|
||||
'gdd' 'gdf' 'gdir' 'gdircolors' 'gdirname' 'gdu' 'gecho' 'genv' 'gexpand'
|
||||
'gexpr' 'gfactor' 'gfalse' 'gfmt' 'gfold' 'ggroups' 'ghead' 'ghostid'
|
||||
'gid' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum'
|
||||
'gmkdir' 'gmkfifo' 'gmknod' 'gmktemp' 'gmv' 'gnice' 'gnl' 'gnohup' 'gnproc'
|
||||
'god' 'gpaste' 'gpathchk' 'gpinky' 'gpr' 'gprintenv' 'gprintf' 'gptx' 'gpwd'
|
||||
'greadlink' 'grm' 'grmdir' 'gruncon' 'gseq' 'gsha1sum' 'gsha224sum'
|
||||
'gsha256sum' 'gsha384sum' 'gsha512sum' 'gshred' 'gshuf' 'gsleep' 'gsort'
|
||||
'gsplit' 'gstat' 'gstty' 'gsum' 'gsync' 'gtac' 'gtail' 'gtee' 'gtest'
|
||||
'gtimeout' 'gtouch' 'gtr' 'gtrue' 'gtruncate' 'gtsort' 'gtty' 'guname'
|
||||
'gunexpand' 'guniq' 'gunlink' 'guptime' 'gusers' 'gvdir' 'gwc' 'gwho'
|
||||
'gwhoami' 'gyes')
|
||||
|
||||
# findutils
|
||||
gcmds+=('gfind' 'gxargs' 'glocate')
|
||||
|
||||
# Not part of either coreutils or findutils, installed separately.
|
||||
gcmds+=('gsed' 'gtar' 'gtime')
|
||||
|
||||
for gcmd in "${gcmds[@]}"; do
|
||||
#
|
||||
# This method allows for builtin commands to be primary but it's
|
||||
# lost if hash -r or rehash -f is executed. Thus, those two
|
||||
# functions have to be wrapped.
|
||||
#
|
||||
(( ${+commands[$gcmd]} )) && hash ${gcmd[2,-1]}=${commands[$gcmd]}
|
||||
|
||||
#
|
||||
# This method generates wrapper functions.
|
||||
# It will override shell builtins.
|
||||
#
|
||||
# (( ${+commands[$gcmd]} )) && \
|
||||
# eval "function $gcmd[2,-1]() { \"${prefix}/${gcmd//"["/"\\["}\" \"\$@\"; }"
|
||||
|
||||
#
|
||||
# This method is inflexible since the aliases are at risk of being
|
||||
# overridden resulting in the BSD coreutils being called.
|
||||
#
|
||||
# (( ${+commands[$gcmd]} )) && \
|
||||
# alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}"
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
__gnu_utils;
|
||||
|
||||
function hash() {
|
||||
if [[ "$*" =~ "-(r|f)" ]]; then
|
||||
builtin hash "$@"
|
||||
__gnu_utils
|
||||
else
|
||||
builtin hash "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
function rehash() {
|
||||
if [[ "$*" =~ "-f" ]]; then
|
||||
builtin rehash "$@"
|
||||
__gnu_utils
|
||||
else
|
||||
builtin rehash "$@"
|
||||
fi
|
||||
}
|
||||
# Detect if GNU coreutils are installed by looking for gwhoami
|
||||
if [[ ! -x "${commands[gwhoami]}" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
__gnu_utils() {
|
||||
emulate -L zsh
|
||||
local gcmds
|
||||
local gcmd
|
||||
local cmd
|
||||
local prefix
|
||||
|
||||
# coreutils
|
||||
gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod'
|
||||
'gchown' 'gchroot' 'gcksum' 'gcomm' 'gcp' 'gcsplit' 'gcut' 'gdate'
|
||||
'gdd' 'gdf' 'gdir' 'gdircolors' 'gdirname' 'gdu' 'gecho' 'genv' 'gexpand'
|
||||
'gexpr' 'gfactor' 'gfalse' 'gfmt' 'gfold' 'ggroups' 'ghead' 'ghostid'
|
||||
'gid' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum'
|
||||
'gmkdir' 'gmkfifo' 'gmknod' 'gmktemp' 'gmv' 'gnice' 'gnl' 'gnohup' 'gnproc'
|
||||
'god' 'gpaste' 'gpathchk' 'gpinky' 'gpr' 'gprintenv' 'gprintf' 'gptx' 'gpwd'
|
||||
'greadlink' 'grm' 'grmdir' 'gruncon' 'gseq' 'gsha1sum' 'gsha224sum'
|
||||
'gsha256sum' 'gsha384sum' 'gsha512sum' 'gshred' 'gshuf' 'gsleep' 'gsort'
|
||||
'gsplit' 'gstat' 'gstty' 'gsum' 'gsync' 'gtac' 'gtail' 'gtee' 'gtest'
|
||||
'gtimeout' 'gtouch' 'gtr' 'gtrue' 'gtruncate' 'gtsort' 'gtty' 'guname'
|
||||
'gunexpand' 'guniq' 'gunlink' 'guptime' 'gusers' 'gvdir' 'gwc' 'gwho'
|
||||
'gwhoami' 'gyes')
|
||||
|
||||
# findutils
|
||||
gcmds+=('gfind' 'gxargs' 'glocate')
|
||||
|
||||
# Not part of either coreutils or findutils, installed separately.
|
||||
gcmds+=('gsed' 'gtar' 'gtime')
|
||||
|
||||
for gcmd in "${gcmds[@]}"; do
|
||||
# Do nothing if the command isn't found
|
||||
(( ${+commands[$gcmd]} )) || continue
|
||||
|
||||
# This method allows for builtin commands to be primary but it's
|
||||
# lost if hash -r or rehash -f is executed. Thus, those two
|
||||
# functions have to be wrapped.
|
||||
#
|
||||
hash ${gcmd[2,-1]}=${commands[$gcmd]}
|
||||
|
||||
# This method generates wrapper functions.
|
||||
# It will override shell builtins.
|
||||
#
|
||||
# eval "function $gcmd[2,-1]() { \"${prefix}/${gcmd//"["/"\\["}\" \"\$@\"; }"
|
||||
|
||||
# This method is inflexible since the aliases are at risk of being
|
||||
# overridden resulting in the BSD coreutils being called.
|
||||
#
|
||||
# alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}"
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
__gnu_utils
|
||||
|
||||
function hash() {
|
||||
if [[ "$*" =~ "-(r|f)" ]]; then
|
||||
builtin hash "$@"
|
||||
__gnu_utils
|
||||
else
|
||||
builtin hash "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
function rehash() {
|
||||
if [[ "$*" =~ "-f" ]]; then
|
||||
builtin rehash "$@"
|
||||
__gnu_utils
|
||||
else
|
||||
builtin rehash "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -3,13 +3,13 @@
|
||||
# You can override the path to knife.rb and your cookbooks by setting
|
||||
# KNIFE_CONF_PATH=/path/to/my/.chef/knife.rb
|
||||
# KNIFE_COOKBOOK_PATH=/path/to/my/chef/cookbooks
|
||||
# If you want your local cookbooks path to be calculated relative to where you are then
|
||||
# If you want your local cookbooks path to be calculated relative to where you are then
|
||||
# set the below option
|
||||
# KNIFE_RELATIVE_PATH=true
|
||||
# KNIFE_RELATIVE_PATH=true
|
||||
# Read around where these are used for more detail.
|
||||
|
||||
# These flags should be available everywhere according to man knife
|
||||
knife_general_flags=( --help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes )
|
||||
knife_general_flags=(--help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes)
|
||||
|
||||
# knife has a very special syntax, some example calls are:
|
||||
# knife status
|
||||
@ -25,183 +25,191 @@ _knife() {
|
||||
typeset -A opt_args
|
||||
cloudproviders=(bluebox ec2 rackspace slicehost terremark)
|
||||
_arguments \
|
||||
'1: :->knifecmd'\
|
||||
'2: :->knifesubcmd'\
|
||||
'1: :->knifecmd' \
|
||||
'2: :->knifesubcmd' \
|
||||
'3: :->knifesubcmd2' \
|
||||
'4: :->knifesubcmd3' \
|
||||
'5: :->knifesubcmd4' \
|
||||
'6: :->knifesubcmd5'
|
||||
|
||||
|
||||
case $state in
|
||||
knifecmd)
|
||||
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment index node recipe role search ssh status upload vault windows $cloudproviders
|
||||
;;
|
||||
;;
|
||||
knifesubcmd)
|
||||
case $words[2] in
|
||||
(bluebox|ec2|rackspace|slicehost|terremark)
|
||||
bluebox|ec2|rackspace|slicehost|terremark)
|
||||
compadd "$@" server images
|
||||
;;
|
||||
;;
|
||||
client)
|
||||
compadd -Q "$@" "bulk delete" list create show delete edit reregister
|
||||
;;
|
||||
;;
|
||||
configure)
|
||||
compadd "$@" client
|
||||
;;
|
||||
;;
|
||||
cookbook)
|
||||
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
|
||||
;;
|
||||
;;
|
||||
diff)
|
||||
_arguments '*:file or directory:_files -g "*"'
|
||||
;;
|
||||
;;
|
||||
environment)
|
||||
compadd -Q "$@" list create delete edit show "from file"
|
||||
;;
|
||||
;;
|
||||
node)
|
||||
compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
|
||||
;;
|
||||
compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
|
||||
;;
|
||||
recipe)
|
||||
compadd "$@" list
|
||||
;;
|
||||
compadd "$@" list
|
||||
;;
|
||||
role)
|
||||
compadd -Q "$@" "bulk delete" create delete edit "from file" list show
|
||||
;;
|
||||
;;
|
||||
upload)
|
||||
_arguments '*:file or directory:_files -g "*"'
|
||||
;;
|
||||
_arguments '*:file or directory:_files -g "*"'
|
||||
;;
|
||||
vault)
|
||||
compadd -Q "$@" create decrypt delete edit remove "rotate all keys" "rotate keys" show update
|
||||
;;
|
||||
;;
|
||||
windows)
|
||||
compadd "$@" bootstrap
|
||||
;;
|
||||
;;
|
||||
*)
|
||||
_arguments '2:Subsubcommands:($(_knife_options1))'
|
||||
_arguments '2:Subsubcommands:($(_knife_options1))'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
knifesubcmd2)
|
||||
;;
|
||||
knifesubcmd2)
|
||||
case $words[3] in
|
||||
server)
|
||||
server)
|
||||
compadd "$@" list create delete
|
||||
;;
|
||||
images)
|
||||
;;
|
||||
images)
|
||||
compadd "$@" list
|
||||
;;
|
||||
site)
|
||||
;;
|
||||
site)
|
||||
compadd "$@" vendor show share search download list unshare
|
||||
;;
|
||||
(show|delete|edit)
|
||||
_arguments '3:Subsubcommands:($(_chef_$words[2]s_remote))'
|
||||
;;
|
||||
(upload|test)
|
||||
_arguments '3:Subsubcommands:($(_chef_$words[2]s_local) --all)'
|
||||
;;
|
||||
;;
|
||||
show|delete|edit)
|
||||
_arguments '3:Subsubcommands:($(_chef_$words[2]s_remote))'
|
||||
;;
|
||||
upload|test)
|
||||
_arguments '3:Subsubcommands:($(_chef_$words[2]s_local) --all)'
|
||||
;;
|
||||
list)
|
||||
compadd -a "$@" knife_general_flags
|
||||
;;
|
||||
compadd -a "$@" knife_general_flags
|
||||
;;
|
||||
bag)
|
||||
compadd -Q "$@" show edit list "from file" create delete
|
||||
;;
|
||||
;;
|
||||
*)
|
||||
_arguments '3:Subsubcommands:($(_knife_options2))'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
knifesubcmd3)
|
||||
case $words[3] in
|
||||
show)
|
||||
case $words[2] in
|
||||
cookbook)
|
||||
versioncomp=1
|
||||
_arguments '4:Cookbookversions:($(_cookbook_versions) latest)'
|
||||
;;
|
||||
(node|client|role)
|
||||
compadd "$@" --attribute
|
||||
esac
|
||||
esac
|
||||
case $words[4] in
|
||||
(show|edit)
|
||||
_arguments '4:Subsubsubcommands:($(_chef_$words[2]_$words[3]s_remote))'
|
||||
;;
|
||||
file)
|
||||
knifesubcmd3)
|
||||
case $words[3] in
|
||||
show)
|
||||
case $words[2] in
|
||||
cookbook)
|
||||
versioncomp=1
|
||||
_arguments '4:Cookbookversions:($(_cookbook_versions) latest)'
|
||||
;;
|
||||
node|client|role)
|
||||
compadd "$@" --attribute
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case $words[4] in
|
||||
show|edit)
|
||||
_arguments '4:Subsubsubcommands:($(_chef_$words[2]_$words[3]s_remote))'
|
||||
;;
|
||||
file)
|
||||
case $words[2] in
|
||||
environment)
|
||||
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_chef_root)/environments"'
|
||||
;;
|
||||
;;
|
||||
node)
|
||||
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_chef_root)/nodes"'
|
||||
;;
|
||||
;;
|
||||
role)
|
||||
_arguments '*:files:_path_files -g "*.(rb|json)" -W "$(_chef_root)/roles"'
|
||||
;;
|
||||
;;
|
||||
*)
|
||||
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||
esac
|
||||
;;
|
||||
list)
|
||||
compadd -a "$@" knife_general_flags
|
||||
;;
|
||||
*)
|
||||
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
list)
|
||||
compadd -a "$@" knife_general_flags
|
||||
;;
|
||||
*)
|
||||
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
knifesubcmd4)
|
||||
if (( versioncomp > 0 )); then
|
||||
compadd "$@" attributes definitions files libraries providers recipes resources templates
|
||||
else
|
||||
case $words[5] in
|
||||
file)
|
||||
_arguments '*:directory:_path_files -/ -W "$(_chef_root)/data_bags" -qS \ '
|
||||
knifesubcmd4)
|
||||
if ((versioncomp > 0)); then
|
||||
compadd "$@" attributes definitions files libraries providers recipes resources templates
|
||||
else
|
||||
case $words[5] in
|
||||
file)
|
||||
_arguments '*:directory:_path_files -/ -W "$(_chef_root)/data_bags" -qS \ '
|
||||
;;
|
||||
*) _arguments '*:Subsubcommands:($(_knife_options2))'
|
||||
*) _arguments '*:Subsubcommands:($(_knife_options2))' ;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
knifesubcmd5)
|
||||
case $words[5] in
|
||||
file)
|
||||
_arguments '*:files:_path_files -g "*.json" -W "$(_chef_root)/data_bags/$words[6]"'
|
||||
;;
|
||||
*)
|
||||
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||
esac
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
knifesubcmd5)
|
||||
case $words[5] in
|
||||
file)
|
||||
_arguments '*:files:_path_files -g "*.json" -W "$(_chef_root)/data_bags/$words[6]"'
|
||||
;;
|
||||
*)
|
||||
_arguments '*:Subsubcommands:($(_knife_options3))'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Helper functions to provide the argument completion for several depths of commands
|
||||
_knife_options1() {
|
||||
( for line in $( knife $words[2] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done )
|
||||
(for line in $(knife $words[2] --help | grep -v "^knife"); do echo $line | grep "\-\-"; done)
|
||||
}
|
||||
|
||||
_knife_options2() {
|
||||
( for line in $( knife $words[2] $words[3] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done )
|
||||
(for line in $(knife $words[2] $words[3] --help | grep -v "^knife"); do echo $line | grep "\-\-"; done)
|
||||
}
|
||||
|
||||
_knife_options3() {
|
||||
( for line in $( knife $words[2] $words[3] $words[4] --help | grep -v "^knife" ); do echo $line | grep "\-\-"; done )
|
||||
(for line in $(knife $words[2] $words[3] $words[4] --help | grep -v "^knife"); do echo $line | grep "\-\-"; done)
|
||||
}
|
||||
|
||||
# The chef_x_remote functions use knife to get a list of objects of type x on the server
|
||||
_chef_roles_remote() {
|
||||
(knife role list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
(knife role list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
}
|
||||
|
||||
_chef_clients_remote() {
|
||||
(knife client list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
(knife client list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
}
|
||||
|
||||
_chef_nodes_remote() {
|
||||
(knife node list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
(knife node list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
}
|
||||
|
||||
_chef_cookbooks_remote() {
|
||||
(knife cookbook list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
(knife cookbook list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
}
|
||||
|
||||
_chef_sitecookbooks_remote() {
|
||||
(knife cookbook site list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
(knife cookbook site list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
}
|
||||
|
||||
_chef_data_bags_remote() {
|
||||
(knife data bag list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
(knife data bag list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
|
||||
}
|
||||
|
||||
_chef_environments_remote() {
|
||||
@ -210,14 +218,14 @@ _chef_environments_remote() {
|
||||
|
||||
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
|
||||
_chef_cookbooks_local() {
|
||||
if [ $KNIFE_RELATIVE_PATH ]; then
|
||||
if [ $KNIFE_RELATIVE_PATH ]; then
|
||||
local cookbook_path="$(_chef_root)/cookbooks"
|
||||
else
|
||||
else
|
||||
local knife_rb=${KNIFE_CONF_PATH:-${HOME}/.chef/knife.rb}
|
||||
if [ -f ./.chef/knife.rb ]; then
|
||||
knife_rb="./.chef/knife.rb"
|
||||
fi
|
||||
local cookbook_path=${KNIFE_COOKBOOK_PATH:-$(grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' )}
|
||||
local cookbook_path=${KNIFE_COOKBOOK_PATH:-$(grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/')}
|
||||
fi
|
||||
(for i in $cookbook_path; do ls $i; done)
|
||||
}
|
||||
@ -227,12 +235,11 @@ _cookbook_versions() {
|
||||
(knife cookbook show $words[4] | grep -v $words[4] | grep -v -E '\]|\[|\{|\}' | sed 's/ //g' | sed 's/"//g')
|
||||
}
|
||||
|
||||
# Searches up from current directory to find the closest folder that has a .chef folder
|
||||
# Useful for the knife upload/from file commands
|
||||
_chef_root () {
|
||||
# Searches up from current directory to find the closest folder that has a .chef folder
|
||||
# Useful for the knife upload/from file commands
|
||||
_chef_root() {
|
||||
directory="$PWD"
|
||||
while [ $directory != '/' ]
|
||||
do
|
||||
while [ $directory != '/' ]; do
|
||||
test -e "$directory/.chef" && echo "$directory" && return
|
||||
directory="${directory:h}"
|
||||
done
|
||||
|
@ -1,17 +1,17 @@
|
||||
function knife_ssh() {
|
||||
grep -q $1 ~/.knife_comp~ 2> /dev/null || rm -f ~/.knife_comp~;
|
||||
grep -q $1 ~/.knife_comp~ 2> /dev/null || rm -f ~/.knife_comp~
|
||||
ssh $(knife node show $1 | awk '/IP:/{print $2}')
|
||||
}
|
||||
|
||||
_knife_ssh() {
|
||||
if hash knife 2>/dev/null; then
|
||||
if [[ ! -f ~/.knife_comp~ ]]; then
|
||||
echo "\nGenerating ~/.knife_comp~..." >/dev/stderr
|
||||
echo "\nGenerating ~/.knife_comp~..." >&2
|
||||
knife node list > ~/.knife_comp~
|
||||
fi
|
||||
compadd $(<~/.knife_comp~)
|
||||
compadd $(< ~/.knife_comp~)
|
||||
else
|
||||
echo "Could not find knife" > /dev/stderr;
|
||||
echo "Could not find knife" >&2
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@ alias kdelf='kubectl delete -f'
|
||||
|
||||
# Pod management.
|
||||
alias kgp='kubectl get pods'
|
||||
alias kgpa='kubectl get pods --all-namespaces'
|
||||
alias kgpw='kgp --watch'
|
||||
alias kgpwide='kgp -o wide'
|
||||
alias kep='kubectl edit pods'
|
||||
@ -48,6 +49,7 @@ alias kgpl='kgp -l'
|
||||
|
||||
# Service management.
|
||||
alias kgs='kubectl get svc'
|
||||
alias kgsa='kubectl get svc --all-namespaces'
|
||||
alias kgsw='kgs --watch'
|
||||
alias kgswide='kgs -o wide'
|
||||
alias kes='kubectl edit svc'
|
||||
@ -56,6 +58,7 @@ alias kdels='kubectl delete svc'
|
||||
|
||||
# Ingress management
|
||||
alias kgi='kubectl get ingress'
|
||||
alias kgia='kubectl get ingress --all-namespaces'
|
||||
alias kei='kubectl edit ingress'
|
||||
alias kdi='kubectl describe ingress'
|
||||
alias kdeli='kubectl delete ingress'
|
||||
@ -69,17 +72,20 @@ alias kcn='kubectl config set-context $(kubectl config current-context) --namesp
|
||||
|
||||
# ConfigMap management
|
||||
alias kgcm='kubectl get configmaps'
|
||||
alias kgcma='kubectl get configmaps --all-namespaces'
|
||||
alias kecm='kubectl edit configmap'
|
||||
alias kdcm='kubectl describe configmap'
|
||||
alias kdelcm='kubectl delete configmap'
|
||||
|
||||
# Secret management
|
||||
alias kgsec='kubectl get secret'
|
||||
alias kgseca='kubectl get secret --all-namespaces'
|
||||
alias kdsec='kubectl describe secret'
|
||||
alias kdelsec='kubectl delete secret'
|
||||
|
||||
# Deployment management.
|
||||
alias kgd='kubectl get deployment'
|
||||
alias kgda='kubectl get deployment --all-namespaces'
|
||||
alias kgdw='kgd --watch'
|
||||
alias kgdwide='kgd -o wide'
|
||||
alias ked='kubectl edit deployment'
|
||||
@ -98,6 +104,7 @@ alias kru='kubectl rollout undo'
|
||||
|
||||
# Statefulset management.
|
||||
alias kgss='kubectl get statefulset'
|
||||
alias kgssa='kubectl get statefulset --all-namespaces'
|
||||
alias kgssw='kgss --watch'
|
||||
alias kgsswide='kgss -o wide'
|
||||
alias kess='kubectl edit statefulset'
|
||||
@ -115,7 +122,13 @@ alias kgaa='kubectl get all --all-namespaces'
|
||||
|
||||
# Logs
|
||||
alias kl='kubectl logs'
|
||||
alias kl1h='kubectl logs --since 1h'
|
||||
alias kl1m='kubectl logs --since 1m'
|
||||
alias kl1s='kubectl logs --since 1s'
|
||||
alias klf='kubectl logs -f'
|
||||
alias klf1h='kubectl logs --since 1h -f'
|
||||
alias klf1m='kubectl logs --since 1m -f'
|
||||
alias klf1s='kubectl logs --since 1s -f'
|
||||
|
||||
# File copy
|
||||
alias kcp='kubectl cp'
|
||||
@ -128,6 +141,7 @@ alias kdelno='kubectl delete node'
|
||||
|
||||
# PVC management.
|
||||
alias kgpvc='kubectl get pvc'
|
||||
alias kgpvca='kubectl get pvc --all-namespaces'
|
||||
alias kgpvcw='kgpvc --watch'
|
||||
alias kepvc='kubectl edit pvc'
|
||||
alias kdpvc='kubectl describe pvc'
|
||||
|
@ -29,6 +29,12 @@ plugins=(... laravel)
|
||||
| `pamc` | `php artisan make:controller` |
|
||||
| `pams` | `php artisan make:seeder` |
|
||||
| `pamt` | `php artisan make:test` |
|
||||
| `pamfa` | `php artisan make:factory` |
|
||||
| `pamp` | `php artisan make:policy` |
|
||||
| `pame` | `php artisan make:event` |
|
||||
| `pamj` | `php artisan make:job` |
|
||||
| `paml` | `php artisan make:listener` |
|
||||
| `pamn` | `php artisan make:notification` |
|
||||
|
||||
## Clears
|
||||
|
||||
@ -38,3 +44,14 @@ plugins=(... laravel)
|
||||
| `pacoc` | `php artisan config:clear` |
|
||||
| `pavic` | `php artisan view:clear` |
|
||||
| `paroc` | `php artisan route:clear` |
|
||||
|
||||
## Queues
|
||||
|
||||
| Alias | Description |
|
||||
|:-:|:-:|
|
||||
| `paqf` | `php artisan queue:failed` |
|
||||
| `paqft` | `php artisan queue:failed-table` |
|
||||
| `paql` | `php artisan queue:listen` |
|
||||
| `paqr` | `php artisan queue:retry` |
|
||||
| `paqt` | `php artisan queue:table` |
|
||||
| `paqw` | `php artisan queue:work` |
|
||||
|
@ -17,6 +17,13 @@ alias pamm='php artisan make:model'
|
||||
alias pamc='php artisan make:controller'
|
||||
alias pams='php artisan make:seeder'
|
||||
alias pamt='php artisan make:test'
|
||||
alias pamfa='php artisan make:factory'
|
||||
alias pamp='php artisan make:policy'
|
||||
alias pame='php artisan make:event'
|
||||
alias pamj='php artisan make:job'
|
||||
alias paml='php artisan make:listener'
|
||||
alias pamn='php artisan make:notification'
|
||||
alias pampp='php artisan make:provider'
|
||||
|
||||
|
||||
# Clears
|
||||
@ -24,3 +31,11 @@ alias pacac='php artisan cache:clear'
|
||||
alias pacoc='php artisan config:clear'
|
||||
alias pavic='php artisan view:clear'
|
||||
alias paroc='php artisan route:clear'
|
||||
|
||||
# queues
|
||||
alias paqf='php artisan queue:failed'
|
||||
alias paqft='php artisan queue:failed-table'
|
||||
alias paql='php artisan queue:listen'
|
||||
alias paqr='php artisan queue:retry'
|
||||
alias paqt='php artisan queue:table'
|
||||
alias paqw='php artisan queue:work'
|
||||
|
@ -61,7 +61,7 @@ Plugin for adding catspeak aliases, because why not
|
||||
| `violenz` | `git rebase` |
|
||||
| `visible` | `echo` |
|
||||
| `wtf` | `dmesg` |
|
||||
| `yolo` | `git commit -m "$(curl -s https://whatthecommit.com/index.txt)"` |
|
||||
| `yolo` | `git commit -m "$(curl -s http://whatthecommit.com/index.txt)"` |
|
||||
|
||||
## Usage Examples
|
||||
|
||||
@ -78,6 +78,6 @@ nowai u=r,go= some.file
|
||||
# ssh root@catserver.org
|
||||
pwned root@catserver.org
|
||||
|
||||
# git commit -m "$(curl -s https://whatthecommit.com/index.txt)"
|
||||
# git commit -m "$(curl -s http://whatthecommit.com/index.txt)"
|
||||
yolo
|
||||
```
|
||||
|
@ -1,17 +0,0 @@
|
||||
## Magic Enter plugin
|
||||
|
||||
This plugin makes your enter key magical, by binding commonly used commands to it.
|
||||
|
||||
To use it, add `magic-enter` to the plugins array in your zshrc file. You can set the
|
||||
commands to be run in your .zshrc, before the line containing plugins. If no command
|
||||
is specified in a git directory, `git status` is executed; in other directories, `ls`.
|
||||
|
||||
```zsh
|
||||
# defaults
|
||||
MAGIC_ENTER_GIT_COMMAND='git status -u .'
|
||||
MAGIC_ENTER_OTHER_COMMAND='ls -lh .'
|
||||
|
||||
plugins=(... magic-enter)
|
||||
```
|
||||
|
||||
**Maintainer:** [@dufferzafar](https://github.com/dufferzafar)
|
@ -148,11 +148,11 @@ if [ $# = 0 ]; then
|
||||
else
|
||||
if [ ! -d /Applications/Spotify.app ] && [ ! -d $HOME/Applications/Spotify.app ]; then
|
||||
echo "The Spotify application must be installed."
|
||||
exit 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ $(osascript -e 'application "Spotify" is running') = "false" ]; then
|
||||
osascript -e 'tell application "Spotify" to activate' || exit 1
|
||||
osascript -e 'tell application "Spotify" to activate' || return 1
|
||||
sleep 2
|
||||
fi
|
||||
fi
|
||||
@ -170,12 +170,12 @@ while [ $# -gt 0 ]; do
|
||||
if [ -z "${CLIENT_ID}" ]; then
|
||||
cecho "Invalid Client ID, please update ${USER_CONFIG_FILE}";
|
||||
showAPIHelp;
|
||||
exit 1;
|
||||
return 1
|
||||
fi
|
||||
if [ -z "${CLIENT_SECRET}" ]; then
|
||||
cecho "Invalid Client Secret, please update ${USER_CONFIG_FILE}";
|
||||
showAPIHelp;
|
||||
exit 1;
|
||||
return 1
|
||||
fi
|
||||
SHPOTIFY_CREDENTIALS=$(printf "${CLIENT_ID}:${CLIENT_SECRET}" | base64 | tr -d "\n"|tr -d '\r');
|
||||
SPOTIFY_PLAY_URI="";
|
||||
@ -194,7 +194,7 @@ while [ $# -gt 0 ]; do
|
||||
cecho "Autorization failed, please check ${USER_CONFG_FILE}"
|
||||
cecho "${SPOTIFY_TOKEN_RESPONSE_DATA}"
|
||||
showAPIHelp
|
||||
exit 1
|
||||
return 1
|
||||
fi
|
||||
SPOTIFY_ACCESS_TOKEN=$( \
|
||||
printf "${SPOTIFY_TOKEN_RESPONSE_DATA}" \
|
||||
@ -307,7 +307,7 @@ while [ $# -gt 0 ]; do
|
||||
|
||||
"quit" ) cecho "Quitting Spotify.";
|
||||
osascript -e 'tell application "Spotify" to quit';
|
||||
exit 0 ;;
|
||||
break ;;
|
||||
|
||||
"next" ) cecho "Going to next track." ;
|
||||
osascript -e 'tell application "Spotify" to next track';
|
||||
@ -358,7 +358,7 @@ while [ $# -gt 0 ]; do
|
||||
echo " vol down # Decreases the volume by 10%.";
|
||||
echo " vol [amount] # Sets the volume to an amount between 0 and 100.";
|
||||
echo " vol # Shows the current Spotify volume.";
|
||||
exit 1;
|
||||
return 1
|
||||
fi
|
||||
|
||||
osascript -e "tell application \"Spotify\" to set sound volume to $newvol";
|
||||
@ -468,9 +468,10 @@ while [ $# -gt 0 ]; do
|
||||
"help" )
|
||||
showHelp;
|
||||
break ;;
|
||||
|
||||
* )
|
||||
showHelp;
|
||||
break;
|
||||
return 1 ;;
|
||||
|
||||
esac
|
||||
done
|
||||
|
@ -12,32 +12,23 @@ function ot () {
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ `uname` == 'Darwin' ]] then # MacOS X
|
||||
export COPY_CMD='pbcopy'
|
||||
elif command -v xsel > /dev/null 2>&1; then # Any Unix with xsel installed
|
||||
export COPY_CMD='xsel --clipboard --input'
|
||||
else
|
||||
COPY_CMD='true'
|
||||
fi
|
||||
COPY_CMD='true'
|
||||
|
||||
if [[ "x$1" == "x" ]]; then
|
||||
echo "usage: otpw <profile.name>"
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "usage: $0 <profile.name>"
|
||||
return 1
|
||||
elif [ ! -f $OTP_HOME/$1.otp.asc ]; then
|
||||
echo "missing profile $1, you might need to create it first using otp_add_device"
|
||||
return 1
|
||||
else
|
||||
totpkey=$(gpg --decrypt $OTP_HOME/$1.otp.asc)
|
||||
oathtool --totp --b $totpkey | tee /dev/stderr | `echo $COPY_CMD`
|
||||
if [[ $COPY_CMD == 'true' ]] then
|
||||
echo "Note: you might consider installing xsel for clipboard integration"
|
||||
fi
|
||||
oathtool --totp --b $totpkey | tee /dev/stderr | clipcopy
|
||||
fi
|
||||
}
|
||||
|
||||
function otp_add_device () {
|
||||
if [[ "x$1" == "x" ]] then
|
||||
echo "usage: otp_add <profile.name>"
|
||||
echo "usage: $0 <profile.name>"
|
||||
return 1
|
||||
else
|
||||
echo "Enter an email address attached to your GPG private key, then paste the secret configuration key followed by ^D"
|
||||
|
@ -1,7 +1,7 @@
|
||||
_paver_does_target_list_need_generating () {
|
||||
[ ! -f .paver_targets ] && return 0;
|
||||
[ pavement.py -nt .paver_targets ] && return 0;
|
||||
return 1;
|
||||
[ ! -f .paver_targets ] && return 0
|
||||
[ pavement.py -nt .paver_targets ] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
_paver () {
|
||||
|
@ -1,7 +1,8 @@
|
||||
# This plugin loads pyenv into the current shell and provides prompt info via
|
||||
# the 'pyenv_prompt_info' function. Also loads pyenv-virtualenv if available.
|
||||
|
||||
FOUND_PYENV=$+commands[pyenv]
|
||||
# Load pyenv only if command not already available
|
||||
command -v pyenv &> /dev/null && FOUND_PYENV=1 || FOUND_PYENV=0
|
||||
|
||||
if [[ $FOUND_PYENV -ne 1 ]]; then
|
||||
pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv" "/usr/local/opt/pyenv")
|
||||
|
@ -16,3 +16,15 @@ compdef _repo ru='repo upload'
|
||||
|
||||
alias rst='repo status'
|
||||
compdef _repo rst='repo status'
|
||||
|
||||
alias rsto='repo status -o'
|
||||
compdef _repo rsto='repo status -o'
|
||||
|
||||
alias rfa='repo forall -c'
|
||||
compdef _repo rfa='repo forall -c'
|
||||
|
||||
alias rfap='repo forall -p -c'
|
||||
compdef _repo rfap='repo forall -p -c'
|
||||
|
||||
alias rinf='repo info'
|
||||
compdef _repo rinf='repo info'
|
||||
|
@ -1,10 +0,0 @@
|
||||
# Roswell Plugin
|
||||
|
||||
This plugin adds completions and aliases for [Roswell](https://github.com/roswell/roswell/).
|
||||
|
||||
To use it, add `ros` to the plugins array in your zshrc file:
|
||||
|
||||
```zsh
|
||||
plugins=(... ros)
|
||||
```
|
||||
|
@ -1,17 +1,6 @@
|
||||
# vim:ft=zsh ts=2 sw=2 sts=2 et
|
||||
#
|
||||
# Faster alternative to the current SVN plugin implementation.
|
||||
#
|
||||
# Works with svn 1.6, 1.7, 1.8.
|
||||
# Use `svn_prompt_info` method to enquire the svn data.
|
||||
# It's faster because his efficient use of svn (single svn call) which saves a lot on a huge codebase
|
||||
# It displays the current status of the local files (added, deleted, modified, replaced, or else...)
|
||||
#
|
||||
# Use as a drop-in replacement of the svn plugin not as complementary plugin
|
||||
|
||||
function svn_prompt_info() {
|
||||
local info
|
||||
info=$(svn info 2>&1) || return 1; # capture stdout and stderr
|
||||
info=$(svn info 2>&1) || return 1 # capture stdout and stderr
|
||||
local repo_need_upgrade=$(svn_repo_need_upgrade $info)
|
||||
|
||||
if [[ -n $repo_need_upgrade ]]; then
|
||||
@ -27,7 +16,6 @@ function svn_prompt_info() {
|
||||
printf '%s%s%s%s %s%s%s:%s%s%s%s' \
|
||||
"$ZSH_PROMPT_BASE_COLOR" \
|
||||
"$ZSH_THEME_SVN_PROMPT_PREFIX" \
|
||||
\
|
||||
"$(svn_status_info $info)" \
|
||||
"$ZSH_PROMPT_BASE_COLOR" \
|
||||
\
|
||||
@ -37,14 +25,13 @@ function svn_prompt_info() {
|
||||
\
|
||||
"$(svn_current_revision $info)" \
|
||||
"$ZSH_PROMPT_BASE_COLOR" \
|
||||
\
|
||||
"$ZSH_THEME_SVN_PROMPT_SUFFIX" \
|
||||
"$ZSH_PROMPT_BASE_COLOR"
|
||||
fi
|
||||
}
|
||||
|
||||
function svn_repo_need_upgrade() {
|
||||
grep -q "E155036" <<< ${1:-$(svn info 2> /dev/null)} && \
|
||||
grep -q "E155036" <<< "${1:-$(svn info 2> /dev/null)}" && \
|
||||
echo "E155036: upgrade repo with svn upgrade"
|
||||
}
|
||||
|
||||
@ -63,12 +50,23 @@ function svn_current_revision() {
|
||||
function svn_status_info() {
|
||||
local svn_status_string="$ZSH_THEME_SVN_PROMPT_CLEAN"
|
||||
local svn_status="$(svn status 2> /dev/null)";
|
||||
if command grep -E '^\s*A' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"; fi
|
||||
if command grep -E '^\s*D' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"; fi
|
||||
if command grep -E '^\s*M' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"; fi
|
||||
if command grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"; fi
|
||||
if command grep -E '^\s*\?' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"; fi
|
||||
if command grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DIRTY:-!}"; fi
|
||||
if command grep -E '^\s*A' &> /dev/null <<< $svn_status; then
|
||||
svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"
|
||||
fi
|
||||
if command grep -E '^\s*D' &> /dev/null <<< $svn_status; then
|
||||
svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"
|
||||
fi
|
||||
if command grep -E '^\s*M' &> /dev/null <<< $svn_status; then
|
||||
svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"
|
||||
fi
|
||||
if command grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then
|
||||
svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"
|
||||
fi
|
||||
if command grep -E '^\s*\?' &> /dev/null <<< $svn_status; then
|
||||
svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"
|
||||
fi
|
||||
if command grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then
|
||||
svn_status_string="$svn_status_string${ZSH_THEME_SVN_PROMPT_DIRTY:-!}"
|
||||
fi
|
||||
echo $svn_status_string
|
||||
}
|
||||
|
||||
|
@ -5,21 +5,21 @@
|
||||
# Author: Manfred Touron (@moul)
|
||||
|
||||
_arguments \
|
||||
'(-h --help)'{-h,--help}'[This help.]' \
|
||||
'(-u --user)'{-u,--user}'[User to use.]' \
|
||||
'(-c --certificate)'{-c,--certificate}'[Path to ssh-certificate to use.]' \
|
||||
'(-sc --ssh)'{-sc,--ssh}'[SSH-connection-string, multiple.]' \
|
||||
'(-sa --ssh)'{-sa,--ssh}'[SSH connection arguments, used on every session.]' \
|
||||
'(-ts --tmux)'{-ts,--tmux}'[Alternative tmux-session-name, default: tmux-cssh]' \
|
||||
'(-ns --new)'{-ns,--new}'[Initializes a new session, like -ts \[name\].]' \
|
||||
'(-q --quiet)'{-q,--quiet}'[Quiet-mode.]' \
|
||||
'(-f --filename)'{-f,--filename}'[Filename of textfile to get -sc connection-strings from, line separated.]' \
|
||||
'(-cs --config)'{-cs,--config}'[Name of config-settings which should be get from config-file "$HOME/.tmux-cssh". Which can be a grep-regular expression to find the name(s).]' \
|
||||
'(-h --help)'{-h,--help}'[This help.]' \
|
||||
'(-u --user)'{-u,--user}'[User to use.]' \
|
||||
'(-c --certificate)'{-c,--certificate}'[Path to ssh-certificate to use.]' \
|
||||
'(-sc --ssh)'{-sc,--ssh}'[SSH-connection-string, multiple.]' \
|
||||
'(-sa --ssh)'{-sa,--ssh}'[SSH connection arguments, used on every session.]' \
|
||||
'(-ts --tmux)'{-ts,--tmux}'[Alternative tmux-session-name, default: tmux-cssh]' \
|
||||
'(-ns --new)'{-ns,--new}'[Initializes a new session, like -ts \[name\].]' \
|
||||
'(-q --quiet)'{-q,--quiet}'[Quiet-mode.]' \
|
||||
'(-f --filename)'{-f,--filename}'[Filename of textfile to get -sc connection-strings from, line separated.]' \
|
||||
'(-cs --config)'{-cs,--config}'[Name of config-settings which should be get from config-file "$HOME/.tmux-cssh". Which can be a grep-regular expression to find the name(s).]' \
|
||||
':hosts:_hosts' \
|
||||
'*:: :->subcmds' \
|
||||
&& return 0
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
_describe -t commands "tmux-cssh command"
|
||||
return
|
||||
_describe -t commands "tmux-cssh command"
|
||||
return
|
||||
fi
|
||||
|
@ -35,7 +35,7 @@ The plugin also supports the following -
|
||||
| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) |
|
||||
| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support |
|
||||
| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) |
|
||||
| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) |
|
||||
| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` |
|
||||
| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `tmux`) |
|
||||
| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `tmux-256color` |
|
||||
| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) |
|
||||
| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode |
|
||||
|
@ -22,18 +22,18 @@ alias tkss='tmux kill-session -t'
|
||||
: ${ZSH_TMUX_AUTOCONNECT:=true}
|
||||
# Automatically close the terminal when tmux exits
|
||||
: ${ZSH_TMUX_AUTOQUIT:=$ZSH_TMUX_AUTOSTART}
|
||||
# Set term to screen or screen-256color based on current terminal support
|
||||
# Set term to tmux or tmux-256color based on current terminal support
|
||||
: ${ZSH_TMUX_FIXTERM:=true}
|
||||
# Set '-CC' option for iTerm2 tmux integration
|
||||
: ${ZSH_TMUX_ITERM2:=false}
|
||||
# The TERM to use for non-256 color terminals.
|
||||
# Tmux states this should be screen, but you may need to change it on
|
||||
# Tmux states this should be tmux, but you may need to change it on
|
||||
# systems without the proper terminfo
|
||||
: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=screen}
|
||||
: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=tmux}
|
||||
# The TERM to use for 256 color terminals.
|
||||
# Tmux states this should be screen-256color, but you may need to change it on
|
||||
# Tmux states this should be tmux-256color, but you may need to change it on
|
||||
# systems without the proper terminfo
|
||||
: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color}
|
||||
: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=tmux-256color}
|
||||
# Set the configuration path
|
||||
: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf}
|
||||
# Set -u option to support unicode
|
||||
|
@ -22,6 +22,13 @@ elif [[ -f "/usr/local/bin/virtualenvwrapper.sh" ]]; then
|
||||
virtualenvwrapper="/usr/local/bin/virtualenvwrapper.sh"
|
||||
source "/usr/local/bin/virtualenvwrapper.sh"
|
||||
}
|
||||
elif [[ -f "/usr/share/virtualenvwrapper/virtualenvwrapper.sh" ]]; then
|
||||
function {
|
||||
setopt local_options
|
||||
unsetopt equals
|
||||
virtualenvwrapper="/usr/share/virtualenvwrapper/virtualenvwrapper.sh"
|
||||
source "/usr/share/virtualenvwrapper/virtualenvwrapper.sh"
|
||||
}
|
||||
elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then
|
||||
function {
|
||||
setopt local_options
|
||||
|
@ -1,6 +1,6 @@
|
||||
# VS code
|
||||
# VS Code
|
||||
|
||||
This plugin makes interaction between the command line and the code editor easier.
|
||||
This plugin makes interaction between the command line and the VS Code editor easier.
|
||||
|
||||
To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`:
|
||||
|
||||
@ -8,9 +8,11 @@ To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`
|
||||
plugins=(... vscode)
|
||||
```
|
||||
|
||||
If you are using [Visual Studio Code Insiders](https://code.visualstudio.com/insiders/),
|
||||
add the following line in the oh-my-zsh settings section (between the `ZSH_THEME` and
|
||||
the `plugins=()` line). This will make the plugin use the Insiders version instead.
|
||||
## VS Code Insiders
|
||||
|
||||
🍏 **If you are only using [VS Code Insiders](https://code.visualstudio.com/insiders/), the plugin will automatically bind to your Insiders installation.**
|
||||
|
||||
But, if you have both Stable and Insiders versions and want to configure the plugin to just use the Insiders version, add the following line in the oh-my-zsh settings section (between the `ZSH_THEME` and the `plugins=()` line). This will make the plugin use the Insiders version instead.
|
||||
|
||||
```zsh
|
||||
ZSH_THEME=...
|
||||
|
@ -1,9 +1,17 @@
|
||||
# VScode zsh plugin
|
||||
# author: https://github.com/MarsiBarsi
|
||||
# Authors:
|
||||
# https://github.com/MarsiBarsi (original author)
|
||||
# https://github.com/babakks
|
||||
|
||||
# Use main Visual Studio Code version by default
|
||||
: ${VSCODE:=code}
|
||||
# Use the stable VS Code release, unless the Insiders version is the only
|
||||
# available installation
|
||||
if ! which code > /dev/null && which code-insiders > /dev/null; then
|
||||
: ${VSCODE:=code-insiders}
|
||||
else
|
||||
: ${VSCODE:=code}
|
||||
fi
|
||||
|
||||
# Define aliases
|
||||
alias vsc="$VSCODE ."
|
||||
alias vsca="$VSCODE --add"
|
||||
alias vscd="$VSCODE --diff"
|
||||
|
@ -86,9 +86,11 @@ _yarn_scripts() {
|
||||
local i runJSON
|
||||
|
||||
runJSON=$(yarn run --json 2>/dev/null)
|
||||
binaries=($(sed -E '/Commands available/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
|
||||
scriptNames=($(sed -E '/possibleCommands/!d;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
|
||||
scriptCommands=("${(@f)$(sed -E '/possibleCommands/!d;s/.*"hints":\{([^}]+)\}.*/\1/;s/"[^"]+"://g;s/:/\\:/g;s/","/\n/g;s/(^"|"$)//g' <<< "$runJSON")}")
|
||||
# Some sed utilities (e.g. Mac OS / BSD) don't interpret `\n` in a replacement
|
||||
# pattern as a newline. See https://superuser.com/q/307165
|
||||
binaries=($(sed -E '/Commands available/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\'$'\n/g' <<< "$runJSON"))
|
||||
scriptNames=($(sed -E '/possibleCommands/!d;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\'$'\n/g' <<< "$runJSON"))
|
||||
scriptCommands=("${(@f)$(sed -E '/possibleCommands/!d;s/.*"hints":\{(.+")\}.*/\1/;s/"[^"]+"://g;s/:/\\:/g;s/","/\'$'\n/g;s/(^"|"$)//g' <<< "$runJSON")}")
|
||||
|
||||
for (( i=1; i <= $#scriptNames; i++ )); do
|
||||
scripts+=("${scriptNames[$i]}:${scriptCommands[$i]}")
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
* `zcu` aliases `zeus cucumber`
|
||||
* `zucumber` aliases `zeus cucumber`
|
||||
* `zwip` aliases `zeus cucumber --profile wip`
|
||||
|
||||
* `zspec` aliases `zeus rspec`
|
||||
|
||||
|
@ -33,6 +33,7 @@ alias zunner='zeus runner'
|
||||
# Cucumber
|
||||
alias zcu='zeus cucumber'
|
||||
alias zucumber='zeus cucumber'
|
||||
alias zwip='zeus cucumber --profile wip'
|
||||
|
||||
# Rspec
|
||||
alias zspec='zeus rspec'
|
||||
|
Loading…
Reference in New Issue
Block a user