bmc: add cleanup blob handler
Add a cleanup blob handler, such that there is a new blob id present
named "/flash/cleanup" that will delete temporary files. This blob
handler expects a client to open/commit/close the blob. This blob
handler will delete files that are specified as temporary. The host
client may use this to clean up artifacts on verification or update
failure.
This can be extended later to handle calling a service or doing anything
else to cleanup. The cleanup handler will be added if
--enable-cleanup-delete. The recipe will automatically add this blob
handler if that configure variable is set.
Tested: Not tested on real hardware.
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I4502b2613e38f0a947d7235d084287376c6b0ce1
diff --git a/cleanup/fs.cpp b/cleanup/fs.cpp
new file mode 100644
index 0000000..b12d78f
--- /dev/null
+++ b/cleanup/fs.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2019 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "fs.hpp"
+
+#include <filesystem>
+#include <string>
+
+namespace ipmi_flash
+{
+
+void FileSystem::remove(const std::string& path) const
+{
+ namespace fs = std::filesystem;
+
+ try
+ {
+ (void)fs::remove(path);
+ }
+ catch (...)
+ {
+ return;
+ }
+
+ return;
+}
+
+FileSystem fileSystemHelper;
+
+} // namespace ipmi_flash