update course for version 1.0.1
authorLiana Bakradze <liana.bakradze@jetbrains.com>
Tue, 16 Dec 2014 16:26:01 +0000 (19:26 +0300)
committerLiana Bakradze <liana.bakradze@jetbrains.com>
Tue, 16 Dec 2014 16:26:01 +0000 (19:26 +0300)
python/edu/learn-python/src/com/jetbrains/python/edu/StudyInitialConfigurator.java

index 08f5310773567b3c51a008eb2ec08287d8c14b06..4fde1ab720cc7ef39e92d894527186e78cd57c7e 100644 (file)
@@ -21,7 +21,8 @@ import java.io.IOException;
 public class StudyInitialConfigurator {
   private static final Logger LOG = Logger.getInstance(StudyInitialConfigurator.class.getName()
   );
-  @NonNls private static final String CONFIGURED = "StudyPyCharm.InitialConfiguration";
+  @NonNls private static final String CONFIGURED_V1 = "StudyPyCharm.InitialConfiguration";
+  @NonNls private static final String CONFIGURED_V11 = "StudyPyCharm.InitialConfiguration1.1";
 
 
   /**
@@ -34,21 +35,38 @@ public class StudyInitialConfigurator {
                                   FileTypeManager fileTypeManager,
                                   final ProjectManagerEx projectManager,
                                   RecentProjectsManager recentProjectsManager) {
-    if (!propertiesComponent.getBoolean(CONFIGURED, false)) {
-      final File file = new File(getCoursesRoot(), "introduction_course.zip");
+    final File file = new File(getCoursesRoot(), "introduction_course.zip");
+    if (!propertiesComponent.getBoolean(CONFIGURED_V1, false)) {
       final File newCourses = new File(PathManager.getConfigPath(), "courses");
       try {
         FileUtil.createDirectory(newCourses);
-        String fileName = file.getName();
-        String unzippedName = fileName.substring(0, fileName.indexOf("."));
-        File courseDir = new File(newCourses, unzippedName);
-        ZipUtil.unzip(null, courseDir, file, null, null, true);
+        copyCourse(file, newCourses);
+        propertiesComponent.setValue(CONFIGURED_V1, "true");
 
       }
       catch (IOException e) {
         LOG.warn("Couldn't copy bundled courses " + e);
       }
     }
+    if (!propertiesComponent.getBoolean(CONFIGURED_V11, false)) {
+      final File newCourses = new File(PathManager.getConfigPath(), "courses");
+      if (newCourses.exists()) {
+        try {
+          copyCourse(file, newCourses);
+          propertiesComponent.setValue(CONFIGURED_V11, "true");
+        }
+        catch (IOException e) {
+          LOG.warn("Couldn't copy bundled courses " + e);
+        }
+      }
+    }
+  }
+
+  private static void copyCourse(File bundledCourse, File userCourseDir) throws IOException {
+    String fileName = bundledCourse.getName();
+    String unzippedName = fileName.substring(0, fileName.indexOf("."));
+    File courseDir = new File(userCourseDir, unzippedName);
+    ZipUtil.unzip(null, courseDir, bundledCourse, null, null, true);
   }
 
   public static File getCoursesRoot() {