mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-04-07 01:13:50 +02:00
* Removed all CVS tags. * Removed 'const char *name' parameter from all QObject contructors.
770 lines
23 KiB
Plaintext
Executable File
770 lines
23 KiB
Plaintext
Executable File
# create_db
|
|
#
|
|
# Create and initialize a new database for Rivendell.
|
|
#
|
|
# (C) Copyright 2002-2003,2016 Fred Gleason <fredg@paravelsystems.com>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2 as
|
|
# published by the Free Software Foundation.
|
|
#
|
|
# 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.
|
|
#
|
|
# You should have received a copy of the GNU General Public
|
|
# License along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
#
|
|
|
|
#
|
|
# Site Configuration
|
|
#
|
|
|
|
#
|
|
# Rivendell mySQL Application Account
|
|
#
|
|
RD_USER=rduser@localhost
|
|
RD_PASSWORD=letmein
|
|
|
|
#
|
|
# Default Rivendell Administrator
|
|
#
|
|
RDA_LOGIN_NAME=admin
|
|
RDA_PASSWORD=
|
|
RDA_FULL_NAME="System Administrator"
|
|
RDA_DESCRIPTION="Default Administrator Account"
|
|
|
|
#
|
|
# Default Rivendell User
|
|
#
|
|
USER_LOGIN_NAME=user
|
|
USER_PASSWORD=
|
|
USER_FULL_NAME="Rivendell User"
|
|
USER_DESCRIPTION="Default User Account"
|
|
|
|
#
|
|
# Default Rivendell Service
|
|
#
|
|
RD_SVC_NAME="Production"
|
|
RD_SVC_DESC="Default Audio Service"
|
|
|
|
#
|
|
# Rivendell Audio Repository
|
|
#
|
|
RD_AUDIO_ROOT=/var/snd
|
|
|
|
# Nothing should need to be changed below here!
|
|
# ############################################################################
|
|
|
|
# ############################################################################
|
|
# Create a Rivendell Database
|
|
# ############################################################################
|
|
function CreateDB {
|
|
#
|
|
# Create the database
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"CREATE DATABASE IF NOT EXISTS Rivendell"
|
|
|
|
#
|
|
# Set Security Privledges
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON * TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create USERS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS USERS (
|
|
LOGIN_NAME CHAR(8) NOT NULL PRIMARY KEY,
|
|
FULL_NAME CHAR(64),
|
|
PHONE_NUMBER CHAR(20),
|
|
DESCRIPTION CHAR(255),
|
|
PASSWORD CHAR(32) NOT NULL,
|
|
ADMIN_USERS_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
ADMIN_CONFIG_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
CREATE_CARTS_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
DELETE_CARTS_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
MODIFY_CARTS_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
EDIT_AUDIO_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
ASSIGN_CART_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
CREATE_LOG_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
DELETE_LOG_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
PLAYOUT_LOG_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
ARRANGE_LOG_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
ADDTO_LOG_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
REMOVEFROM_LOG_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
EDIT_CATCHES_PRIV ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
INDEX FULL_NAME_IDX (FULL_NAME)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON USERS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create STATIONS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS STATIONS (
|
|
NAME CHAR(64) PRIMARY KEY NOT NULL,
|
|
DESCRIPTION CHAR(64),
|
|
USER_NAME CHAR(8),
|
|
DEFAULT_NAME CHAR(8),
|
|
INDEX DESCRIPTION_IDX (DESCRIPTION)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON STATIONS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create CART table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS CART (
|
|
NUMBER INT UNSIGNED NOT NULL PRIMARY KEY,
|
|
TYPE INT UNSIGNED NOT NULL,
|
|
GROUP_NAME CHAR(10) NOT NULL,
|
|
TITLE CHAR(255),
|
|
ARTIST CHAR(255),
|
|
ALBUM CHAR(255),
|
|
YEAR DATE,
|
|
ISRC CHAR(12),
|
|
LABEL CHAR(64),
|
|
CLIENT CHAR(64),
|
|
AGENCY CHAR(64),
|
|
USER_DEFINED CHAR(255),
|
|
FORCED_LENGTH INT UNSIGNED,
|
|
CUT_QUANTITY INT UNSIGNED,
|
|
LAST_CUT_PLAYED INT UNSIGNED,
|
|
PLAY_ORDER INT UNSIGNED,
|
|
START_DATETIME DATETIME,
|
|
END_DATETIME DATETIME,
|
|
ENFORCE_LENGTH ENUM('N','Y') DEFAULT 'N',
|
|
PRESERVE_PITCH ENUM('N','Y') DEFAULT 'N',
|
|
INDEX GROUP_NAME_IDX (GROUP_NAME),
|
|
INDEX TITLE_IDX (TITLE),
|
|
INDEX ARTIST_IDX (ARTIST),
|
|
INDEX ALBUM_IDX (ALBUM),
|
|
INDEX LABEL_IDX (LABEL),
|
|
INDEX CLIENT_IDX (CLIENT),
|
|
INDEX AGENCY_IDX (AGENCY),
|
|
INDEX USER_DEFINED_IDX (USER_DEFINED)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON CART TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create CUTS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS CUTS (
|
|
CUT_NAME CHAR(12) PRIMARY KEY NOT NULL,
|
|
CART_NUMBER INT UNSIGNED NOT NULL,
|
|
DESCRIPTION CHAR(64),
|
|
OUTCUE CHAR(64),
|
|
LENGTH INT UNSIGNED,
|
|
ORIGIN_DATETIME DATETIME DEFAULT '0/0/0000 24:00:00',
|
|
START_DATETIME DATETIME DEFAULT '0/0/0000 24:00:00',
|
|
END_DATETIME DATETIME DEFAULT '0/0/0000 24:00:00',
|
|
START_DAYPART TIME DEFAULT '24:00:00',
|
|
END_DAYPART TIME DEFAULT '24:00:00',
|
|
ORIGIN_NAME CHAR(64),
|
|
WEIGHT INT UNSIGNED DEFAULT 1,
|
|
LAST_PLAY_DATETIME DATETIME,
|
|
PLAY_COUNTER INT UNSIGNED DEFAULT 0,
|
|
CODING_FORMAT INT UNSIGNED,
|
|
SAMPLE_RATE INT UNSIGNED,
|
|
BIT_RATE INT UNSIGNED,
|
|
CHANNELS INT UNSIGNED,
|
|
PLAY_GAIN INT DEFAULT 0,
|
|
START_POINT INT DEFAULT -1,
|
|
END_POINT INT DEFAULT -1,
|
|
FADEUP_POINT INT DEFAULT -1,
|
|
FADEDOWN_POINT INT DEFAULT -1,
|
|
SEGUE_START_POINT INT DEFAULT -1,
|
|
SEGUE_END_POINT INT DEFAULT -1,
|
|
HOOK_START_POINT INT DEFAULT -1,
|
|
HOOK_END_POINT INT DEFAULT -1,
|
|
TALK_START_POINT INT DEFAULT -1,
|
|
TALK_END_POINT INT DEFAULT -1,
|
|
INDEX CART_NUMBER_IDX (CART_NUMBER),
|
|
INDEX DESCRIPTION_IDX (DESCRIPTION),
|
|
INDEX OUTCUE_IDX (OUTCUE),
|
|
INDEX ORIGIN_DATETIME_IDX (ORIGIN_DATETIME),
|
|
INDEX START_DATETIME_IDX (START_DATETIME),
|
|
INDEX END_DATETIME_IDX (END_DATETIME)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON CUTS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create CLIPBOARD table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS CLIPBOARD (
|
|
CUT_NAME CHAR(12) PRIMARY KEY NOT NULL,
|
|
CART_NUMBER INT UNSIGNED NOT NULL,
|
|
DESCRIPTION CHAR(64),
|
|
OUTCUE CHAR(64),
|
|
LENGTH INT UNSIGNED,
|
|
ORIGIN_DATETIME DATETIME,
|
|
ORIGIN_NAME CHAR(64),
|
|
WEIGHT INT UNSIGNED DEFAULT 1,
|
|
LAST_PLAY_DATETIME DATETIME,
|
|
PLAY_COUNTER INT UNSIGNED DEFAULT 0,
|
|
CODING_FORMAT INT UNSIGNED,
|
|
SAMPLE_RATE INT UNSIGNED,
|
|
BIT_RATE INT UNSIGNED,
|
|
CHANNELS INT UNSIGNED,
|
|
PLAY_GAIN INT DEFAULT 0,
|
|
START_POINT INT DEFAULT -1,
|
|
END_POINT INT DEFAULT -1,
|
|
FADEUP_POINT INT DEFAULT -1,
|
|
FADEDOWN_POINT INT DEFAULT -1,
|
|
SEGUE_START_POINT INT DEFAULT -1,
|
|
SEGUE_END_POINT INT DEFAULT -1,
|
|
HOOK_START_POINT INT DEFAULT -1,
|
|
HOOK_END_POINT INT DEFAULT -1,
|
|
TALK_START_POINT INT DEFAULT -1,
|
|
TALK_END_POINT INT DEFAULT -1,
|
|
INDEX CART_NUMBER_IDX (CART_NUMBER),
|
|
INDEX DESCRIPTION_IDX (DESCRIPTION),
|
|
INDEX OUTCUE_IDX (OUTCUE)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON CLIPBOARD TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create SERVICES table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS SERVICES (
|
|
NAME CHAR(10) NOT NULL PRIMARY KEY,
|
|
DESCRIPTION CHAR(255)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON SERVICES TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create GROUPS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS GROUPS (
|
|
NAME CHAR(10) NOT NULL PRIMARY KEY,
|
|
DESCRIPTION CHAR(255)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON GROUPS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create AUDIO_PERMS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS AUDIO_PERMS (
|
|
ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
|
GROUP_NAME CHAR(10),
|
|
SERVICE_NAME CHAR(10),
|
|
INDEX GROUP_IDX (GROUP_NAME),
|
|
INDEX SERVICE_IDX (SERVICE_NAME)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON AUDIO_PERMS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create RDLIBRARY table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS RDLIBRARY (
|
|
ID INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
|
|
STATION CHAR(40) NOT NULL,
|
|
INSTANCE INT UNSIGNED NOT NULL,
|
|
INPUT_CARD INT DEFAULT -1,
|
|
INPUT_STREAM INT DEFAULT -1,
|
|
INPUT_PORT INT DEFAULT -1,
|
|
INPUT_TYPE ENUM('A','D') DEFAULT 'A',
|
|
OUTPUT_CARD INT DEFAULT -1,
|
|
OUTPUT_STREAM INT DEFAULT -1,
|
|
OUTPUT_PORT INT DEFAULT -1,
|
|
VOX_THRESHOLD INT DEFAULT -5000,
|
|
TRIM_THRESHOLD INT DEFAULT -3000,
|
|
RECORD_GPI INT DEFAULT -1,
|
|
PLAY_GPI INT DEFAULT -1,
|
|
STOP_GPI INT DEFAULT -1,
|
|
DEFAULT_FORMAT INT UNSIGNED DEFAULT 0,
|
|
DEFAULT_CHANNELS INT UNSIGNED DEFAULT 2,
|
|
DEFAULT_SAMPRATE INT UNSIGNED DEFAULT 44100,
|
|
DEFAULT_LAYER INT UNSIGNED DEFAULT 0,
|
|
DEFAULT_BITRATE INT UNSIGNED DEFAULT 0,
|
|
DEFAULT_RECORD_MODE INT UNSIGNED DEFAULT 0,
|
|
DEFAULT_TRIM_STATE ENUM('N','Y') DEFAULT 'N',
|
|
MAXLENGTH INT,
|
|
TAIL_PREROLL INT UNSIGNED DEFAULT 1500,
|
|
RIPPER_DEVICE CHAR(64) DEFAULT \"/dev/cdrom\",
|
|
PARANOIA_LEVEL INT DEFAULT 0,
|
|
RIPPER_LEVEL INT DEFAULT 0,
|
|
CDDB_SERVER CHAR(64) DEFAULT \"freedb.freedb.org\",
|
|
INDEX STATION_IDX (STATION,INSTANCE)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON RDLIBRARY TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create TRIGGERS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS TRIGGERS (
|
|
ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
|
CUT_NAME CHAR(12),
|
|
TRIGGER_CODE INT UNSIGNED,
|
|
OFFSET INT UNSIGNED,
|
|
INDEX CUT_NAME_IDX (CUT_NAME)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON TRIGGERS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create TTYS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS TTYS (
|
|
ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
PORT_ID INT UNSIGNED NOT NULL,
|
|
ACTIVE ENUM('N','Y') NOT NULL DEFAULT 'N',
|
|
STATION_NAME CHAR(64) NOT NULL,
|
|
PORT CHAR(20),
|
|
BAUD_RATE INT DEFAULT 9600,
|
|
DATA_BITS INT DEFAULT 8,
|
|
STOP_BITS INT DEFAULT 1,
|
|
PARITY INT DEFAULT 0,
|
|
TERMINATION INT DEFAULT 0,
|
|
INDEX STATION_NAME_IDX (STATION_NAME),
|
|
INDEX ACTIVE_IDX (ACTIVE),
|
|
INDEX PORT_ID_IDX (PORT_ID)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON TTYS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create DECKS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS DECKS (
|
|
ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
STATION_NAME CHAR(64) NOT NULL,
|
|
CHANNEL INT UNSIGNED NOT NULL,
|
|
CARD_NUMBER INT DEFAULT -1,
|
|
STREAM_NUMBER INT DEFAULT -1,
|
|
PORT_NUMBER INT DEFAULT -1,
|
|
PORT_TYPE ENUM('A','D') DEFAULT 'A',
|
|
DEFAULT_FORMAT INT DEFAULT 0,
|
|
DEFAULT_CHANNELS INT DEFAULT 2,
|
|
DEFAULT_SAMPRATE INT DEFAULT 44100,
|
|
DEFAULT_BITRATE INT DEFAULT 0,
|
|
DEFAULT_THRESHOLD INT DEFAULT 0,
|
|
SWITCH_TYPE INT DEFAULT 0,
|
|
TTY_ID INT,
|
|
INDEX STATION_NAME_IDX (STATION_NAME),
|
|
INDEX CHANNEL_IDX (CHANNEL)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON DECKS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create SOURCES table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS SOURCES (
|
|
ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
STATION_NAME CHAR(64) NOT NULL,
|
|
CHANNEL INT UNSIGNED NOT NULL,
|
|
SOURCE_NAME CHAR(64) NOT NULL,
|
|
SERIAL_COMMAND CHAR(64),
|
|
GPO_LINE INT UNSIGNED,
|
|
INDEX STATION_NAME_IDX (STATION_NAME),
|
|
INDEX CHANNEL_IDX (CHANNEL),
|
|
INDEX SOURCE_NAME_IDX (SOURCE_NAME)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON SOURCES TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create RECORDINGS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS RECORDINGS (
|
|
ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
STATION_NAME CHAR(64) NOT NULL,
|
|
CHANNEL INT UNSIGNED NOT NULL,
|
|
CUT_NAME CHAR(12) NOT NULL,
|
|
SUN ENUM('N','Y') DEFAULT 'N',
|
|
MON ENUM('N','Y') DEFAULT 'N',
|
|
TUE ENUM('N','Y') DEFAULT 'N',
|
|
WED ENUM('N','Y') DEFAULT 'N',
|
|
THU ENUM('N','Y') DEFAULT 'N',
|
|
FRI ENUM('N','Y') DEFAULT 'N',
|
|
SAT ENUM('N','Y') DEFAULT 'N',
|
|
SOURCE_NAME CHAR(64),
|
|
DESCRIPTION CHAR(64),
|
|
START_TIME TIME,
|
|
LENGTH INT UNSIGNED,
|
|
START_GPI INT DEFAULT -1,
|
|
END_GPI INT DEFAULT -1,
|
|
TRIM_THRESHOLD INT UNSIGNED,
|
|
STARTDATE_OFFSET INT UNSIGNED DEFAULT 0,
|
|
ENDDATE_OFFSET INT UNSIGNED DEFAULT 0,
|
|
FORMAT INT DEFAULT 0,
|
|
CHANNELS INT DEFAULT 2,
|
|
SAMPRATE INT DEFAULT 44100,
|
|
BITRATE INT DEFAULT 0,
|
|
INDEX STATION_NAME_IDX (STATION_NAME),
|
|
INDEX CHANNEL_IDX (CHANNEL),
|
|
INDEX CUT_NAME_IDX (CUT_NAME),
|
|
INDEX SOURCE_NAME_IDX (SOURCE_NAME),
|
|
INDEX SUN_IDX (SUN),
|
|
INDEX MON_IDX (MON),
|
|
INDEX TUE_IDX (TUE),
|
|
INDEX WED_IDX (WED),
|
|
INDEX THU_IDX (THU),
|
|
INDEX FRI_IDX (FRI),
|
|
INDEX SAT_IDX (SAT)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON RECORDINGS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create AUDIO_PORTS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS AUDIO_PORTS (
|
|
ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
STATION_NAME CHAR(64) NOT NULL,
|
|
CARD_NUMBER INT NOT NULL,
|
|
CLOCK_SOURCE INT DEFAULT 0,
|
|
INPUT_0_LEVEL INT DEFAULT 0,
|
|
INPUT_0_TYPE INT DEFAULT 0,
|
|
INPUT_1_LEVEL INT DEFAULT 0,
|
|
INPUT_1_TYPE INT DEFAULT 0,
|
|
INPUT_2_LEVEL INT DEFAULT 0,
|
|
INPUT_2_TYPE INT DEFAULT 0,
|
|
INPUT_3_LEVEL INT DEFAULT 0,
|
|
INPUT_3_TYPE INT DEFAULT 0,
|
|
INPUT_4_LEVEL INT DEFAULT 0,
|
|
INPUT_4_TYPE INT DEFAULT 0,
|
|
INPUT_5_LEVEL INT DEFAULT 0,
|
|
INPUT_5_TYPE INT DEFAULT 0,
|
|
INPUT_6_LEVEL INT DEFAULT 0,
|
|
INPUT_6_TYPE INT DEFAULT 0,
|
|
INPUT_7_LEVEL INT DEFAULT 0,
|
|
INPUT_7_TYPE INT DEFAULT 0,
|
|
OUTPUT_0_LEVEL INT DEFAULT 0,
|
|
OUTPUT_1_LEVEL INT DEFAULT 0,
|
|
OUTPUT_2_LEVEL INT DEFAULT 0,
|
|
OUTPUT_3_LEVEL INT DEFAULT 0,
|
|
OUTPUT_4_LEVEL INT DEFAULT 0,
|
|
OUTPUT_5_LEVEL INT DEFAULT 0,
|
|
OUTPUT_6_LEVEL INT DEFAULT 0,
|
|
OUTPUT_7_LEVEL INT DEFAULT 0,
|
|
INDEX STATION_NAME_IDX (STATION_NAME),
|
|
INDEX CARD_NUMBER_IDX (CARD_NUMBER)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON AUDIO_PORTS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
|
|
#
|
|
# Create LOGS table
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS LOGS (
|
|
NAME CHAR(64) NOT NULL PRIMARY KEY,
|
|
SERVICE CHAR(10) NOT NULL,
|
|
DESCRIPTION CHAR(64),
|
|
ORIGIN_USER CHAR(8) NOT NULL,
|
|
ORIGIN_DATETIME DATETIME NOT NULL,
|
|
START_DATE DATE NOT NULL,
|
|
END_DATE DATE NOT NULL,
|
|
INDEX SERVICE_IDX (SERVICE),
|
|
INDEX DESCRIPTION_IDX (DESCRIPTION),
|
|
INDEX ORIGIN_USER_IDX (ORIGIN_USER),
|
|
INDEX START_DATE_IDX (START_DATE),
|
|
INDEX END_DATE_IDX (END_DATE)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON LOGS TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
}
|
|
# ############################################################################
|
|
|
|
|
|
# ############################################################################
|
|
# Initialize a Rivendell Database
|
|
# ############################################################################
|
|
function InitDB {
|
|
#
|
|
# Create Default Admin Account
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO USERS (LOGIN_NAME,PASSWORD,FULL_NAME,DESCRIPTION,ADMIN_USERS_PRIV,ADMIN_CONFIG_PRIV)
|
|
VALUES (\"$RDA_LOGIN_NAME\",PASSWORD(\"$RDA_PASSWORD\"),\"$RDA_FULL_NAME\",\"$RDA_DESCRIPTION\",'Y','Y')"
|
|
|
|
#
|
|
# Create Default User Account
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO USERS (LOGIN_NAME,PASSWORD,FULL_NAME,DESCRIPTION,
|
|
CREATE_CARTS_PRIV,DELETE_CARTS_PRIV,MODIFY_CARTS_PRIV,
|
|
EDIT_AUDIO_PRIV,ASSIGN_CART_PRIV,CREATE_LOG_PRIV,
|
|
DELETE_LOG_PRIV,PLAYOUT_LOG_PRIV,ARRANGE_LOG_PRIV,
|
|
ADDTO_LOG_PRIV,REMOVEFROM_LOG_PRIV,EDIT_CATCHES_PRIV)
|
|
VALUES (\"$USER_LOGIN_NAME\",PASSWORD(\"$USER_PASSWORD\"),\"$USER_FULL_NAME\",\"$USER_DESCRIPTION\",
|
|
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')"
|
|
|
|
#
|
|
# Create Default Workstation
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO STATIONS (NAME,DESCRIPTION,USER_NAME,DEFAULT_NAME)
|
|
VALUES (\"DEFAULT\",\"Default Workstation\",
|
|
\"$USER_LOGIN_NAME\",\"$USER_LOGIN_NAME\")"
|
|
|
|
#
|
|
# Create Test Tone Cart
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO CART(TYPE,NUMBER,GROUP_NAME,TITLE,ARTIST,CUT_QUANTITY,
|
|
FORCED_LENGTH)
|
|
VALUES (1,999999,\"TEST\",\"Test Tone\",\"Salem Radio Labs\",1,10000)"
|
|
|
|
#
|
|
# Create Default Audio Cut
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO CUTS SET CUT_NAME=\"999999_000\",CART_NUMBER=999999,
|
|
DESCRIPTION=\"1 kHz at Reference Level [-16 dBFS]\",
|
|
OUTCUE=\"[tone]\",CODING_FORMAT=0,
|
|
SAMPLE_RATE=44100,BIT_RATE=0,
|
|
CHANNELS=2,LENGTH=10000,START_POINT=0,END_POINT=10000,
|
|
ORIGIN_DATETIME=NOW(),ORIGIN_NAME=\"RDGen\""
|
|
|
|
#
|
|
# Create Clipboard Entry
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO CLIPBOARD SET CUT_NAME=\"clip\",CART_NUMBER=0,
|
|
DESCRIPTION=\"Default Clipboard\""
|
|
|
|
#
|
|
# Create Default Service
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO SERVICES (NAME,DESCRIPTION)
|
|
VALUES (\"$RD_SVC_NAME\",\"$RD_SVC_DESC\")"
|
|
|
|
#
|
|
# Create Default Groups
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO GROUPS (NAME,DESCRIPTION)
|
|
VALUES (\"TEMP\",\"Temporary Carts\")"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO GROUPS (NAME,DESCRIPTION)
|
|
VALUES (\"TEST\",\"Test Carts\")"
|
|
|
|
#
|
|
# Create Default Audio Permissions
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO AUDIO_PERMS (GROUP_NAME,SERVICE_NAME)
|
|
VALUES (\"TEMP\",\"Production\")"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO AUDIO_PERMS (GROUP_NAME,SERVICE_NAME)
|
|
VALUES (\"TEST\",\"Production\")"
|
|
|
|
#
|
|
# Create Default Library Configuration
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO RDLIBRARY (STATION,INSTANCE)
|
|
VALUES (\"0.0.0.0|0.0.0.0:0\",0)"
|
|
|
|
#
|
|
# Create Sample Log
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
CREATE TABLE IF NOT EXISTS SAMPLE_LOG (
|
|
ID INT NOT NULL PRIMARY KEY,
|
|
COUNT INT NOT NULL,
|
|
START_TIME TIME NOT NULL,
|
|
CART_NUMBER INT UNSIGNED NOT NULL,
|
|
TIME_TYPE INT NOT NULL,
|
|
TRANS_TYPE INT NOT NULL,
|
|
START_POINT INT NOT NULL DEFAULT -1,
|
|
END_POINT INT NOT NULL DEFAULT -1,
|
|
SEGUE_START_POINT INT NOT NULL DEFAULT -1,
|
|
SEGUE_END_POINT INT NOT NULL DEFAULT -1,
|
|
INDEX COUNT_IDX (COUNT),
|
|
INDEX CART_NUMBER_IDX (CART_NUMBER),
|
|
INDEX START_TIME_IDX (START_TIME)
|
|
)"
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
GRANT ALL ON SAMPLE_LOG TO $RD_USER IDENTIFIED BY \"$RD_PASSWORD\""
|
|
mysql -u $USER -p$PASSWORD -e"USE Rivendell;
|
|
INSERT INTO LOGS (NAME,SERVICE,DESCRIPTION,ORIGIN_USER,ORIGIN_DATETIME)
|
|
VALUES (\"SAMPLE\",\"Production\",\"Sample Log\",\"user\",NOW())"
|
|
}
|
|
|
|
# ############################################################################
|
|
|
|
|
|
# ############################################################################
|
|
# Generate Default Audio
|
|
# ############################################################################
|
|
function GenerateAudio {
|
|
if [ -d $RD_AUDIO_ROOT ] ; then
|
|
echo -n
|
|
else
|
|
mkdir $RD_AUDIO_ROOT
|
|
fi
|
|
rdgen -t 10 -l 16 $RD_AUDIO_ROOT/999999_000.wav
|
|
chown -R $SHELL_NAME: $RD_AUDIO_ROOT
|
|
}
|
|
# ############################################################################
|
|
|
|
|
|
# ############################################################################
|
|
# Upgrade a Rivendell Database
|
|
# ############################################################################
|
|
function UpgradeDB {
|
|
#
|
|
# Create the temporary database
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"CREATE DATABASE IF NOT EXISTS Rivendell_TEMP"
|
|
|
|
#
|
|
# Dump primary database to temporary
|
|
#
|
|
mysqldump -u $USER -p$PASSWORD --opt Rivendell \
|
|
| mysql -u $USER -p$PASSWORD -C Rivendell_TEMP
|
|
|
|
#
|
|
# Delete the primary database
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"DROP DATABASE Rivendell"
|
|
|
|
#
|
|
# Create Upgraded Rivendell Database
|
|
#
|
|
CreateDB
|
|
|
|
#
|
|
# Restore Data from temporary Database
|
|
#
|
|
mysqldump -u $USER -p$PASSWORD --opt Rivendell_TEMP \
|
|
| mysql -u $USER -p$PASSWORD -C Rivendell
|
|
|
|
#
|
|
# Delete the temporary database
|
|
#
|
|
mysql -u $USER -p$PASSWORD -e"DROP DATABASE Rivendell_TEMP"
|
|
}
|
|
# ############################################################################
|
|
|
|
|
|
# ############################################################################
|
|
# Main Routine
|
|
# ############################################################################
|
|
#
|
|
# Get the mySQL Administrator Login
|
|
#
|
|
read -p "mySQL account with Admin access []: " USER
|
|
if [ -z $USER ] ; then
|
|
echo "You must supply a mySQL administrator account name!"
|
|
exit 1
|
|
fi
|
|
read -s -p "mySQL Password: " PASSWORD
|
|
echo
|
|
|
|
#
|
|
# Get the shell account user and group names
|
|
#
|
|
read -p "User account name that will be running Rivendell []: " SHELL_NAME
|
|
echo
|
|
if [ -z $SHELL_NAME ] ; then
|
|
echo "You must supply a valid user account name!"
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
#
|
|
# Check that mySQL is running and accessible
|
|
#
|
|
mysql -s -u $USER -p$PASSWORD -e"use mysql" 2> /dev/null
|
|
if [ $? -ne 0 ] ; then
|
|
echo
|
|
echo "*** Unable to connect to the mySQL server. ***"
|
|
echo "It's possible that the server is not currently running, or that"
|
|
echo "the name/password you've supplied are not correct. Please"
|
|
echo "correct the problem and try again."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
#
|
|
# Check for an existing Rivendell database
|
|
#
|
|
mysql -s -u $USER -p$PASSWORD -e"use Rivendell" 2> /dev/null
|
|
if [ $? -eq 0 ] ; then
|
|
echo
|
|
echo "*** A Rivendell database already exists! ***"
|
|
echo "You can:"
|
|
echo " 1) Overwrite it and create a new one."
|
|
echo " [WARNING: overwriting the database will COMPLETELY DESTROY"
|
|
echo " any existing data and audio!]"
|
|
echo
|
|
echo " 2) Upgrade the existing database."
|
|
echo
|
|
echo " 3) Exit this utility."
|
|
echo
|
|
read -p "Your choice [3]: " OVERWRITE
|
|
echo
|
|
case "$OVERWRITE" in
|
|
"1")
|
|
echo -n "Deleting old Rivendell database..."
|
|
mysql -s -u $USER -p$PASSWORD -e"drop database Rivendell"
|
|
echo "done."
|
|
echo -n "Deleting old audio data..."
|
|
rm $RD_AUDIO_ROOT/*
|
|
echo "done."
|
|
echo -n "Creating new Rivendell database..."
|
|
CreateDB
|
|
echo "done."
|
|
echo -n "Initializing new Rivendell database..."
|
|
InitDB
|
|
echo "done."
|
|
echo -n "Generating new audio data..."
|
|
GenerateAudio
|
|
echo "done."
|
|
echo
|
|
exit 0
|
|
;;
|
|
|
|
"2")
|
|
echo -n "Upgrading Rivendell database..."
|
|
UpgradeDB
|
|
echo "done."
|
|
echo
|
|
exit 0
|
|
;;
|
|
|
|
"3" | "")
|
|
echo "Database NOT overwritten or upgraded."
|
|
echo
|
|
exit 0
|
|
;;
|
|
esac
|
|
fi
|
|
# ############################################################################
|
|
|
|
# End of rd_create_db
|
|
|
|
|
|
|