mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-21 08:05:19 +08:00
108 lines
4.0 KiB
Plaintext
108 lines
4.0 KiB
Plaintext
![]() |
#! /bin/sh
|
||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||
|
# or more contributor license agreements. See the NOTICE file
|
||
|
# distributed with this work for additional information
|
||
|
# regarding copyright ownership. The ASF licenses this file
|
||
|
# to you under the Apache License, Version 2.0 (the
|
||
|
# "License"); you may not use this file except in compliance
|
||
|
# with the License. You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing,
|
||
|
# software distributed under the License is distributed on an
|
||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
|
# KIND, either express or implied. See the License for the
|
||
|
# specific language governing permissions and limitations
|
||
|
# under the License.
|
||
|
#
|
||
|
# create a cordova/android project
|
||
|
#
|
||
|
# USAGE
|
||
|
# ./create [path package activity]
|
||
|
#
|
||
|
set -e
|
||
|
|
||
|
if [ -n "$1" ] && [ "$1" == "-h" ]
|
||
|
then
|
||
|
echo 'usage: create path package activity'
|
||
|
echo "Make sure the Android SDK tools folder is in your PATH!"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
# we do not want the script to silently fail
|
||
|
trap "An error occurred :-(" ERR
|
||
|
|
||
|
BUILD_PATH=$( cd "$( dirname "$0" )/.." && pwd )
|
||
|
ANDROID_BIN=$( which android )
|
||
|
|
||
|
PROJECT_PATH=${1:-"./example"}
|
||
|
PACKAGE=${2:-"org.apache.cordova.example"}
|
||
|
ACTIVITY=${3:-"cordovaExample"}
|
||
|
|
||
|
# clobber any existing example
|
||
|
if [ -d $PROJECT_PATH ]
|
||
|
then
|
||
|
echo "Project already exists! Delete and recreate"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
PACKAGE_AS_PATH=$(echo $PACKAGE | sed 's/\./\//g')
|
||
|
ACTIVITY_PATH=$PROJECT_PATH/src/$PACKAGE_AS_PATH/$ACTIVITY.java
|
||
|
MANIFEST_PATH=$PROJECT_PATH/AndroidManifest.xml
|
||
|
|
||
|
TARGET=$($ANDROID_BIN list targets | grep id: | tail -1 | cut -f 2 -d ' ' )
|
||
|
VERSION=$(cat $BUILD_PATH/VERSION)
|
||
|
|
||
|
|
||
|
# update the cordova-android framework for the desired target
|
||
|
$ANDROID_BIN update project --target $TARGET --path $BUILD_PATH/framework &> /dev/null
|
||
|
|
||
|
if [ ! -e $BUILD_PATH/framework/libs/commons-codec-1.6.jar ]; then
|
||
|
# Use curl to get the jar (TODO: Support Apache Mirrors)
|
||
|
echo "Downloading common-codecs-1.6 ..."
|
||
|
curl -OL http://mirror.symnds.com/software/Apache//commons/codec/binaries/commons-codec-1.6-bin.zip &> /dev/null
|
||
|
unzip commons-codec-1.6-bin.zip &> /dev/null
|
||
|
mkdir -p $BUILD_PATH/framework/libs
|
||
|
cp commons-codec-1.6/commons-codec-1.6.jar $BUILD_PATH/framework/libs
|
||
|
# cleanup yo
|
||
|
rm commons-codec-1.6-bin.zip && rm -rf commons-codec-1.6
|
||
|
fi
|
||
|
|
||
|
# compile cordova.js and cordova.jar
|
||
|
echo "Building cordova-$VERSION.jar and cordova-$VERSION.js ..."
|
||
|
(cd $BUILD_PATH/framework && ant jar &> /dev/null )
|
||
|
|
||
|
# create new android project
|
||
|
echo "Creating a new cordova android project ..."
|
||
|
$ANDROID_BIN create project --target $TARGET --path $PROJECT_PATH --package $PACKAGE --activity $ACTIVITY &> /dev/null
|
||
|
|
||
|
# copy project template
|
||
|
echo "Copying assets and resources ..."
|
||
|
cp -r $BUILD_PATH/bin/templates2/project/assets $PROJECT_PATH
|
||
|
cp -r $BUILD_PATH/bin/templates2/project/res $PROJECT_PATH
|
||
|
|
||
|
# copy cordova.js, cordova.jar and res/xml
|
||
|
echo "Setting up config and plugins list ..."
|
||
|
cp -r $BUILD_PATH/framework/res/xml $PROJECT_PATH/res
|
||
|
|
||
|
echo "Adding cordova-$VERSION.js and cordova-$VERSION.jar ..."
|
||
|
cp $BUILD_PATH/framework/assets/www/cordova-$VERSION.js $PROJECT_PATH/assets/www/cordova-$VERSION.js
|
||
|
cp $BUILD_PATH/framework/cordova-$VERSION.jar $PROJECT_PATH/libs/cordova-$VERSION.jar
|
||
|
|
||
|
# interpolate the activity name and package
|
||
|
echo "Updating Activity and AndroidManifest ..."
|
||
|
cp $BUILD_PATH/bin/templates2/project/Activity.java $ACTIVITY_PATH
|
||
|
sed -i '' -e "s/__ACTIVITY__/${ACTIVITY}/g" $ACTIVITY_PATH
|
||
|
sed -i '' -e "s/__ID__/${PACKAGE}/g" $ACTIVITY_PATH
|
||
|
|
||
|
cp $BUILD_PATH/bin/templates2/project/AndroidManifest.xml $MANIFEST_PATH
|
||
|
sed -i '' -e "s/__ACTIVITY__/${ACTIVITY}/g" $MANIFEST_PATH
|
||
|
sed -i '' -e "s/__PACKAGE__/${PACKAGE}/g" $MANIFEST_PATH
|
||
|
|
||
|
# cleanup
|
||
|
rm $BUILD_PATH/framework/libs/commons-codec-1.6.jar
|
||
|
rmdir $BUILD_PATH/framework/libs
|
||
|
rm $BUILD_PATH/framework/assets/www/cordova-$VERSION.js
|
||
|
rm $BUILD_PATH/framework/cordova-$VERSION.jar
|