source: lliurex-easy-sites/trunk/fuentes/lliurex-easy-sites.install/usr/sbin/lliurex-easy-sites-cli @ 531

Last change on this file since 531 was 531, checked in by jrpelegrina, 5 years ago

First release to xenial

  • Property svn:executable set to *
File size: 2.8 KB
Line 
1#!/bin/bash
2#
3# This script is licensed under GPL v3 or higher
4#
5# Author : Angel Berlanas Vicente
6#          <angel.berlanas@gmail.com>
7#
8
9#
10# SOME VALUES
11SITES_CONF_DIR="/var/www/srv/"
12NET_SERVER_SYNC="/net/server-sync/easy-sites/"
13TEMPLATE_PATH="/usr/share/lliurex-easy-sites/custom.json"
14
15#
16# Show the list of the easy-sites
17show_list()
18{
19        # List the directory files with a easy-sites pattern
20        find "$SITES_CONF_DIR" -maxdepth 1 -xtype d   -name "*easy*" -printf "%f\n" | sed -e "s%easy-%%g";
21}
22
23#
24# Copy files with the DISPLAY environment
25copy_files()
26{
27        orig_dir="${1}"
28        dest_dir="${2}"
29        if [ -n "${DISPLAY}" ]; then
30                cp -r "${orig_dir}"/* "${dest_dir}/"
31        else
32                gcp -r "${orig_dir}/*" "${dest_dir}/"
33        fi
34}
35
36#
37# Create and populate the dir under /net/server-sync
38replicate_dir()
39{
40        dest_dir="${2}"
41        dest_dir="${NET_SERVER_SYNC}/${dest_dir}"
42        orig_dir="${1}"
43        # Create dir
44        [ -d ${dest_dir} ] || mkdir -p ${dest_dir}
45        copy_files "${orig_dir}" "${dest_dir}"
46}
47
48#
49# Create the site
50create_site()
51{
52        # Create the site file
53        SITE_NAME="$1"
54        NAME=easy-"$1"
55        DIR="$2"
56        FINAL_DIR="${NET_SERVER_SYNC}/${NAME}"
57        DESCR="$3"
58       
59        # Replicate directory
60        echo " [ LliureX Easy Sites ] : Replicate dir : ${DIR} at ${NAME}"
61        replicate_dir "$DIR" "$NAME"
62
63        # Create the link
64        echo " [ LliureX Easy Sites ] : linking ${NET_SERVER_SYNC}/${NAME} -> ${SITES_CONF_DIR}${NAME}"
65        ln -s ${NET_SERVER_SYNC}/${NAME} ${SITES_CONF_DIR}${NAME}
66       
67        #  Prepare Json
68        if [ -z $DESCR ] ; then
69                DESCR="Lloc web"
70        fi
71        cp ${TEMPLATE_PATH} ${SITES_CONF_DIR}links/$NAME.json
72        sed -i "s%DESCR%$DESCR%g" ${SITES_CONF_DIR}links/$NAME.json
73        sed -i "s%NAME%$SITE_NAME%g" ${SITES_CONF_DIR}links/$NAME.json
74}
75
76
77#
78# Remove the site
79remove_site()
80{
81        # Remove the site file
82        # Closing bug 1 - > easy- must be append to all the names
83        NAME=easy-"$1"
84       
85        # Remove the link
86        echo " [ LliureX Easy Sites ] : Removing the link at /var/www/srv/${NAME}"
87        [ -f /var/www/srv/${NAME} ] || rm -f /var/www/srv/${NAME}
88
89        # Remove the folder under /net/server-sync
90        echo " [ LliureX Easy Sites ] : Removing the folder at ${NET_SERVER_SYNC}/${NAME}"
91        rm -rf ${NET_SERVER_SYNC}/${NAME}
92       
93        # Remove the json
94        echo " [ LliureX Easy Sites ] : Removing the .json file at /var/www/srv/links/${NAME}.json"
95        [ ! -f /var/www/srv/links/${NAME}.json ] || rm -f /var/www/srv/links/${NAME}.json
96       
97       
98}
99
100
101#
102# Show the USAGE
103show_usage()
104{
105        # Show the USAGE
106        echo "USAGE:    lliurex-easy-sites-cli [OPTIONS]"
107        echo ""
108        echo "          list                                            - show the sites"
109        echo "          create NAME PATH DESCRIPTION                    - create the site"
110        echo "          remove NAME                                     - delete the site"     
111        exit 0
112}
113
114
115ACTION="$1"
116
117case "$ACTION" in
118        list)
119                show_list
120        ;;
121        remove)
122                shift
123                SITE="$1"
124                remove_site "$SITE"
125        ;;
126        create)
127                shift
128                NAME="$1"
129                shift
130                CUSTOM_PATH="$1"
131                shift 
132                DESCR="$1"
133                FULL_PATH="$(readlink -f $CUSTOM_PATH)"
134                create_site "$NAME" "$FULL_PATH" "$DESCR"
135        ;;
136        *)
137                show_usage
138        ;;
139esac 
140
141exit 0
Note: See TracBrowser for help on using the repository browser.