Add new plugin for virtual host management
This commit is contained in:
parent
ff4663a6b8
commit
39889dc2f2
54
plugins/vhost/README.md
Normal file
54
plugins/vhost/README.md
Normal file
@ -0,0 +1,54 @@
|
||||
# VHOST
|
||||
|
||||
> Making virtual host maniputation tasks more easier
|
||||
|
||||
|
||||
## Instalation ##
|
||||
|
||||
Open your `.zshrc` file and load `vhost` plugin
|
||||
|
||||
```bash
|
||||
...
|
||||
plugins=( <your-plugins-list>... vhost)
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
## Commands ##
|
||||
|
||||
|
||||
### ls
|
||||
|
||||
List all virtual hosts in `/etc/hosts` file
|
||||
|
||||
```bash
|
||||
vhost ls
|
||||
```
|
||||
|
||||
|
||||
### add
|
||||
|
||||
Add a new virtual host in `/etc/hosts` file
|
||||
|
||||
```bash
|
||||
vhost add <ip> <host>
|
||||
```
|
||||
|
||||
|
||||
### rm
|
||||
|
||||
Add a new virtual host in `/etc/hosts` file
|
||||
|
||||
```bash
|
||||
vhost rm <ip> <host>
|
||||
```
|
||||
|
||||
|
||||
## Author
|
||||
|
||||
**Wilson Mendes (willmendesneto)**
|
||||
+ <https://plus.google.com/+WilsonMendes>
|
||||
+ <https://twitter.com/willmendesneto>
|
||||
+ <http://github.com/willmendesneto>
|
||||
|
||||
New features comming soon.
|
60
plugins/vhost/_vhost.sh
Normal file
60
plugins/vhost/_vhost.sh
Normal file
@ -0,0 +1,60 @@
|
||||
#compdef vhost
|
||||
|
||||
zstyle ':completion:*:descriptions' format '%B%d%b'
|
||||
zstyle ':completion::complete:vhost:*:commands' group-name commands
|
||||
zstyle ':completion::complete:vhost:*:vhost_points' group-name vhost_points
|
||||
zstyle ':completion::complete:vhost::' list-grouped
|
||||
|
||||
zmodload zsh/mapfile
|
||||
|
||||
function _vhost() {
|
||||
local CONFIG=$HOME/.vhost
|
||||
local ret=1
|
||||
|
||||
local -a commands
|
||||
local -a vhost_points
|
||||
|
||||
vhost_points=( "${(f)mapfile[$CONFIG]//$HOME/~}" )
|
||||
|
||||
commands=(
|
||||
'ls:List all virtual host of you OS'
|
||||
'add:Add new virtual host'
|
||||
'rm:Remove a specific virtual host'
|
||||
)
|
||||
|
||||
_arguments -C \
|
||||
'1: :->first_arg' \
|
||||
'2: :->second_arg' && ret=0
|
||||
|
||||
case $state in
|
||||
first_arg)
|
||||
_describe -t vhost_points "Warp points" vhost_points && ret=0
|
||||
_describe -t commands "Commands" commands && ret=0
|
||||
;;
|
||||
second_arg)
|
||||
case $words[2] in
|
||||
add)
|
||||
_message 'Write the name of your warp point' && ret=0
|
||||
;;
|
||||
rm)
|
||||
_describe -t points "Warp points" vhost_points && ret=0
|
||||
;;
|
||||
ls)
|
||||
_describe -t points "Warp points" vhost_points && ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
_vhost "$@"
|
||||
|
||||
# Local Variables:
|
||||
# mode: Shell-Script
|
||||
# sh-indentation: 2
|
||||
# indent-tabs-mode: nil
|
||||
# sh-basic-offset: 2
|
||||
# End:
|
||||
# vim: ft=zsh sw=2 ts=2 et
|
60
plugins/vhost/vhost.plugin.zsh
Normal file
60
plugins/vhost/vhost.plugin.zsh
Normal file
@ -0,0 +1,60 @@
|
||||
# frontend from terminal
|
||||
|
||||
function vhost() {
|
||||
|
||||
|
||||
local hosts_file
|
||||
hosts_file='/etc/hosts'
|
||||
|
||||
# no keyword provided, simply show how call methods
|
||||
if [[ "$#" -le 1 && $1 -ne "ls" ]]; then
|
||||
echo "Please provide a command with params.\nEx:\nvhost <command> <params>\n"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# check whether the search engine is supported
|
||||
if [[ ! $1 =~ "(add|ls|rm)" ]];
|
||||
then
|
||||
echo "Option '$1' is not supported."
|
||||
echo "Usage: vhost <ip> <host>"
|
||||
echo "\t* add <ip> <host>"
|
||||
echo "\t* ls"
|
||||
echo "\t* rm <ip> <host>"
|
||||
echo ""
|
||||
|
||||
return 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
"ls")
|
||||
cat $hosts_file
|
||||
;;
|
||||
"add")
|
||||
if [[ $# -le 2 ]]; then
|
||||
echo "This method should receive 2 params <ip> <host>"
|
||||
fi
|
||||
vhost="$2 $3"
|
||||
sudo echo "$vhost" >> $hosts_file
|
||||
echo "New virtual host '$3' created!"
|
||||
;;
|
||||
"rm")
|
||||
if [[ $# -le 2 ]]; then
|
||||
echo "This method should receive 2 params <ip> <host>"
|
||||
fi
|
||||
|
||||
sudo -v
|
||||
vhost="$2 $3"
|
||||
|
||||
echo -n " - Removing '$vhost' from $hosts_file... "
|
||||
cat $hosts_file | grep -v $vhost > /tmp/hosts.tmp
|
||||
if [[ -s /tmp/hosts.tmp ]]; then
|
||||
sudo mv /tmp/hosts.tmp $hosts_file
|
||||
fi
|
||||
echo "Virtual host '$3' removed!"
|
||||
;;
|
||||
*) echo "Command '$1' doesn't exist, sir."
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user