File: startpoint.php

package info (click to toggle)
fusionforge 5.3.2%2B20141104-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 60,472 kB
  • sloc: php: 271,846; sql: 36,817; python: 14,575; perl: 6,406; sh: 5,980; xml: 4,294; pascal: 1,411; makefile: 911; cpp: 52; awk: 27
file content (108 lines) | stat: -rwxr-xr-x 2,733 bytes parent folder | download | duplicates (3)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#! /usr/bin/php
<?php

require_once dirname(__FILE__).'/../common/include/env.inc.php';
require_once $gfcommon.'include/pre.php';

if (!$gfconn) {
	print forge_get_config ('forge_name')." Could Not Connect to Database: ".db_error();
	exit;
}

// HERE BEGINS THE ACTUAL SCRIPT

if (count($argv) < 2) {
	echo "Usage: startpoint.php [version]\n";
	check_version();
} else {
	$date = 0;
	$version = $argv[1];
	if (!check_tables()) {
		echo "ERROR: Could not check tables\n";
		exit();
	} else {
		$date = check_version($version);

		if ($date != 0) {
			set_version($version, $date);
		}
	}
}

function check_tables() {
	db_begin();

	if (!db_check_table_exists('database_startpoint')) {
		$res = db_query_params ('CREATE TABLE database_startpoint (db_version varchar(10), db_start_date int)',
			array()) ;

		if (!$res) { // db error
			echo "DB-ERROR-2: ".db_error()."\n";
			db_rollback();
			return false;
		}
	}

	if (!db_check_table_exists('database_changes')) {
		$res = db_query_params ('CREATE TABLE database_changes (filename text)',
			array()) ;

		if (!$res) { // db error
			echo "DB-ERROR-4: ".db_error()."\n";
			db_rollback();
			return false;
		}
	}

	db_commit();
	return true;
}

function check_version($version = 0) {
	$version  = trim($version);
	$date = 0;
	$versions = array('2.5', 'sfee3.3', 'sfee3.0', '2.6','3.0pre5', '3.0pre6', '3.0pre7', '3.0pre8', '3.0pre9',
					'3.0b1', '3.0rc2', '3.0', '3.1', '3.21', '3.3', '4.0', '4.0.1', '4.0.2', '4.5.0.1','4.5.11',
					'4.6', '4.7', '4.7.3', '4.8rc2', '4.8', '4.8.1','4.8.2');
	$dates    = array('20001219', '20021001', '20021001', '20021001', '20021206', '20021210', '20021214', '20021230',
					'20030115', '20030304',	'20030510', '20040511', '20031026', '20040108', '20040326', '20041025',
					'20041107', '20041215','20050803','20050810',
					'20070924', '20070924', '20070924', '20090402', '20090402', '20090402','20090402');

	if (in_array($version, $versions)) {
		$date = $dates[array_search($version, $versions)];
	} else {
		if ($version != 0) {
			echo "\nInvalid version!";
		}
		echo "\nUse one of the following versions:\n";
		foreach ($versions as $nbr) {
			echo "$nbr\n";
		}
	}
	return $date;
}

function set_version($version, $date) {
	db_begin();
	$res = db_query_params ('TRUNCATE TABLE database_startpoint',
			array()) ;

	if (!$res) { // db error
		echo "DB-ERROR-5: ".db_error()."\n";
		db_rollback();
		return false;
	}
	$res = db_query_params ('INSERT INTO database_startpoint (db_version, db_start_date) VALUES ($1, $2)',
			array($version,
			$date)) ;

	if (!$res) { // db error
		echo "DB-ERROR-5: ".db_error()."\n";
		db_rollback();
		return false;
	}
	echo "FusionForge Database Version: $version ($date)\n";
	db_commit();
}
?>