#!/usr/bin/php
<?php

if (file_exists($filename = __DIR__ . '/../includes/cli.php')) {
	require_once($filename);
} else {
	require_once(__DIR__ . '/../www/includes/cli.php');
}

use ombutel\db;
use ombutel\inbound_route_importer;

function abort($message) {
	fwrite(STDERR, $message);
	exit(1);
}

class importer extends inbound_route_importer {

	protected $failed = false;

	public function import($filename) {
		parent::import($filename);
		return !$this->failed;
	}

	protected function info($line, $what) {
		fwrite(STDOUT, "info [{$line}]: {$what}\n");
	}

	protected function warn($line, $what) {
		fwrite(STDERR, "warning [{$line}]: {$what}\n");
	}

	protected function err($line, $what) {
		fwrite(STDERR, "error [{$line}]: {$what}\n");
		$this->failed = true;
	}
}

if ($argc > 1) {
	try {
		db::begin_transaction();
		$importer = new importer();
		if ($importer->import($argv[1])) {
			db::commit();
		} else {
			abort("Import failed\n");
		}
	} catch (Exception $e) {
		abort("Import failed: {$e->getMessage()}\n");
	}
} else {
	abort("Usage: {$argv[0]} filename\n");
}

?>
