blob: 551c6ef07b644ba9f77c415ec1a2f071ffabbb1a [file] [log] [blame]
adlr@google.com3defe6a2009-12-04 20:57:17 +00001// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <sys/types.h>
6#include <sys/stat.h>
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -08007#include <errno.h>
adlr@google.com3defe6a2009-12-04 20:57:17 +00008#include <unistd.h>
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -08009#include <set>
adlr@google.com3defe6a2009-12-04 20:57:17 +000010#include <string>
adlr@google.com3defe6a2009-12-04 20:57:17 +000011#include <glib.h>
adlr@google.com3defe6a2009-12-04 20:57:17 +000012#include "chromeos/obsolete_logging.h"
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080013#include "update_engine/delta_diff_generator.h"
adlr@google.com3defe6a2009-12-04 20:57:17 +000014#include "update_engine/subprocess.h"
15#include "update_engine/update_metadata.pb.h"
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080016#include "update_engine/utils.h"
adlr@google.com3defe6a2009-12-04 20:57:17 +000017
18// This file contains a simple program that takes an old path, a new path,
19// and an output file as arguments and the path to an output file and
20// generates a delta that can be sent to Chrome OS clients.
21
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080022using std::set;
23using std::string;
24
adlr@google.com3defe6a2009-12-04 20:57:17 +000025namespace chromeos_update_engine {
26
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080027namespace {
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080028
29void usage(const char* argv0) {
30 printf("usage: %s old_dir new_dir out_file\n", argv0);
31 exit(1);
32}
33
34bool IsDir(const char* path) {
35 struct stat stbuf;
36 TEST_AND_RETURN_FALSE_ERRNO(lstat(path, &stbuf) == 0);
37 return S_ISDIR(stbuf.st_mode);
38}
39
40int Main(int argc, char** argv) {
adlr@google.com3defe6a2009-12-04 20:57:17 +000041 g_thread_init(NULL);
42 Subprocess::Init();
43 if (argc != 4) {
44 usage(argv[0]);
45 }
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080046 logging::InitLogging("",
47 logging::LOG_ONLY_TO_SYSTEM_DEBUG_LOG,
48 logging::DONT_LOCK_LOG_FILE,
49 logging::APPEND_TO_OLD_LOG_FILE);
adlr@google.com3defe6a2009-12-04 20:57:17 +000050 const char* old_dir = argv[1];
51 const char* new_dir = argv[2];
52 if ((!IsDir(old_dir)) || (!IsDir(new_dir))) {
53 usage(argv[0]);
54 }
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080055
Andrew de los Reyes1e338b82010-01-22 14:57:27 -080056 // TODO(adlr): generate delta file
57
adlr@google.com3defe6a2009-12-04 20:57:17 +000058 return 0;
Andrew de los Reyes4fe15d02009-12-10 19:01:36 -080059}
60
61} // namespace {}
62
63} // namespace chromeos_update_engine
64
65int main(int argc, char** argv) {
66 return chromeos_update_engine::Main(argc, argv);
67}