mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-03-13 03:12:21 +01:00
92 lines
2.1 KiB
Bash
92 lines
2.1 KiB
Bash
# 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
|
|
}
|