// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // This tool manages privacy blacklists. Primarily for loading a text // blacklist into the binary aggregate blacklist. #include #include "base/process_util.h" #include "base/string_util.h" #include "chrome/browser/privacy_blacklist/blacklist.h" #include "chrome/browser/privacy_blacklist/blacklist_io.h" #ifdef OS_POSIX #define ICHAR char #define ICERR std::cerr #define IMAIN main #else #define ICHAR wchar_t #define ICERR std::wcerr #define IMAIN wmain #endif namespace { int PrintUsage(int argc, ICHAR* argv[]) { ICERR << "Usage: " << argv[0] << " ... \n" " are text blacklists (.pbl) to load.\n" " is the binary output blacklist repository.\n\n" "Adds all entries from to .\n" "Creates if it does not exist.\n"; return 1; } } int IMAIN(int argc, ICHAR* argv[]) { base::EnableTerminationOnHeapCorruption(); if (argc < 3) return PrintUsage(argc, argv); BlacklistIO io; for (int current = 1; current < argc-1; ++current) { FilePath input(argv[current]); if (!io.Read(input)) { ICERR << "Error reading " << argv[current] << ":\n" << io.last_error() << "\n"; return -1; } } FilePath output(argv[argc-1]); if (!io.Write(output)) ICERR << "Error writing " << argv[2] << ":\n" << io.last_error() << "\n"; return 0; }