Magellan Linux

Diff of /trunk/pkgtools/mage2mysql.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 802 by niro, Tue Feb 10 20:01:36 2009 UTC revision 1331 by niro, Tue May 31 17:44:01 2011 UTC
# Line 12  SQL_USER=mage Line 12  SQL_USER=mage
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)
# Line 55  evaluate_categories() Line 57  evaluate_categories()
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  }  }
# Line 90  evaluate_magefile() Line 92  evaluate_magefile()
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})"
# Line 103  evaluate_magefile() Line 105  evaluate_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}',
# Line 132  evaluate_magefile() Line 136  evaluate_magefile()
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,
# Line 148  evaluate_magefile() Line 153  evaluate_magefile()
153   flag   flag
154   )   )
155   VALUES (   VALUES (
156     '${id}',
157   '${PNAME}',   '${PNAME}',
158   '${PVER}',   '${PVER}',
159   '${PBUILD}',   '${PBUILD}',
# Line 161  evaluate_magefile() Line 167  evaluate_magefile()
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()
# Line 178  prune_old_packages() Line 198  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 ..."

Legend:
Removed from v.802  
changed lines
  Added in v.1331