/**
 * LittleFS.cpp
 *
 * Created on: 8 April 2021
 *
 * Copyright 2021 mikee47 <mike@sillyhouse.net>
 *
 * This file is part of the Sming-LittleFS Library
 *
 * This library 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, version 3 or later.
 *
 * This library 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 this library.
 * If not, see <https://www.gnu.org/licenses/>.
 *
 ****/

#include "include/LittleFS.h"
#include "include/LittleFS/FileSystem.h"
#include <FileSystem.h>
#include <Storage.h>

namespace IFS
{
FileSystem* createLfsFilesystem(Storage::Partition partition)
{
	auto fs = new LittleFS::FileSystem(partition);
	return FileSystem::cast(fs);
}

} // namespace IFS

bool lfs_mount()
{
	auto part = Storage::findDefaultPartition(Storage::Partition::SubType::Data::littlefs);
	return part ? lfs_mount(part) : false;
}

bool lfs_mount(Storage::Partition partition)
{
	auto fs = IFS::createLfsFilesystem(partition);
	return fileMountFileSystem(fs);
}
