001package Torello.Java.Build;
002
003import Torello.JavaDoc.Upgrade;
004import Torello.JavaDoc.Stats;
005
006import Torello.Java.FileRW;
007
008import static Torello.Java.C.BRED;
009import static Torello.Java.C.BYELLOW;
010import static Torello.Java.C.RESET;
011
012import java.io.File;
013import java.io.IOException;
014
015/**
016 * This is the third Build-Stage, and it runs the Java-Doc {@link Upgrade Upgrader-Tool}
017 * 
018 * <EMBED CLASS='external-html' DATA-FILE-ID=S03_UPGRADE>
019 */
020@Torello.JavaDoc.StaticFunctional
021public class S03_Upgrade
022{
023    // Completely irrelevant, and the 'private' modifier keeps it off of JavaDoc
024    private S03_Upgrade() { }
025
026    public static void upgrade(Builder builder) throws IOException
027    {
028        builder.timers.startStage03();
029
030        Printing.startStep(3);
031
032        StringBuilder sb = new StringBuilder();
033
034        if (builder.preUpgraderScript != null) builder.preUpgraderScript.accept(builder, sb);
035
036        sb.append(
037            '\n' +
038            "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n" +
039            "Invoking Upgrader.upgrade().  Log Content Will not be available here.\n" +
040            "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n" +
041            '\n'
042        );
043
044        Stats result = builder.upgrader.upgrade(); 
045
046        if (builder.FAVICON != null)
047
048            try 
049                { FileRW.copyFile(builder.FAVICON, builder.LOCAL_JAVADOC_DIR, false); }
050
051            catch (IOException ioe)
052            {
053                System.err.println(
054                    "Unable to copy Favicon File: [" + builder.FAVICON + "] to javadoc output " +
055                        "directory:\n" +
056                    BYELLOW + builder.LOCAL_JAVADOC_DIR + RESET + '\n' +
057                    "Skipping Favicon..."
058                );
059            }
060
061        if (result == null)
062        {
063            System.err.println(BRED + "THERE WERE ERRORS, EXITING." + RESET);
064            System.exit(1);
065        }
066
067        if (builder.postUpgraderScript != null) builder.postUpgraderScript.accept(builder, sb);
068
069        builder.logs.write_S03_LOGS(sb.toString());
070        builder.timers.endStage03();
071    }
072}