12 |
SQL_PASS=mage |
SQL_PASS=mage |
13 |
SQL_HOST=localhost |
SQL_HOST=localhost |
14 |
SQL_DB=mage |
SQL_DB=mage |
15 |
|
SQL_TABLE_PACKAGES=mg_packages |
16 |
|
SQL_TABLE_CATEGORIES=mg_categories |
17 |
|
|
18 |
create_database() |
create_database() |
19 |
{ |
{ |
20 |
# create categories table |
# create categories table |
21 |
mysqldo "CREATE TABLE IF NOT EXISTS categories ( |
mysqldo "CREATE TABLE IF NOT EXISTS ${SQL_TABLE_CATEGORIES} ( |
22 |
id int(10) NOT NULL auto_increment, |
id int(10) NOT NULL auto_increment, |
23 |
pcat varchar(255) NOT NULL, |
pcat varchar(255) NOT NULL, |
24 |
PRIMARY KEY (id) |
PRIMARY KEY (id) |
25 |
)" |
)" |
26 |
|
|
27 |
# create packages table |
# create packages table |
28 |
mysqldo "CREATE TABLE IF NOT EXISTS packages ( |
mysqldo "CREATE TABLE IF NOT EXISTS ${SQL_TABLE_PACKAGES} ( |
29 |
id int(10) NOT NULL auto_increment, |
id int(10) NOT NULL auto_increment, |
30 |
pname varchar(255) NOT NULL, |
pname varchar(255) NOT NULL, |
31 |
pver varchar(255) NOT NULL, |
pver varchar(255) NOT NULL, |
32 |
pbuild varchar(255) NOT NULL, |
pbuild varchar(255) NOT NULL, |
33 |
pcat varchar(255) NOT NULL, |
pcat varchar(255) NOT NULL, |
34 |
state varchar(255) NOT NULL, |
state varchar(255) NOT NULL, |
35 |
description varchar(255) default NULL, |
description text default NULL, |
36 |
homepage varchar(255) default NULL, |
homepage varchar(255) default NULL, |
37 |
pkgtype varchar(255) default NULL, |
pkgtype varchar(255) default NULL, |
38 |
depend varchar(255) default NULL, |
depend text default NULL, |
39 |
sdepend varchar(255) default NULL, |
sdepend text default NULL, |
40 |
provide varchar(255) default NULL, |
provide text default NULL, |
41 |
time datetime NOT NULL, |
time datetime NOT NULL, |
42 |
flag int(1) NOT NULL default '1', |
flag int(1) NOT NULL default '1', |
43 |
PRIMARY KEY (id) |
PRIMARY KEY (id) |
57 |
# exclude includes |
# exclude includes |
58 |
[[ ${pcat} = include ]] && continue |
[[ ${pcat} = include ]] && continue |
59 |
|
|
60 |
id=$(mysqldo "SELECT id FROM categories WHERE pcat='${pcat}'") |
id=$(mysqldo "SELECT id FROM ${SQL_TABLE_CATEGORIES} WHERE pcat='${pcat}'") |
61 |
|
|
62 |
# only add if not found |
# only add if not found |
63 |
if [[ -z ${id} ]] |
if [[ -z ${id} ]] |
64 |
then |
then |
65 |
mysqldo "INSERT INTO categories ( pcat ) VALUES ( '${pcat}' )" |
mysqldo "INSERT INTO ${SQL_TABLE_CATEGORIES} ( pcat ) VALUES ( '${pcat}' )" |
66 |
fi |
fi |
67 |
done |
done |
68 |
} |
} |
92 |
|
|
93 |
# the description may contain some escape characters like ' and " |
# the description may contain some escape characters like ' and " |
94 |
# which break the above loop |
# which break the above loop |
95 |
DESCRIPTION="$(get_value_from_magefile ${i} ${MAGEFILE})" |
DESCRIPTION="$(get_value_from_magefile DESCRIPTION ${MAGEFILE} | sed "s:':\\\':g")" |
96 |
|
|
97 |
# get var from the name of the magefile |
# get var from the name of the magefile |
98 |
PCAT="$(magename2pcat ${MAGEFILE})" |
PCAT="$(magename2pcat ${MAGEFILE})" |
105 |
SDEPEND=$(echo ${SDEPEND} | sed 's/[^a-zA-Z0-9]\{2\}\ //g') |
SDEPEND=$(echo ${SDEPEND} | sed 's/[^a-zA-Z0-9]\{2\}\ //g') |
106 |
|
|
107 |
# check if there is a pname for the same state |
# check if there is a pname for the same state |
108 |
local id=$(mysqldo "SELECT id FROM packages WHERE pname='${PNAME}' AND state='${STATE}'") |
local id=$(mysqldo "SELECT id FROM ${SQL_TABLE_PACKAGES} WHERE pname='${PNAME}' AND state='${STATE}'") |
109 |
|
|
110 |
# get categorie id |
# get categorie id |
111 |
local pcatid=$(mysqldo "SELECT id FROM categories WHERE pcat='${PCAT}'") |
local pcatid=$(mysqldo "SELECT id FROM ${SQL_TABLE_CATEGORIES} WHERE pcat='${PCAT}'") |
112 |
|
|
113 |
# get current time |
# get current time |
114 |
local time="$(date +%F\ %T)" |
local time="$(date +%F\ %T)" |
115 |
|
|
116 |
|
#get last primary key !!! |
117 |
|
|
118 |
# found, then update |
# found, then update |
119 |
if [[ ! -z ${id} ]] |
if [[ ! -z ${id} ]] |
120 |
then |
then |
121 |
mysqldo "UPDATE packages SET |
mysqldo "UPDATE ${SQL_TABLE_PACKAGES} SET |
122 |
pname='${PNAME}', |
pname='${PNAME}', |
123 |
pver='${PVER}', |
pver='${PVER}', |
124 |
pbuild='${PBUILD}', |
pbuild='${PBUILD}', |
136 |
|
|
137 |
else |
else |
138 |
# else import to database as new |
# else import to database as new |
139 |
mysqldo "INSERT INTO packages ( |
mysqldo "INSERT INTO ${SQL_TABLE_PACKAGES} ( |
140 |
|
id, |
141 |
pname, |
pname, |
142 |
pver, |
pver, |
143 |
pbuild, |
pbuild, |
153 |
flag |
flag |
154 |
) |
) |
155 |
VALUES ( |
VALUES ( |
156 |
|
'${id}', |
157 |
'${PNAME}', |
'${PNAME}', |
158 |
'${PVER}', |
'${PVER}', |
159 |
'${PBUILD}', |
'${PBUILD}', |
167 |
'${PROVIDE}', |
'${PROVIDE}', |
168 |
'${time}', |
'${time}', |
169 |
'1' |
'1' |
170 |
)" |
) ON DUPLICATE KEY UPDATE ${SQL_TABLE_PACKAGES} SET |
171 |
|
pname='${PNAME}', |
172 |
|
pver='${PVER}', |
173 |
|
pbuild='${PBUILD}', |
174 |
|
pcat='${pcatid}', |
175 |
|
state='${STATE}', |
176 |
|
description='${DESCRIPTION}', |
177 |
|
homepage='${HOMEPAGE}', |
178 |
|
pkgtype='${PKGTYPE}', |
179 |
|
depend='${DEPEND}', |
180 |
|
sdepend='${SDEPEND}', |
181 |
|
provide='${PROVIDE}', |
182 |
|
time='${time}', |
183 |
|
flag='1' |
184 |
|
WHERE id='${id}'" |
185 |
fi |
fi |
186 |
} |
} |
187 |
|
|
188 |
reset_flags() |
reset_flags() |
189 |
{ |
{ |
190 |
# set all flags to zero |
# set all flags to zero |
191 |
mysqldo "UPDATE packages SET flag='0'" |
mysqldo "UPDATE ${SQL_TABLE_PACKAGES} SET flag='0'" |
192 |
} |
} |
193 |
|
|
194 |
prune_old_packages() |
prune_old_packages() |
198 |
# mysqldo "SELECT id FROM packages WHERE flag='0'" |
# mysqldo "SELECT id FROM packages WHERE flag='0'" |
199 |
|
|
200 |
# delete them |
# delete them |
201 |
mysqldo "DELETE FROM packages WHERE flag='0'" |
mysqldo "DELETE FROM ${SQL_TABLE_PACKAGES} WHERE flag='0'" |
202 |
} |
} |
203 |
|
|
204 |
echo "Processing Categories ..." |
echo "Processing Categories ..." |