#!/usr/bin/php
<?php
	chdir(dirname($argv[0]));
	require("../libraries/banshee.php");

	$db = new MySQLi_connection(DB_HOSTNAME, DB_DATABASE, DB_USERNAME, DB_PASSWORD);
	if ($db->connected == false) {
		exit("Internal error: database not available.\n");
	}

	if (count($argv) <= 1) {
		exit("Usage: ".$argv[0]." <username>\n");
	}
	$username = $argv[1];

	$query = "select count(*) as count from users where username=%s";
	if (($result = $db->execute($query, $username)) === false) {
		exit("Error while checking username.\n");
	}
	if ($result[0]["count"] == 0) {
		exit("User ".$username." not found.\n");
	}

	do {
		print "Enter password: ";
		system("/bin/stty -echo");
		$password = trim(fgets(STDIN));
		system("/bin/stty echo");
		print "\n";
	} while ($password == "");

	$query = "alter table %S change %S %S varchar(128) character set utf8 collate utf8_general_ci not null";
	$db->query($query, "users", "password", "password");

	$password = hash(PASSWORD_HASH, $password.hash(PASSWORD_HASH, $username));

	$query = "update users set password=%s where username=%s";
	if ($db->query($query, $password, $username) === false) {
		exit("Database error while changing password.\n");
	}

	if ($db->affected_rows == 0) {
		exit("Password is already as specified.\n");
	}
?>
