HEX
Server: Apache/2.4.67 (Debian)
System: Linux hosting103 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User: muzikaecom (1013)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/local/share/hostingplatform/bash-functions
export SQLITE=/usr/bin/sqlite3
export SQLITE_DATABASE=/var/local/hostingplatform/db.sqlite

sqlite_query () {
	${SQLITE} ${SQLITE_DATABASE} "$1"
}

list_packages () {
	sqlite_query 'SELECT packagename FROM hosting;'
}

package_exists () {
	for package in `list_packages`
	do
		if [ "$package" == "$1" ]
		then
			return 1
		fi
	done
	return 0
}

list_mysql_databases () {
	mysql_query mysql "
		SHOW DATABASES
		LIKE
			$(mysql_quote_literal "$1_%")
		;
	"
}

list_postgresql_databases () {
	pg_query postgres "
		SELECT
			datname as Name
		FROM
			pg_catalog.pg_database 
		WHERE
			datname ILIKE $(pg_quote_literal "$1_%")
		;
	"
}

mysql_dump () {
	MYSQL_USER="$(grep user /etc/mysql/debian.cnf |sort -u |awk -F '=' '{ print $2 }' |tr -d ' ')"
	MYSQL_PASS="$(grep pass /etc/mysql/debian.cnf |sort -u |awk -F '=' '{ print $2 }' |tr -d ' ')"

	mysqldump \
		--user="${MYSQL_USER}" \
		--password="${MYSQL_PASS}" \
		"$1"
}

mysql_import () {
	MYSQL_USER="$(grep user /etc/mysql/debian.cnf |sort -u |awk -F '=' '{ print $2 }' |tr -d ' ')"
	MYSQL_PASS="$(grep pass /etc/mysql/debian.cnf |sort -u |awk -F '=' '{ print $2 }' |tr -d ' ')"

	mysql \
		--user="${MYSQL_USER}" \
		--password="${MYSQL_PASS}" \
		--batch --silent \
		"$1"
}

pg_dump () {
	su postgres -l -c "pg_dump -c -x -O '$1'"
}

pg_import () {
	su postgres -l -c "psql '$1'"
}

sqlite_quote_literal () {
	mysql_quote_literal "$1"
}

mysql_quote_literal () {
  echo -n "'"
  echo -n "$1" | sed -e 's/['\''\\\\]/\\&/g'
  echo -n "'"
}

mysql_query () {
	MYSQL_USER="$(grep user /etc/mysql/debian.cnf |sort -u |awk -F '=' '{ print $2 }' |tr -d ' ')"
	MYSQL_PASS="$(grep pass /etc/mysql/debian.cnf |sort -u |awk -F '=' '{ print $2 }' |tr -d ' ')"

	mysql \
		--user="${MYSQL_USER}" \
		--password="${MYSQL_PASS}" \
		--batch --silent \
		-e "$2" \
		"$1"
}


### JP's PostgreSQL functions

pg_query () {
  su postgres -l -c "psql $1" <<EOF
\set QUIET 1
\set ON_ERROR_STOP 1
\pset tuples_only on
\pset fieldsep '\t'
\pset format unaligned
BEGIN;
$2
COMMIT;
EOF
}

pg_check_connection () {
  pg_query template1 'select 1;' > /dev/null
}

pg_user_exists () {
  R=`pg_query template1 \
    'select 1 from pg_user where usename = '$(pg_quote_literal "$1")';'`
  if [ "X$R" != "X" ]; then
    return 0
  else
    return 1
  fi
}

pg_db_exists () {
  R=`pg_query template1 \
    'select * from pg_database where datname = '$(pg_quote_literal "$1")';'`
  if [ "X$R" != "X" ]; then
    return 0
  else
    return 1
  fi
}

pg_create_user () {
  pg_query template1 'create user '$(pg_quote_ident "$1")';'
}

pg_drop_user () {
  pg_query template1 'drop user '$(pg_quote_ident "$1")';'
}

pg_create_db () {
  su postgres -l -c "psql template1" <<EOF
\set QUIET 1
\set ON_ERROR_STOP 1
create database $(pg_quote_ident "$1");
EOF
}

pg_drop_db () {
  su postgres -l -c "psql template1" <<EOF
\set QUIET 1
\set ON_ERROR_STOP 1
drop database $(pg_quote_ident "$1");
EOF
}

pg_run () {
  pg_query "$1" "\i $2"
}

pg_quote_literal () {
  echo -n "E'"
  echo -n "$1" | sed -e 's/['\''\\\\]/\\&/g'
  echo -n "'"
}

pg_quote_ident () {
  echo -n '"'
  echo -n "$1" | sed -e 's/"/""/g'
  echo -n '"'
}