/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package de.nplusc.izc.Utilities.WPCMgr;

import de.nplusc.izc.tools.IOtools.FileTK;
import de.nplusc.izc.tools.baseTools.Tools;
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;

/**
 *
 * @author LH
 */
public class WPCUtils
{
    public static void initCache(String dir,String wptargetdir)
    {
        String[] dirs = new String[]{
            "00_meta",
            "00_template\\archv_srcs",
            "00_template\\b-frames",
            "00_template\\k-i-p",
            "00_template\\p",
            "00_template\\proc",
            "00_template\\src",
        };
        for (String string : dirs)
        {
            new File("dir\\"+string).mkdirs();
        }
        FileTK.writeFile(getInitialMetaState(wptargetdir), dir+"\\00_meta\\state.yml");
        if(!new File(dir+"\\readme.txt").exists())
        {
        FileTK.writeFile("Die Struktur ab L10 ist wie folgt:\n" +
                        "\n" +
                        "-+    / Wirzelverzeichnis des Packages\n" +
                        " +- archv_srcs Wenn Daten in ner Zip kamen diese hier einlagern\n" +
                        " +- b-frames die wiederkehrenden Bilder des Packages (min 1 nötig)\n" +
                        " +- k-i-p bilder die proportional bleiben müssen\n" +
                        " +- p Bilder die verarbeitet wirden (bereits nummeriert)\n" +
                        " +- proc unverarbeitete bilder die unproportional skaliert werden können\n" +
                        " +- src unsortiertes Rohmaterial //kann auch in / liegen\n" +
                        " \n" +
                        " \n" +
                        " 00_-verzeichnisse sind Meta-verzeichnisse ohne Pixelinhalt", dir+"\\readme.txt");
        }
    }

    
    public static String getInitialMetaState(String wptargetDir)
    {
        DumperOptions yamlOptions = new DumperOptions();
        yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
        LinkedHashMap<String,Object> m = new LinkedHashMap<>();
        m.put("HEAD",null);//null heißt frisch
        m.put("Outdir",wptargetDir);
        return new Yaml(yamlOptions).dump(m);
    }
    
    public static void main(String[] args)
    {
        //FileTK.writeFile(getInitialMetaState(), "T:\\wpc\\00_meta\\state.yml");
    }
    
    private WPCUtils()
    {
    }
}
