1// Copyright 2016 Google Inc. All rights reserved
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// +build ignore
16
17// This command will dump the contents of a kati stamp file into a more portable
18// format for use by other tools. For now, it just exports the files read.
19// Later, this will be expanded to include the Glob and Shell commands, but
20// those require a more complicated output format.
21
22#include <stdio.h>
23
24#include <string>
25
26#include "io.h"
27#include "log.h"
28#include "strutil.h"
29
30int main(int argc, char* argv[]) {
31  if (argc == 1) {
32    fprintf(stderr, "Usage: ckati_stamp_dump <stamp>\n");
33    return 1;
34  }
35
36  FILE *fp = fopen(argv[1], "rb");
37  if(!fp)
38    PERROR("fopen");
39
40  ScopedFile sfp(fp);
41  double gen_time;
42  size_t r = fread(&gen_time, sizeof(gen_time), 1, fp);
43  if (r != 1)
44    ERROR("Incomplete stamp file");
45
46  int num_files = LoadInt(fp);
47  if (num_files < 0)
48    ERROR("Incomplete stamp file");
49  for (int i = 0; i < num_files; i++) {
50    string s;
51    if (!LoadString(fp, &s))
52      ERROR("Incomplete stamp file");
53    printf("%s\n", s.c_str());
54  }
55
56  return 0;
57}
58