polserver/pol-core/poltool/baredistro.cpp
turleypol 43b776b94d
New format lib version (#592)
* renamed include guard to be able to use both format lib versions in
parallel

* build Fmt lib and link it into clib

* use std::string instead of format Writer for logging
added variant "2" for logging with new fmt lib

* use new logging variant for two logs

* always add \n to flush log, lets see if the assumption holds

* use new lib for tostring

* replaced all INFO_PRINTS in clib

* formatter for Token, BObject and BObjectImp

* started with bsccript

* use function instead of actual object for logging

* remaining bscript, started plib

* logvariant without newline added, more template magic

* format support for base types, added test for format padding
new version for fdump

* chanhed ecompile/runecl fixed compilation with ESCRIPT_PROFILE

* rewrite INFO_PRINT in plib,poltool/uoconvert/uotool

* replaced remaining INFO_PRINTS, renamed macros INFO_PRINT for logging
without newline, INFO_PRINTLN for newline addition.
Replaced also INFO_PRINT_TRACE and renamed it to INFO_PRINTLN_TRACE

* gitignore for fmt lib

* cleanup vim leftovers
2024-01-10 18:29:10 +01:00

44 lines
998 B
C++

#include "baredistro.h"
#include "../clib/logfacility.h"
#include <fstream>
#include <utility>
namespace Pol
{
namespace PolTool
{
BareDistro::BareDistro( fs::path basedir, bool hsa, int maxtiles, int width, int height )
: _basedir( std::move( basedir ) ),
_hsa( hsa ),
_maxtiles( maxtiles ),
_width( width ),
_height( height )
{
}
void BareDistro::generate()
{
INFO_PRINTLN( "Generating minimal distro files" );
std::map<fs::path, std::vector<std::string>> distro;
distro_files( distro );
for ( const auto& file : distro )
{
fs::path relpath = _basedir / file.first;
fs::path basedir = relpath;
if ( basedir.has_filename() )
basedir.remove_filename();
if ( !fs::exists( basedir ) )
fs::create_directories( basedir );
std::ofstream ofile( relpath, std::ofstream::out );
for ( const auto& line : file.second )
{
ofile << line << "\n";
}
ofile.close();
}
}
} // namespace PolTool
} // namespace Pol