rewire/include/install.hpp

28 lines
788 B
C++

#pragma once
#include <filesystem>
#include <list>
#include <string>
class InstallManager {
static constexpr const char* INSTALL_PATH = ".rewire/wirekits"; // Relative to home directory
bool m_valid;
std::filesystem::path m_home_directory;
std::filesystem::path m_install_directory;
public:
InstallManager(const InstallManager& other) = delete;
InstallManager(InstallManager&& other) noexcept;
InstallManager& operator=(const InstallManager& other) = delete;
InstallManager& operator=(InstallManager&& other) noexcept;
InstallManager();
~InstallManager();
operator bool() const;
bool install(const char* from, const char* to);
bool uninstall(const char* name);
bool get(const char* name, std::filesystem::path& path) const;
std::list<std::string> installs() const;
};