diff --git a/Makefile.in b/Makefile.in
index 4dc2555..4110365 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -20,6 +20,9 @@
V=@
PROGRAMS=\
+ cache_check \
+ cache_restore \
+ \
thin_check \
thin_dump \
thin_restore \
@@ -65,6 +68,7 @@ PDATA_OBJECTS=$(subst .cc,.o,$(SOURCE))
CXX_PROGRAM_SOURCE=\
caching/cache_check.cc \
+ caching/cache_restore.cc \
\
thin-provisioning/thin_check.cc \
thin-provisioning/thin_dump.cc \
@@ -228,13 +232,19 @@ CACHE_CHECK_SOURCE=\
persistent-data/space-maps/careful_alloc.cc \
persistent-data/transaction_manager.cc \
caching/superblock.cc
-
CACHE_CHECK_OBJECTS=$(subst .cc,.o,$(CACHE_CHECK_SOURCE))
-cache_check: $(CACHE_CHECK_OBJECTS) caching/check.o
+CACHE_RESTORE_SOURCE=$(SOURCE)
+CACHE_RESTORE_OBJECTS=$(subst .cc,.o,$(CACHE_RESTORE_SOURCE))
+
+cache_check: $(CACHE_CHECK_OBJECTS) caching/cache_check.o
@echo " [LD] $@"
$(V) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $+ $(LIBS)
+cache_restore: $(CACHE_RESTORE_OBJECTS) caching/cache_restore.o
+ @echo " [LD] $@"
+ $(V) $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $+ $(LIBS) $(LIBEXPAT)
+
DEPEND_FILES=\
$(subst .cc,.d,$(SOURCE)) \
$(subst .cc,.d,$(TEST_SOURCE)) \
@@ -275,7 +285,7 @@ include unit-tests/Makefile
.PHONEY: features
-features: thin_check cache_check
+features: $(PROGRAMS)
cucumber --no-color --format progress
test: features unit-test
diff --git a/caching/cache_check.cc b/caching/cache_check.cc
index ad7d41c..3de52dc 100644
--- a/caching/cache_check.cc
+++ b/caching/cache_check.cc
@@ -1,21 +1,3 @@
-// Copyright (C) 2011 Red Hat, Inc. All rights reserved.
-//
-// This file is part of the thin-provisioning-tools source.
-//
-// thin-provisioning-tools is free software: you can redistribute it
-// and/or modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation, either version 3 of
-// the License, or (at your option) any later version.
-//
-// thin-provisioning-tools is distributed in the hope that it will be
-// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with thin-provisioning-tools. If not, see
-// .
-
#include
#include
#include
@@ -30,6 +12,9 @@
#include
#include
+#include "base/error_state.h"
+#include "base/nested_output.h"
+
using namespace std;
//----------------------------------------------------------------
diff --git a/caching/cache_restore.cc b/caching/cache_restore.cc
new file mode 100644
index 0000000..b02aa2a
--- /dev/null
+++ b/caching/cache_restore.cc
@@ -0,0 +1,82 @@
+#include "version.h"
+
+#include
+#include
+#include
+#include
+
+using namespace std;
+
+//----------------------------------------------------------------
+
+namespace {
+ void usage(ostream &out, string const &cmd) {
+ out << "Usage: " << cmd << " [options]" << endl
+ << "Options:" << endl
+ << " {-h|--help}" << endl
+ << " {-i|--input} " << endl
+ << " {-o|--output}