85 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| #
 | |
| # $Id: get_domains_by_account 22 2005-04-11 17:21:15Z jerome $
 | |
| # ----------------------------------------------------------------------
 | |
| # AlternC - Web Hosting System
 | |
| # Copyright (C) 2002 by the AlternC Development Team.
 | |
| # http://alternc.org
 | |
| # ----------------------------------------------------------------------
 | |
| # Based on:
 | |
| # Valentin Lacambre's web hosting softwares: http://altern.org/
 | |
| # ----------------------------------------------------------------------
 | |
| # LICENSE
 | |
| #
 | |
| # This program is free software; you can redistribute it and/or
 | |
| # modify it under the terms of the GNU General Public License (GPL)
 | |
| # as published by the Free Software Foundation; either version 2
 | |
| # of the License, or (at your option) any later version.
 | |
| #
 | |
| # This program is distributed in the hope that it will be useful,
 | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| # GNU General Public License for more details.
 | |
| #
 | |
| # To read the license please visit http://www.gnu.org/copyleft/gpl.html
 | |
| # ----------------------------------------------------------------------
 | |
| # Original Author of file: Jerome Moinet
 | |
| # Purpose of file: gives domains and sub-domains attached to an account
 | |
| # ----------------------------------------------------------------------
 | |
| #
 | |
| PATH=""
 | |
| PROG_NAME=get_domains_by_account
 | |
| PROG_VERSION=0.1.0
 | |
| ALTERNC_ETC=/etc/alternc
 | |
| ALTERNC_CONF_FILE=$ALTERNC_ETC/local.sh
 | |
| export TEXTDOMAIN=alternc-admintools
 | |
| 
 | |
| 
 | |
| # Be sure to use the right programs on Debian
 | |
| # and be sure they are there
 | |
| id=/usr/bin/id
 | |
| mysql=/usr/bin/mysql
 | |
| gettext=/usr/bin/gettext
 | |
| printf=/usr/bin/printf
 | |
| 
 | |
| # Must have gettext first to display error messages
 | |
| [ -x "$gettext" ] || { echo "Cannot execute $gettext"; exit 1 ; }
 | |
| 
 | |
| for i in $id $mysql $printf
 | |
| do
 | |
|   ! [ -x "$i" ] && { echo "$($gettext "Unable to execute") ${i}."; exit 1 ; }
 | |
| done
 | |
| 
 | |
| # Language-dependent messages
 | |
| # Uses gettext and mo files.
 | |
| # Don't change these messages, change the .po file instead.
 | |
| HELP=$($gettext "Gives domains and sub-domains attached to an account.")
 | |
| USAGE=`$printf "$($gettext "Usage: %s account.")" $PROG_NAME`
 | |
| NOT_FOUND_MSG=$($gettext "does not exist.")
 | |
| NON_ROOT_MSG=$($gettext "You have to be root (uid 0) to execute this program.")
 | |
| MISSING_PROG=$($gettext "Unable to execute")
 | |
| MISSING_CONF_FILE=`$printf "$($gettext "Can't find %s. Are you sure AlterncC is properly installed?")" $ALTERNC_CONF_FILE`
 | |
| MYSQL_UNREACHABLE_DATABASE=`$printf "$($gettext "Cannot access accounts database. Please check either %s or Mysql state.")" $ALTERNC_CONF_FILE`
 | |
| 
 | |
| 
 | |
| #-------------------------
 | |
| # Main
 | |
| #-------------------------
 | |
| # Must be root
 | |
| [ "`$id -u`" != "0" ] && { echo $NON_ROOT_MSG ; exit 1 ; }
 | |
| # Must have minimum 1 parameter
 | |
| [ -z "$1" ] && { echo $USAGE ; exit 1 ; }
 | |
| # Handle -h and --help flags
 | |
| [ "$1" = "-h" ] || [ "$1" = "--help" ] && { echo $HELP ; echo $USAGE ; exit 0 ; }
 | |
| # Have to get AlternC conf file :
 | |
| ! [ -f "$ALTERNC_CONF_FILE" ] && { echo $MISSING_CONF_FILE ; exit 1 ; } || . $ALTERNC_CONF_FILE
 | |
| # Must have access to mysql to retreive accounts owning domains :
 | |
| mysql="$mysql --defaults-file=/etc/alternc/my.cnf -B -N -e"
 | |
| $mysql "desc domaines;" > /dev/null 2>&1
 | |
| [ "$?" != 0 ] && { echo "$MYSQL_UNREACHABLE_DATABASE" ; exit 1 ; }
 | |
| 
 | |
| # Does the stuff
 | |
| $mysql "select concat(a.sub, if(a.sub=\"\",\"\", \".\"), a.domaine) from sub_domaines a, membres b where a.compte = b.uid and b.login = \"${1}\";"
 | |
| 
 | |
| 
 |