public static void main(String[] args) {
   try {
     SetupConfig config = new SetupConfig();
     validateEclipse(config);
     validateWorkspace(config);
     launchEclipse(config);
     config.assertSetupIsCorrect();
   } catch (Throwable t) {
     MessageBox.showMessage("Something went wrong: \r\n" + t.getMessage());
   }
 }
 private static void isCodeUnpacked(SetupConfig config) {
   try {
     config.workspacePath = new File(".").getCanonicalPath();
     String realtivePath =
         "TeachingKidsProgramming/src/org/teachingkidsprogramming/recipes/SimpleSquare.java"
             .replace('/', File.separatorChar);
     File simpleSquare = new File(config.workspacePath + File.separator + realtivePath);
     config.setup.set(
         SetupCheckPoints.WorkspaceFound,
         simpleSquare.exists(),
         "could not find the TKP workspace at "
             + config.workspacePath
             + "\r\n The Following File should exist:"
             + simpleSquare.getAbsolutePath());
   } catch (IOException e) {
     ObjectUtils.throwAsError(e);
   }
 }