Хранилища Subversion ant

Редакция

Редакция 45 | К новейшей редакции | Содержимое файла | Последнее изменение | Открыть журнал | RSS

Редакция Автор № строки Строка
43 alex-w 1
<?php
2
 
3
/**
4
 * Project:     Ant: sources.list generator
5
 * File:        m-process.php
6
 *
7
 * This application is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
11
 *
12
 * This application is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with this library; if not, write to the Free Software
19
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
 *
21
 */
22
 
23
 
24
include "lib/init.php";
25
$status = abs(intval($_POST["step"]));
26
$dist	= abs(intval($_POST["d"]));
27
$vers	= abs(intval($_POST["v"]));
28
 
29
if (!isset($status)) { $status = 0; }
30
 
31
if (isset($dist)) {
32
	$query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id WHERE v.dist_id='$dist'");
33
	$distvers  = "<h2>Выбор версии дистрибутива</h2>\n";
34
	$distvers .= "<form action='./m-process.php' method='post' id='distro' >\n";
35
	$distvers .= "<p><input type='hidden' name='step' value='2' /><input type='hidden' name='d' value='".$dist."' /></p>\n";
36
	while ($query->fetchInto($version, DB_FETCHMODE_ASSOC)) {
37
		if ($version["vname"]!="") {
38
			$distname = "&#8220;".stripslashes($version["vname"])."&#8221;";
39
		} else {
40
			$distname = "";
41
		}
42
		$distvers .= "<p><input type='radio' name='v' value='".$version["version_id"]."' />".stripslashes($version["distname"])." ".stripslashes($version["version"])." ".$distname."</p>\n";
43
	}
44
	$distvers .= "<p><input type='submit' value='Выбрать версию' /></p>";
45
	$distvers .= "</form>";
46
}
47
 
48
if (isset($vers)) {
49
	$query =& $db->query("SELECT * FROM settings");
50
	$settings = array();
51
	while ($query->fetchInto($setting, DB_FETCHMODE_ASSOC)) {
52
		$settings[stripslashes($setting["opt"])] = stripslashes($setting["optvalue"]);
53
	}
54
	$query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id JOIN dtype p ON d.disttype=p.type_id WHERE v.dist_id='$dist' AND v.version_id='$vers'");
55
	$query->fetchInto($infodist, DB_FETCHMODE_ASSOC);
56
	$distname = "";
57
	if ($infodist["vname"]!="") {
58
		$distname = "&#8220;".stripslashes($infodist["vname"])."&#8221;";
59
	}
60
	$info = "<h2>Доступные репозитории для <em>".stripslashes($infodist["distname"])." ".stripslashes($infodist["version"])." ".$distname."</em></h2>";
61
	$query =& $db->query("SELECT * FROM repository r JOIN ver2rep v ON r.rep_id=v.ver_id JOIN version v2 ON v.ver_id=v2.version_id JOIN scheme s ON s.scheme_id=r.scheme_id WHERE v.ver_id='$vers' ORDER BY r.rtype_id, r.scheme_id ASC");
62
	$result = "<p>Скопируйте эти строки в файл <span id='sourceslist'>/etc/apt/sources.list</span>:</p><pre>";
63
	while ($query->fetchInto($resinfo, DB_FETCHMODE_ASSOC)) {
64
		$repscheme = stripslashes($resinfo["scheme"]);
65
 
66
		$querysect =& $db->query("SELECT * FROM section s JOIN sect2rep r ON s.sect_id=r.sect_id WHERE r.rep_id='$resinfo[rep_id]'");
67
		$sections = "";
68
		while ($querysect->fetchInto($section, DB_FETCHMODE_ASSOC)) {
69
			$sections .= stripslashes($section["sectname"])." ";
70
		}
71
 
72
		$repscheme = str_replace("{TYPE}",stripslashes($infodist["type"]),$repscheme);
73
		$repscheme = str_replace("{PROTO}",$setting["proto"],$repscheme);
74
		$repscheme = str_replace("{URL}",$setting["url"],$repscheme);
75
		$repscheme = str_replace("{REP}",stripslashes($resinfo["repname"]),$repscheme);
76
		$repscheme = str_replace("{DIST}",stripslashes($infodist["vcodename"]),$repscheme);
77
		$repscheme = str_replace("{SECT}",$sections,$repscheme);
78
 
79
		$result .= $repscheme."\n";
80
	}
81
	$result .= "</pre>";
82
	$result = $info.$result;
83
}
84
 
85
 
86
switch ($status) {
87
	case '1':
88
		print $distvers;
89
		break;
90
	case '2':
91
		print $result;
92
		break;
93
}
94
 
95
?>