summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Copley <zach@controlyourself.ca>2009-06-15 22:52:14 +0000
committerZach Copley <zach@controlyourself.ca>2009-06-15 22:52:14 +0000
commit1a5125137521a3c7f70c7e8a5000a1b81305cdfc (patch)
tree709126a00b72688e2db7354a7a3eed8c8cafe977
parent12cd87cd7b7c207b6f9c30996f0fabb019d6fd76 (diff)
parent177e4adf40bd41fc711c91fc6d16729b7f1b5796 (diff)
Merge branch '0.8.x' of git@gitorious.org:laconica/dev into 0.8.x
-rw-r--r--classes/Status_network.php15
-rw-r--r--scripts/setup.cfg.sample11
-rwxr-xr-xscripts/setup_status_network.sh30
3 files changed, 52 insertions, 4 deletions
diff --git a/classes/Status_network.php b/classes/Status_network.php
index d2b942bfb..bf05ad61e 100644
--- a/classes/Status_network.php
+++ b/classes/Status_network.php
@@ -43,12 +43,19 @@ class Status_network extends DB_DataObject
{
global $config;
+ $sn = null;
+
// XXX I18N, probably not crucial for hostnames
// XXX This probably needs a tune up
if (0 == strncasecmp(strrev($wildcard), strrev($servername), strlen($wildcard))) {
- $parts = explode('.', $servername);
- $sn = Status_network::staticGet('nickname', strtolower($parts[0]));
+ // special case for exact match
+ if (0 == strcasecmp($servername, $wildcard)) {
+ $sn = Status_network::staticGet('nickname', '');
+ } else {
+ $parts = explode('.', $servername);
+ $sn = Status_network::staticGet('nickname', strtolower($parts[0]));
+ }
} else {
$sn = Status_network::staticGet('hostname', strtolower($servername));
}
@@ -70,9 +77,9 @@ class Status_network extends DB_DataObject
$config['site']['logo'] = $sn->logo;
}
- return true;
+ return $sn;
} else {
- return false;
+ return null;
}
}
}
diff --git a/scripts/setup.cfg.sample b/scripts/setup.cfg.sample
new file mode 100644
index 000000000..4194bc146
--- /dev/null
+++ b/scripts/setup.cfg.sample
@@ -0,0 +1,11 @@
+# CONFIGURATION FILE for setup_status_network.sh
+
+# Base database name; full name will include nickname
+
+export DBBASE=_example_net
+export USERBASE=_example_net
+export ADMIN=root
+export ADMINPASS=yourpassword
+export SITEDB=example_net_site
+export AVATARBASE=/var/www/avatar.example.net
+
diff --git a/scripts/setup_status_network.sh b/scripts/setup_status_network.sh
new file mode 100755
index 000000000..d80612b94
--- /dev/null
+++ b/scripts/setup_status_network.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+source ./setup.cfg
+
+export nickname=$1
+export sitename=$2
+
+export password=`pwgen 20`
+export database=$nickname$DBBASE
+export username=$nickname$USERBASE
+
+# Create the db
+
+mysqladmin -u $ADMIN --password=$ADMINPASS create $database
+
+for f in laconica.sql sms_carrier.sql foreign_services.sql notice_source.sql; do
+ mysql -u $ADMIN --password=$ADMINPASS $database < ../db/$f;
+done
+
+mysql -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS
+
+GRANT INSERT,SELECT,UPDATE,DELETE ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password';
+GRANT INSERT,SELECT,UPDATE,DELETE ON $database.* TO '$username'@'%' IDENTIFIED BY '$password';
+INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created)
+VALUES ('$nickname', '$DBHOST', '$username', '$password', '$database', '$sitename', now());
+
+ENDOFCOMMANDS
+
+mkdir $AVATARBASE/$nickname
+chmod a+w $AVATARBASE/$nickname