IDEA-221448 fixed set linked project path for static empty state of external storage
[idea/community.git] / build / update.sh
1 #!/bin/sh
2 #
3 # This script updates your IntelliJ IDEA CE installation from the latest compiled classes. This way you can easily
4 # upgrade your working IDEA to the latest changes.
5 #
6 # Before you run the script, ensure you have the following:
7 # 1. Your IntelliJ IDEA project is fully built (do 'Rebuild Project' if unsure).
8 # 2. WORK_IDEA_HOME points to the directory of IntelliJ IDEA build you want to upgrade.
9 # 3. DEV_IDEA_HOME points to the directory of the project you built at step 1.
10 # 4. 'java' is on the PATH or JAVA_HOME points to a valid JDK installation.
11 # 5. You quit IntelliJ IDEA.
12
13 if [ ! -f "$WORK_IDEA_HOME/bin/inspect.sh" -a -f "$WORK_IDEA_HOME/Contents/bin/inspect.sh" ]; then
14   WORK_IDEA_HOME="$WORK_IDEA_HOME/Contents"
15 fi
16 if [ ! -f "$WORK_IDEA_HOME/bin/inspect.sh" ]; then
17   echo "WORK_IDEA_HOME must be defined and point to the installation you're updating"
18   exit 1
19 fi
20
21 if [ ! -f "$DEV_IDEA_HOME/build/update.sh" ]; then
22   echo "DEV_IDEA_HOME must be defined and point to the source base you're updating from"
23   exit 1
24 fi
25
26 JAVA_BIN="java"
27 if [ -n "$JAVA_HOME" ]; then
28   JAVA_BIN="$JAVA_HOME/bin/java"
29   if [ ! -x "$JAVA_BIN" ]; then
30     echo "'java' should be on the PATH or JAVA_HOME must point to a valid JDK installation"
31     exit 1
32   fi
33 fi
34
35 echo "Updating $WORK_IDEA_HOME from compiled classes in $DEV_IDEA_HOME"
36
37 ANT_HOME="$DEV_IDEA_HOME/lib/ant"
38 "$JAVA_BIN" -Xmx512m -Dant.home="$ANT_HOME" -classpath "$ANT_HOME/lib/ant-launcher.jar" org.apache.tools.ant.launch.Launcher \
39  -f "$DEV_IDEA_HOME/build/update.xml" -Dwork.idea.home="$WORK_IDEA_HOME" -Dintellij.build.local.plugins.repository=$BUILD_LOCAL_PLUGINS_REPOSITORY
40
41 if [ "$?" != "0" ]; then
42   echo "Update failed; work IDEA build not modified"
43   rm -rf "$WORK_IDEA_HOME/___tmp___"
44   exit 2
45 fi
46
47 rm -rf "$WORK_IDEA_HOME/lib" &
48 rm -rf "$WORK_IDEA_HOME/plugins" &
49
50 wait
51
52 cp -R "$DEV_IDEA_HOME/out/deploy/dist/"* "$WORK_IDEA_HOME" &
53
54 OS_TYPE=`uname -s`
55 if [ "$OS_TYPE" = "Linux" ]; then
56   cp -a "$DEV_IDEA_HOME/bin/linux/"fsnotifier* "$WORK_IDEA_HOME/bin" &
57   cp -a "$DEV_IDEA_HOME/bin/linux/"*.py "$WORK_IDEA_HOME/bin" &
58   cp -a "$DEV_IDEA_HOME/bin/linux/"*.so "$WORK_IDEA_HOME/bin" &
59 elif [ "$OS_TYPE" = "Darwin" ]; then
60   cp -a "$DEV_IDEA_HOME/bin/mac/"*.dylib "$WORK_IDEA_HOME/bin" &
61   cp -a "$DEV_IDEA_HOME/bin/mac/fsnotifier" "$WORK_IDEA_HOME/bin" &
62   cp -a "$DEV_IDEA_HOME/bin/mac/restarter" "$WORK_IDEA_HOME/bin" &
63 fi
64
65 wait