Skip to content

Instantly share code, notes, and snippets.

@igorw
Created July 19, 2009 23:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save igorw/150080 to your computer and use it in GitHub Desktop.
Save igorw/150080 to your computer and use it in GitHub Desktop.
#!/bin/bash
# phpBB QuickInstall - bash version
function create {
# replace files
rm -rf "$board_dir/$1"
cp -rf "$fresh_dir" "$board_dir/$1"
# create tables
# drop database not needed when mysqldump is used
cat "$dump_file" | sed "s/phpbb_/$(echo $1)_/" | mysql$args "$dbname"
# create config.php
cat > "$board_dir/$1/config.php" << EOF
<?php
// phpBB 3.0.x auto-generated configuration file
// Do not change anything in this file!
\$dbms = 'mysql';
\$dbhost = '$dbhost';
\$dbport = '$dbport';
\$dbname = '$dbname';
\$dbuser = '$dbuser';
\$dbpasswd = '$dbpasswd';
\$table_prefix = '$(echo $1)_';
\$acm_type = 'file';
\$load_extensions = '';
@define('PHPBB_INSTALLED', true);
@define('DEBUG', true);
@define('DEBUG_EXTRA', true);
?>
EOF
# file permissions
chmod 777 "$board_dir/$1/cache"
chmod 777 "$board_dir/$1/images/avatars/upload"
chmod 777 "$board_dir/$1/store"
# overwrite config settings
set_config "$1" "cookie_name" "phpbb3_$RANDOM"
set_config "$1" "script_path" "$web_root/$1"
set_config "$1" "site_desc" "Development Board"
set_config "$1" "sitename" "The Bleeding Edge"
}
function remove {
# remove files
rm -rf "$board_dir/$1"
# drop tables
mysql$args -r -s --skip-column-names -e "show tables" "$dbname" | grep "^$(echo $1)_" | while read line
do
mysql$args -e "drop table $line" "$dbname"
done
}
function dump {
mysqldump$args "$1" > "$2"
}
function set_config {
mysql$args -e "update $(echo $1)_config set config_value = '$3' where config_name = '$2'" "$dbname"
}
# general config
board_dir="phpBB/"
web_root="~/igor/qi.sh/$board_dir"
fresh_dir="source/phpBB3"
dump_file="source/dump.sql"
# db config
dbhost=""
dbport=""
dbuser="root"
dbpasswd=""
dbname="qi_sh"
if [ "$#" -lt 1 ]; then
echo "qi.sh mode"
echo "modes: mk, rm, ls, dump"
exit
fi
# prepare mysql args
args=""
if [ "$dhost" != "" ]; then
args="$args -h$dbhost"
fi
if [ "$dbport" != "" ]; then
args="$args -P$dbport"
fi
if [ "$dbuser" != "" ]; then
args="$args -u$dbuser"
fi
if [ "$dbpasswd" != "" ]; then
args="$args -p$dbpasswd"
fi
case "$1" in
"mk")
shift
if [ "$#" -lt 1 ]; then
echo "usage: qi.sh mk board-name"
exit
fi
remove "$1"
create "$1"
;;
"rm")
shift
if [ "$#" -lt 1 ]; then
echo "usage: qi.sh rm board-name"
exit
fi
remove "$1"
;;
"ls")
ls "$board_dir"
;;
"dump")
shift
if [ "$#" -lt 2 ]; then
echo "usage: qi.sh dump database dump-file"
exit
fi
dump "$1" "$2"
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment