mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-10-31 06:03:51 +01: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
 | |
| 
 | |
| 
 | |
| 
 |