Просмотр исходного кода

add web/dns/mail domain wrapper

Serghey Rodin 13 лет назад
Родитель
Сommit
dec702db51
1 измененных файлов с 86 добавлено и 0 удалено
  1. 86 0
      bin/v-add-domain

+ 86 - 0
bin/v-add-domain

@@ -0,0 +1,86 @@
+#!/bin/bash
+# info: add web/dns/mail domain
+# options: USER DOMAIN [IP]
+#
+# The function adds web/dns/mail domain to a server.
+
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument defenition
+user=$1
+domain=$2
+ip=$3
+
+# Includes
+source $VESTA/conf/vesta.conf
+source $VESTA/func/main.sh
+source $VESTA/func/ip.sh
+
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'USER DOMAIN [IP]'
+validate_format 'user' 'domain'
+if [ ! -z "$ip" ]; then
+    validate_format 'ip'
+fi
+is_object_valid 'user' 'USER' "$user"
+is_object_unsuspended 'user' 'USER' "$user"
+
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+# Get ip if it wasn't defined
+if [ -z "$ip" ]; then
+    ip=$(grep -H "OWNER='$user'" $VESTA/data/ips/* 2>/dev/null|head -n1)
+    ip=$(echo "$ip" | cut -f 7 -d / | cut -f 1 -d :)
+    if [ -z "$ip" ]; then
+        # Check shared ips
+        admin_ips=$(grep -H "OWNER='admin'" $VESTA/data/ips/* 2>/dev/null)
+        admin_ips=$(echo "$admin_ips" | cut -f 7 -d / | cut -f 1 -d :)
+        for admin_ip in $admin_ips; do
+            if [ -z "$ip" ]; then
+                shared=$(grep "STATUS='shared'" $VESTA/data/ips/$admin_ip)
+                if [ ! -z "$shared" ]; then
+                    ip=$admin_ip
+                fi
+            fi
+        done
+    fi
+fi
+
+# Web dmain
+if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
+    $BIN/v-add-web-domain $user $domain $ip
+    retun_code=$?
+fi
+
+# DNS domain
+if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
+    if [ "$retun_code" -eq 0 ]; then
+        $BIN/v-add-dns-domain $user $domain $ip
+        retun_code=$?
+    fi
+fi
+
+# Mail domain
+if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
+    if [ "$retun_code" -eq 0 ]; then
+        $BIN/v-add-mail-domain $user $domain
+        retun_code=$?
+    fi
+fi
+
+
+#----------------------------------------------------------#
+#                       Vesta                              #
+#----------------------------------------------------------#
+
+exit $retun_code