summaryrefslogtreecommitdiff
path: root/new-site.php
blob: 0568f8aadd9f373dc0bfa850cecdbc6d41cfc04e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php

// A script to make a new site
// TODO:
// Nginx conf
// Git repo
// Directory structure

// Handle options
$options = getopt('d:n:');

if (!array_key_exists('d', $options)) {
	echo "please provide a domain (-d)\n";
	exit(1);
}

if (!array_key_exists('n', $options)) {
	echo "please provide a name (-n)\n";
	exit(1);
}

$domain = $options['d'];
$name = $options['n'];

$conf = include_once('nginx.php');

$conf = sprintf($conf[0], $domain, $name, $name, $name, $name, $name);

echo "Making directory structure\n";

if (!mkdir('/web/sites/' . $name)) {
	echo "Failed to create '/web/sites/'" . $name . "\n";
	exit(1);
}

chown('/web/sites/' . $name, "nginx");

if (!mkdir('/web/sites/' . $name . '/logs')) {
	echo "Failed to create '/web/sites/'" . $name . "/logs\n";
	exit(1);
}

chown('/web/sites/' . $name . '/logs', "nginx");


if (!mkdir('/web/sites/' . $name . '/web')) {
	echo "Failed to create '/web/sites/'" . $name . "/web\n";
	exit(1);
}

chown('/web/sites/' . $name . '/logs', "nginx");

echo "Complete\n";

if (!file_put_contents("/web/etc/nginx/" . $name . ".conf", $conf)) {
	echo "Failed to write nginx conf\n";
}

chown('/web/etc/nginx/' . $name . ".conf", "nginx");

touch('/web/sites/' . $name . '/logs/' . $name . '.access_log');
chown('/web/sites/' . $name . '/logs/' . $name . '.access_log', "nginx");

touch('/web/sites/' . $name . '/logs/' . $name . '.error_log');
chown('/web/sites/' . $name . '/logs/' . $name . '.error_log', "nginx");

touch('/web/sites/' . $name . '/web/index.php');
chown('/web/sites/' . $name . '/web/index.php', "nginx");