OSDN Git Service

dmgおよびzipの生成用バッチの作成
[charactermanaj/CharacterManaJ.git] / dist / build_appbundle8_jre.sh
1 #!/bin/bash
2 # -*- Coding: utf-8 -*-
3
4 # システム内のJAVA_HOMEの取得
5 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)
6 echo "JAVA_HOME=${JAVA_HOME}"
7
8 # info.plistの編集コマンド
9 PlistBuddy=/usr/libexec/PlistBuddy
10
11 #################
12 # 作業ディレクトリ
13 export TARGETDIR="withJRE"
14
15 # コピー元ディレクトリ
16 export EXPORTDIRSRC="java8mac"
17
18 # JRE同梱版生成先ディレクトリ
19 export EXPORTDIR="java8macWithJRE"
20
21 #################
22
23 if [ ! -d $EXPORTDIRSRC ]; then
24    echo "not directory $EXPORTDIRSRC" >&2
25    exit 1
26 fi
27
28 # まるごとコピーする
29 echo "copy $EXPORTDIRSRC --> $EXPORTDIR"
30 rm -fr "$EXPORTDIR"
31 mkdir -p "$EXPORTDIR"
32 ditto -v "$EXPORTDIRSRC" "$EXPORTDIR"
33
34 # 作業用出力先
35 mkdir -pv $TARGETDIR
36
37 # appbundlerによるjre付きバンドルの作成
38 ant -f build_appbundle8_jre.xml
39
40 # 生成したJRE付きのバンドルファイル内からjdk名を取得する
41 jdkname=$($PlistBuddy -c "print JVMRuntime" $TARGETDIR/CharacterManaJ.app/Contents/Info.plist)
42 echo new jdk_name=$jdkname
43 if [ -z "$jdkname" ]; then
44     echo "can't read the new JVMRuntime." >&2
45     exit 1
46 fi
47
48 # 現行のjdk名を取得する
49 oldjdkname=$($PlistBuddy -c "print JVMRuntime" $EXPORTDIR/CharacterManaJ.app/Contents/Info.plist)
50 echo current: jdk_name=$oldjdkname
51
52 if [ "$oldjdkname" = "$jdkname" ]; then
53     # 同じjdkバージョンならなにもしない
54     echo "*already same jdk"
55 else
56     if [ ! -z "$oldjdkname" ]; then
57     # 既存のjdkを消す
58         rm -fr $EXPORTDIR/CharacterManaJ.app/Contents/PlugIns/$oldjdkname
59     fi
60
61     # 新しいjdk名に書き換える
62     if [ -z "$oldjdkname" ]; then
63         $PlistBuddy -c "add :JVMRuntime string $jdkname" $EXPORTDIR/CharacterManaJ.app/Contents/Info.plist
64     else
65         $PlistBuddy -c "set :JVMRuntime $jdkname" $EXPORTDIR/CharacterManaJ.app/Contents/Info.plist
66     fi;
67
68     # 新しいjdkをコピーする
69     echo "copy $TARGETDIR/CharacterManaJ.app/Contents/PlugIns/$jdkname --> $EXPORTDIR/CharacterManaJ.app/Contents/PlugIns/"
70     ditto -v $TARGETDIR/CharacterManaJ.app/Contents/PlugIns/$jdkname $EXPORTDIR/CharacterManaJ.app/Contents/PlugIns/$jdkname
71 fi
72
73 # 生成完了後は不要なので消す 
74 rm -fr $TARGETDIR
75
76 echo "done"