Exemplo n.º 1
0
Parser ::Parser(TTSQueue * queue, TTSTrie * trie)
{
	splitter = new Splitter();
	rules = new Rules();

	ruleEnabled = true;
	puncEnabled = true;

	abbr_exc	= new TTSHashTrie();
	this->queue	= queue;
	this->trie	= trie;
	LoadAbbreviations(abbr_exc);
	LoadExceptions(abbr_exc);
}
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
	int i = 1;
	int ret = 0;
	char *renv = NULL;
	Database = NULL;

	/* Basic environment variables */
	if ((renv = getenv("KPKG_DB_HOME")))
		dbname = strdup(renv);
	else
		dbname = strdup(KPKG_DB_HOME_DEFAULT);

	if ((renv = getenv("ROOT"))) {
		HOME_ROOT = strdup(renv);
		MIRRORS_DIRECTORY = malloc(sizeof(char)*PATH_MAX);
		PACKAGES_DIRECTORY = malloc(sizeof(char)*PATH_MAX);
		snprintf(MIRRORS_DIRECTORY, PATH_MAX, "%s/%s", HOME_ROOT, MIRRORS_DIRECTORY_DEFAULT);
		snprintf(PACKAGES_DIRECTORY, PATH_MAX, "%s/%s", HOME_ROOT, PACKAGES_DIRECTORY_DEFAULT);
	}
	else {
		HOME_ROOT = strdup("/");
		MIRRORS_DIRECTORY = strdup(MIRRORS_DIRECTORY_DEFAULT);
		PACKAGES_DIRECTORY = strdup(PACKAGES_DIRECTORY_DEFAULT);
	}

	noreadme = 0;
	if ((renv = getenv("NOREADME")))
		if (*renv)
			noreadme = 1;

	signal(SIGINT, cleanup);
	signal(SIGTERM, cleanup);

	/* Commands parsing */
	if (argc == 1) {
		free(dbname);
		free(HOME_ROOT);
		say_help(1);
	}

	LoadExceptions(INIT);
	if (!strcmp(argv[1], "help")) {
		free(dbname);
		free(HOME_ROOT);
		say_help(0);
	}
	else if (!strcmp(argv[1], "install"))
		while (argv[++i] != NULL)
			ret |= ret != 0 ? ret : InstallPkg(argv[i]);
	else if (!strcmp(argv[1], "remove"))
		while (argv[++i] != NULL)
			ret |= ret != 0 ? ret : RemovePkg(argv[i], 0);
	else if (!strcmp(argv[1], "search"))
		while (argv[++i] != NULL)
			ret |= SearchPkg(argv[i]);
	else if (!strcmp(argv[1], "provides"))
		while (argv[++i] != NULL)
			ret |= SearchFileInPkgDB(argv[i]);
	else if (!strcmp(argv[1], "download"))
		while (argv[++i] != NULL)
			ret |= DownloadPkg(argv[i], NULL);
	else if (!strcmp(argv[1], "instkdb"))
		while (argv[++i] != NULL)
			ret |= InstKpkgDB(argv[i]);
	else if (!strcmp(argv[1], "update")) {
		if (argv[2] == NULL)
			UpdateMirrorDB(NULL);
		else
			while (argv[++i] != NULL)
				ret |= UpdateMirrorDB(argv[i]);
	}
	else if (!strcmp(argv[1], "upgrade")) {
		LoadExceptions(DEFAULT);
		if (argv[2] == NULL)
			UpgradePkg(NULL);
		else
			while (argv[++i] != NULL)
				ret |= UpgradePkg(argv[i]);
		FreeExceptions();
	}
	else if (!strcmp(argv[1], "diff")) {
		UpgradeSystem(1);
	}

	free(dbname);
	free(HOME_ROOT);
	free(MIRRORS_DIRECTORY);
	free(PACKAGES_DIRECTORY);

	return ret;
}