mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-03-13 03:12:21 +01:00
First add plugin file x.plugin.zsh
This commit is contained in:
parent
359f7448d0
commit
dc9676f39e
1 changed files with 92 additions and 0 deletions
92
plugins/x/x.plugin.zsh
Normal file
92
plugins/x/x.plugin.zsh
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# Quick touch file and exec chmod command
|
||||
|
||||
# If the arguments is only one
|
||||
# 1. it not exist before,then create it and edit it auto,else
|
||||
# 2. else,chmod it
|
||||
#
|
||||
# else if there are many arguments chmod all of them and edit
|
||||
# or not as you choice,default edit is vim.If no argument given
|
||||
# or only option you can chmod file stilly.
|
||||
#
|
||||
# Example: x -e vim test.md test1.md
|
||||
function x {
|
||||
local EDIT=vim
|
||||
local V
|
||||
local HELP
|
||||
local FILES
|
||||
# No args given
|
||||
[ $# -eq 0 ] && \
|
||||
read -p "Which file(s) you want give it(them) privilege?\n`ls`" choice
|
||||
if [ -z $choice ]; then
|
||||
return 0
|
||||
else
|
||||
_xfile $@
|
||||
fi
|
||||
# Args is given and config local argvs
|
||||
for item in $@; do
|
||||
case $item in
|
||||
-h)
|
||||
HELP=yes;;
|
||||
-e)
|
||||
if `which $2`; then
|
||||
EDIT=$2
|
||||
fi
|
||||
shift;;
|
||||
-v)
|
||||
V=yes;;
|
||||
*)
|
||||
FILES="$item $FILES"
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Behaves depend on local config varibles
|
||||
# For $HELP var
|
||||
if [ -z $HELP ]; then
|
||||
_xhelp
|
||||
return $?
|
||||
fi
|
||||
# For $DEIT var i have no better idea
|
||||
if which $EDIT &> /dev/null; then
|
||||
$EDIT=`which $EDIT`
|
||||
fi
|
||||
|
||||
# For $FILES
|
||||
if [ -n $FILES ]; then
|
||||
_xfile $FILES
|
||||
fi
|
||||
|
||||
# Edit file apply by the number of it
|
||||
if [ $? -eq 0]; then
|
||||
read -p "Which file you want edit by `basename $EDIT`?\n${FILES}" choice
|
||||
if [ -z $choice ]; then
|
||||
return 127
|
||||
else
|
||||
choice=${FILES:choice}
|
||||
_xfile $choice
|
||||
unset $choice
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# Create file if necessary and chmod file
|
||||
function _xfile {
|
||||
for i in $@; do
|
||||
if [ ! -f $i ]; then
|
||||
touch $i
|
||||
fi
|
||||
[ -e $i ] && chmod u+x $i
|
||||
done
|
||||
unset i
|
||||
}
|
||||
|
||||
# Help message for the -h agrv and continue
|
||||
function _xhelp {
|
||||
read -p \
|
||||
"Which file you want exec command chmod u+x or touch it if not exist?\n`ls`\n:" choice
|
||||
if [ -n "$choice" ]; then
|
||||
_xfile $choice
|
||||
fi
|
||||
unset $choice
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue