Project

General

Profile

Download (3.77 KB) Statistics
| Branch: | Tag: | Revision:
1
/*   cvs_sync
2
 *   Written by Scott Ullrich
3
 *   (C)2005 Scott Ullrich
4
 *   Part of the pfSense project pfSsh.php subsystem
5
 *   For users of cvs accounts to keep your test machine up to date
6
 */
7

    
8
function create_supfile($branch) {
9

    
10
	if($branch == "HEAD") 
11
		$BRANCHTAG = ".";
12
	else
13
		$BRANCHTAG = $branch;
14

    
15
	$supfile = "
16
*default host=cvs.pfsense.com
17
*default base=/home/pfsense/$branch
18
*default release=cvs tag=$BRANCHTAG
19
*default delete use-rel-suffix
20
pfSense
21
*default compress
22
";
23

    
24
	file_put_contents("/var/etc/pfSense-supfile", $supfile);
25
}
26

    
27
unlink_if_exists("/tmp/config.cache");
28

    
29
if(!file_exists("/usr/local/bin/cvsup")) {
30
	echo "Cannot find cvsup, pkg_add in progress...";
31
	system("/usr/sbin/pkg_add -r http://www.pfsense.com/packages/All/cvsup-without-gui-16.1h_2.tbz");
32
}
33

    
34
if(!file_exists("/usr/bin/cvs")) {
35
	echo "Cannot find cvs, fetching static cvs...";
36
	system("fetch -o /usr/bin/cvs http://www.pfsense.com/~sullrich/extra/cvs");
37
	system("chmod a+rx /usr/bin/cvs");
38
}
39

    
40
global $argv;
41

    
42
/* NOTE: Set branches here */
43
$branches = array("HEAD" => "Main development branch",
44
				  "RELENG_1" => "1.2 Release branch",
45
				  "RELENG_1_2" => "1.3 development branch");
46

    
47
if(!$argv[3]) {
48
	echo "\nPlease select which branch you would like:\n\n";
49
	foreach($branches as $branchname => $branchdesc) {
50
		echo "{$branchname} - {$branchdesc}\n";
51
	}
52
	$branch = readline("\n> ");
53
	echo "\n";
54
} else {
55
	$branch = $argv[3];
56
}
57

    
58
create_supfile($branch);
59

    
60
$CODIR =  "/home/pfsense/$branch";
61

    
62
exec("mkdir -p /home/pfsense/$BRANCHTAG");
63

    
64
$found = false;
65
foreach($branches as $branchname => $branchdesc) {
66
	if($branchname == $branch) 
67
		$found = true;
68
}
69
if(!$found) {
70
	echo "\nInvalid branch.\n";
71
	exit;
72
}
73

    
74
echo "===> Checking out $branch\n";
75
exec("mkdir -p /home/pfsense/$branch");
76
system("cvsup /var/etc/pfSense-supfile");
77
exec("rm -rf /usr/local/www/includes/*");
78
exec("rm -rf /usr/local/www/javascript/*");
79
exec("find /usr/local/www -name \"*.js\" -exec rm {} \;");
80

    
81
exec("mkdir -p /tmp/lighttpd/cache/compress/");
82

    
83
exec("cd ${CODIR}/ && find . -name CVS -exec rm -rf {} \; 2>/dev/null");
84
exec("cd ${CODIR}/ && find . -name pfSense.tgz -exec rm {} \; 2>/dev/null");
85
exec("rm -rf ${CODIR}/conf*");
86
exec("rm ${CODIR}/pfSense/usr/local/www/trigger_initial_wizard 2>/dev/null");
87
exec("rm ${CODIR}/pfSense/etc/crontab 2>/dev/null");
88
exec("rm ${CODIR}/pfSense/etc/master.passwd 2>/dev/null");
89
exec("rm ${CODIR}/pfSense/etc/passwd 2>/dev/null");
90
exec("rm ${CODIR}/pfSense/etc/fstab 2>/dev/null");
91
exec("rm ${CODIR}/pfSense/etc/ttys 2>/dev/null");
92
exec("rm ${CODIR}/pfSense/etc/group 2>/dev/null");
93
exec("rm ${CODIR}/pfSense/etc/fstab 2>/dev/null");
94
exec("rm ${CODIR}/pfSense/boot/device.hints 2>/dev/null");
95
exec("rm ${CODIR}/pfSense/boot/loader.conf 2>/dev/null");
96
exec("rm ${CODIR}/pfSense/boot/loader.rc 2>/dev/null");
97
exec("rm -rf ${CODIR}/pfSense/conf/ 2>/dev/null");
98
exec("rm -rf ${CODIR}/pfSense/cf/ 2>/dev/null");
99
exec("rm -rf ${CODIR}/pfSense/root/.shrc");
100
exec("rm -rf ${CODIR}/pfSense/root/.tcshrc");
101
exec("rm -f ${CODIR}/pfSense/etc/syslog.conf 2>/dev/null");
102

    
103
echo "Installing new files...\n";
104

    
105
exec("cd $CODIR/pfSense ; tar -cpf - . | (cd / ; tar -Uxpf -)");
106

    
107
echo "CVS Sync Complete\n";
108

    
109
echo "Removing FAST-CGI temporary files...\n";
110
exec("find /tmp -name \"*php*\" -exec rm -rf {} \;");
111

    
112
exec("rm -rf /tmp/xcache/* 2>/dev/null");
113

    
114
echo "Upgrading configuration...\n";
115

    
116
convert_config();
117
/* setup php.ini */
118
convert_config();
119
sync_webgui_passwords();
120

    
121
echo "Restarting check_reload_status...\n";
122
exec("killall check_reload_status");
123
mwexec_bg("nohup /usr/bin/nice -n20 /usr/local/sbin/check_reload_status");
124

    
125
echo "Configuring filter...";
126
exec("/etc/rc.filter_configure_sync");
127
exec("pfctl -f /tmp/rules.debug");
128
echo "\n";
129

    
130
echo "===> Checkout complete.  Your system is now sync'd.  Scripting terminating.\n";
131

    
132
exec("killall php");
133
touch("/tmp/restart_webgui");
134

    
(1-1/4)