#!/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';

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";
}

