blob: 0ae9fcc2351fcbd545e19cd2ea73f84f08604cea [file] [log] [blame]
#pragma once
#include <string>
//
#include <fruit/fruit.h>
#include "host/libs/config/cuttlefish_config.h"
#include "host/libs/config/feature.h"
namespace cuttlefish {
class DataImagePath {
public:
virtual ~DataImagePath() = default;
virtual const std::string& Path() const = 0;
};
class InitializeDataImage : public SetupFeature {};
fruit::Component<DataImagePath> FixedDataImagePathComponent(
const std::string* path);
fruit::Component<fruit::Required<const CuttlefishConfig, DataImagePath>,
InitializeDataImage>
InitializeDataImageComponent();
class InitializeEspImage : public SetupFeature {};
fruit::Component<fruit::Required<const CuttlefishConfig>,
InitializeEspImage> InitializeEspImageComponent(
const std::string* esp_image, const std::string* kernel_path,
const std::string* initramfs_path, const std::string* root_fs,
const CuttlefishConfig* config);
bool CreateBlankImage(
const std::string& image, int num_mb, const std::string& image_fmt);
class MiscImagePath {
public:
virtual ~MiscImagePath() = default;
virtual const std::string& Path() const = 0;
};
class InitializeMiscImage : public SetupFeature {};
fruit::Component<MiscImagePath> FixedMiscImagePathComponent(
const std::string* path);
fruit::Component<fruit::Required<MiscImagePath>, InitializeMiscImage>
InitializeMiscImageComponent();
} // namespace cuttlefish