From 84259c408f10129c1cc62371c940ae93ae0cdca7 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sat, 27 Jun 2015 13:31:03 -0700 Subject: [PATCH] xadd: replace Python script with PHP equivalent The python version was failing cryptically. For scripts that access the DB, I'd like to move from Python to PHP, so that we have one less DB layer to maintain. --- tools/xadd | 82 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 22 deletions(-) diff --git a/tools/xadd b/tools/xadd index 5a6d3c2ce5..c787d34149 100755 --- a/tools/xadd +++ b/tools/xadd @@ -1,27 +1,65 @@ -#!/usr/bin/env python +#!/usr/bin/env php +. -# $Id$ +// parse project.xml; add apps and platforms to the DB -''' -Add platform and application records to the BOINC database. -Reads info from "project.xml", e.g.: +chdir("html/inc"); +require_once("boinc_db.inc"); +chdir("../.."); - - - i686-pc-linux-gnu - Linux/x86 - - - astropulse - AstroPulse - - +$x = simplexml_load_file("project.xml"); -See http://boinc.berkeley.edu/tool_xadd.php -''' +foreach ($x->platform as $platform) { + $n = (string)$platform->name; + $ufn = (string)$platform->user_friendly_name; + $p = BoincPlatform::lookup("name='$n'"); + if ($p) { + if ($p->user_friendly_name != $ufn) { + $p->update("user_friendly_name='$ufn'"); + echo "updated user friendly name of platform $n\n"; + } else { + echo "platform $n already in DB\n"; + } + } else { + $now = time(); + $q = "(create_time, name, user_friendly_name) values ($now, '$n', '$ufn')"; + BoincPlatform::insert($q); + echo "added platform: $q\n"; + } +} -import boinc_path_config -from Boinc import database, db_mid, projectxml - -database.connect() -projectxml.default_project().commit_all() +foreach ($x->app as $app) { + $n = (string)$app->name; + $ufn = (string)$app->user_friendly_name; + $a = BoincApp::lookup("name='$n'"); + if ($a) { + if ($a->user_friendly_name != $ufn) { + $a->update("user_friendly_name='$ufn'"); + echo "updated user friendly name of app $n\n"; + } else { + echo "app $n already in DB\n"; + } + } else { + $now = time(); + $q = "(create_time, name, user_friendly_name) values ($now, '$n', '$ufn')"; + BoincApp::insert($q); + echo "added app: $q\n"; + } +} +?>