From 5b685a100ec4bc6a4deb01e9cbc18a1d7f20e906 Mon Sep 17 00:00:00 2001
From: herengui <herengui@uniontech.com>
Date: Thu, 3 Mar 2022 10:59:20 +0800
Subject: [PATCH] add support uos

Signed-off-by: herengui <herengui@uniontech.com>
---
 conf/nginx/uos_nginx.conf | 89 +++++++++++++++++++++++++++++++++++++++
 webvirtcloud.sh           | 38 ++++++++++++++++-
 2 files changed, 126 insertions(+), 1 deletion(-)
 create mode 100644 conf/nginx/uos_nginx.conf

diff --git a/conf/nginx/uos_nginx.conf b/conf/nginx/uos_nginx.conf
new file mode 100644
index 0000000..5c956d6
--- /dev/null
+++ b/conf/nginx/uos_nginx.conf
@@ -0,0 +1,89 @@
+# For more information on configuration, see:
+#   * Official English Documentation: http://nginx.org/en/docs/
+#   * Official Russian Documentation: http://nginx.org/ru/docs/
+
+user nginx;
+worker_processes auto;
+error_log /var/log/nginx/error.log;
+pid /run/nginx.pid;
+
+# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
+include /usr/share/nginx/modules/*.conf;
+
+events {
+    worker_connections 1024;
+}
+
+http {
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    access_log  /var/log/nginx/access.log  main;
+
+    sendfile            on;
+    tcp_nopush          on;
+    tcp_nodelay         on;
+    keepalive_timeout   65;
+    types_hash_max_size 2048;
+
+    include             /etc/nginx/mime.types;
+    default_type        application/octet-stream;
+
+    # Load modular configuration files from the /etc/nginx/conf.d directory.
+    # See http://nginx.org/en/docs/ngx_core_module.html#include
+    # for more information.
+    include /etc/nginx/conf.d/*.conf;
+
+#    server {
+#        listen       80 default_server;
+#        listen       [::]:80 default_server;
+#        server_name  _;
+#        root         /usr/share/nginx/html;
+#
+#        # Load configuration files for the default server block.
+#        include /etc/nginx/default.d/*.conf;
+#
+#        location / {
+#        }
+#
+#        error_page 404 /404.html;
+#            location = /40x.html {
+#        }
+#
+#        error_page 500 502 503 504 /50x.html;
+#            location = /50x.html {
+#        }
+#    }
+#
+# Settings for a TLS enabled server.
+#
+#    server {
+#        listen       443 ssl http2 default_server;
+#        listen       [::]:443 ssl http2 default_server;
+#        server_name  _;
+#        root         /usr/share/nginx/html;
+#
+#        ssl_certificate "/etc/pki/nginx/server.crt";
+#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
+#        ssl_session_cache shared:SSL:1m;
+#        ssl_session_timeout  10m;
+#        ssl_ciphers PROFILE=SYSTEM;
+#        ssl_prefer_server_ciphers on;
+#
+#        # Load configuration files for the default server block.
+#        include /etc/nginx/default.d/*.conf;
+#
+#        location / {
+#        }
+#
+#        error_page 404 /404.html;
+#            location = /40x.html {
+#        }
+#
+#        error_page 500 502 503 504 /50x.html;
+#            location = /50x.html {
+#        }
+#    }
+
+}
\ No newline at end of file
diff --git a/webvirtcloud.sh b/webvirtcloud.sh
index 49ae5ad..41d13a2 100644
--- a/webvirtcloud.sh
+++ b/webvirtcloud.sh
@@ -119,7 +119,7 @@ install_packages () {
         fi
       done;
       ;;
-    fedora)
+    fedora|uos)
       for p in $PACKAGES; do
         if dnf list installed "$p" >/dev/null 2>&1; then
           echo "  * $p already installed"
@@ -343,6 +343,15 @@ case $distro in
     supervisor_conf_path=/etc/supervisord.d
     supervisor_file_name=webvirtcloud.ini
     ;;
+  *Uos*|*uos*)
+    echo "  The installer has detected $distro version $version."
+    distro=uos
+    nginx_group=nginx
+    nginxfile=/etc/nginx/conf.d/$APP_NAME.conf
+    supervisor_service=supervisord
+    supervisor_conf_path=/etc/supervisord.d
+    supervisor_file_name=webvirtcloud.ini
+    ;;
   *)
     echo "  The installer was unable to determine your OS. Exiting for safety."
     exit 1
@@ -489,6 +498,33 @@ case $distro in
     exit 1
   fi
   ;;
+  uos)
+  if [[ "$version" == "20" ]]; then
+    # Install for uos 20
+    tzone=\'$(timedatectl|grep "Time zone"| awk '{print $3}')\'
+
+    echo "* Installing OS requirements."
+    PACKAGES="git python3-virtualenv python3-devel python3-pip libvirt-devel glibc gcc nginx supervisor python3-lxml python3-libguestfs iproute-tc cyrus-sasl-md5"
+    install_packages
+
+    set_hosts
+
+    install_webvirtcloud
+
+    echo "* Configuring Nginx."
+    configure_nginx
+
+    echo "* Configuring Supervisor."
+    configure_supervisor
+
+    set_firewall
+
+    set_selinux
+
+    restart_supervisor
+    restart_nginx
+  fi
+  ;;
 esac