Subversion Repositories stackman

Rev

Rev 3 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/usr/bin/php
<?php

require_once __DIR__ . '/includes/db.inc.php';
require_once __DIR__ . '/includes/src.inc.php';
require_once __DIR__ . '/includes/wildcard.inc.php';

$stam_cfg = array();
$stam_cfg['simulation'] = false;
require_once __DIR__ . '/includes/config.inc.php';

if ($argc < 3) {
        echo "Syntax: $argv[0] <newCategory> <categoryWildcard>\n";
        #db_close();
        exit(2);
}

array_shift($argv);
$newcat = trim($argv[0]);

array_shift($argv);
if (!isset($argv[0]) || (trim($argv[0])=='')) $argv[0] = '*';

$arg = trim(implode(' ', $argv));
# while ($arg = array_shift($argv)) {
        $wildcard = trim(mywc($arg));

        # Simulation mode
        if ($stam_cfg['simulation']) {
                fwrite(STDERR, "============ CAT-MOVETO SIMULATION: $wildcard :: $newcat\n");
                #db_close();
                exit(0);
        }

        $res = db_query("SELECT id, cat, txt FROM stam_entries WHERE
                cat LIKE '".db_real_escape_string($wildcard)."'
        ");
        if (!$res) {
                fwrite(STDERR, db_error()."\n");
                #db_close();
                exit(1);
        }
        while ($row = db_fetch_array($res)) {
                $id     = $row['id'];
                $oldcat = $row['cat'];
                $txt    = $row['txt'];

                if ($oldcat == $newcat) {
                        echo "ID $id is already in <$oldcat>: $txt\n";
                        continue; // not affected
                }

                $x = db_query("UPDATE stam_entries SET
                        cat = '".db_real_escape_string($newcat)."'
                        WHERE
                        id = '".db_real_escape_string($id)."'
                        ");
                if (!$x) {
                        fwrite(STDERR, db_error()."\n");
                        #db_close();
                        exit(1);
                }

                $afr = db_affected_rows();
                if ($afr != 1) {
                        fwrite(STDERR, "Error: Could not update $id <$oldcat> '$txt'\n");
                        #db_close();
                        exit(1);
                } else {
                        echo green("OK! Moved $id from '$oldcat' to '$newcat': $txt\n");
                }
        }
# }

# ---

function green($txt) {
        return "\033[1;32;40m".$txt."\033[0m";
}