diff options
author | Xavier Ducrohet <xav@android.com> | 2010-06-04 12:53:07 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2010-06-08 10:34:51 -0700 |
commit | e0ac2ae830f068dbbca3cbfeefd261ef7a0a98b2 (patch) | |
tree | 91ce8503c309602892bad6a78f38cad783861301 /sdkmanager/app/src/com | |
parent | 3f7087032bba4b7ea52b6bd391d8f3005d51230a (diff) | |
download | sdk-e0ac2ae830f068dbbca3cbfeefd261ef7a0a98b2.zip sdk-e0ac2ae830f068dbbca3cbfeefd261ef7a0a98b2.tar.gz sdk-e0ac2ae830f068dbbca3cbfeefd261ef7a0a98b2.tar.bz2 |
Export project creation.
Change-Id: I22b5a1c7225425b387e1fd5b6769b5e9249b7c88
Diffstat (limited to 'sdkmanager/app/src/com')
3 files changed, 121 insertions, 31 deletions
diff --git a/sdkmanager/app/src/com/android/sdkmanager/CommandLineProcessor.java b/sdkmanager/app/src/com/android/sdkmanager/CommandLineProcessor.java index 7edee3a..5276bed 100644 --- a/sdkmanager/app/src/com/android/sdkmanager/CommandLineProcessor.java +++ b/sdkmanager/app/src/com/android/sdkmanager/CommandLineProcessor.java @@ -504,7 +504,7 @@ class CommandLineProcessor { stdout("\nValid actions are composed of a verb and an optional direct object:"); for (String[] action : mActions) { if (verb == null || verb.equals(action[ACTION_VERB_INDEX])) { - stdout("- %1$6s %2$-12s: %3$s", + stdout("- %1$6s %2$-14s: %3$s", action[ACTION_VERB_INDEX], action[ACTION_OBJECT_INDEX], action[ACTION_DESC_INDEX]); diff --git a/sdkmanager/app/src/com/android/sdkmanager/Main.java b/sdkmanager/app/src/com/android/sdkmanager/Main.java index 4d92467..9ce3006 100644 --- a/sdkmanager/app/src/com/android/sdkmanager/Main.java +++ b/sdkmanager/app/src/com/android/sdkmanager/Main.java @@ -231,6 +231,10 @@ public class Main { } else if (SdkCommandLine.OBJECT_LIB_PROJECT.equals(directObject)) { createProject(true /*library*/); + + } else if (SdkCommandLine.OBJECT_EXPORT_PROJECT.equals(directObject)) { + createExportProject(); + } } else if (SdkCommandLine.VERB_UPDATE.equals(verb)) { if (SdkCommandLine.OBJECT_AVD.equals(directObject)) { @@ -245,14 +249,19 @@ public class Main { } else if (SdkCommandLine.OBJECT_LIB_PROJECT.equals(directObject)) { updateProject(true /*library*/); + } else if (SdkCommandLine.OBJECT_EXPORT_PROJECT.equals(directObject)) { + updateExportProject(); + } else if (SdkCommandLine.OBJECT_SDK.equals(directObject)) { if (mSdkCommandLine.getFlagNoUI()) { updateSdkNoUI(); } else { showMainWindow(true /*autoUpdate*/); } + } else if (SdkCommandLine.OBJECT_ADB.equals(directObject)) { updateAdb(); + } } else if (SdkCommandLine.VERB_DELETE.equals(verb) && SdkCommandLine.OBJECT_AVD.equals(directObject)) { @@ -346,6 +355,19 @@ public class Main { } /** + * Returns a configured {@link ProjectCreator} instance. + */ + private ProjectCreator getProjectCreator() { + ProjectCreator creator = new ProjectCreator(mSdkManager, mOsSdkFolder, + mSdkCommandLine.isVerbose() ? OutputLevel.VERBOSE : + mSdkCommandLine.isSilent() ? OutputLevel.SILENT : + OutputLevel.NORMAL, + mSdkLog); + return creator; + } + + + /** * Creates a new Android project based on command-line parameters */ private void createProject(boolean library) { @@ -361,11 +383,7 @@ public class Main { } IAndroidTarget target = targets[targetId - 1]; // target id is 1-based - ProjectCreator creator = new ProjectCreator(mSdkManager, mOsSdkFolder, - mSdkCommandLine.isVerbose() ? OutputLevel.VERBOSE : - mSdkCommandLine.isSilent() ? OutputLevel.SILENT : - OutputLevel.NORMAL, - mSdkLog); + ProjectCreator creator = getProjectCreator(); String projectDir = getProjectLocation(mSdkCommandLine.getParamLocationPath()); @@ -384,7 +402,6 @@ public class Main { return; } - if (activityName != null && !ProjectCreator.RE_ACTIVITY_NAME.matcher(activityName).matches()) { errorAndExit( @@ -506,11 +523,7 @@ public class Main { mSdkLog.printf("Found main project target: %1$s\n", target.getFullName()); - ProjectCreator creator = new ProjectCreator(mSdkManager, mOsSdkFolder, - mSdkCommandLine.isVerbose() ? OutputLevel.VERBOSE : - mSdkCommandLine.isSilent() ? OutputLevel.SILENT : - OutputLevel.NORMAL, - mSdkLog); + ProjectCreator creator = getProjectCreator(); String projectName = mSdkCommandLine.getParamName(); @@ -531,6 +544,38 @@ public class Main { pathToMainProject); } + /** + * Creates a new Android Export project based on command-line parameters + */ + private void createExportProject() { + ProjectCreator creator = getProjectCreator(); + + String projectDir = getProjectLocation(mSdkCommandLine.getParamLocationPath()); + + String projectName = mSdkCommandLine.getParamName(); + String packageName = mSdkCommandLine.getParamProjectPackage( + SdkCommandLine.OBJECT_EXPORT_PROJECT); + + if (projectName != null && + !ProjectCreator.RE_PROJECT_NAME.matcher(projectName).matches()) { + errorAndExit( + "Project name '%1$s' contains invalid characters.\nAllowed characters are: %2$s", + projectName, ProjectCreator.CHARS_PROJECT_NAME); + return; + } + + if (packageName != null && + !ProjectCreator.RE_PACKAGE_NAME.matcher(packageName).matches()) { + errorAndExit( + "Package name '%1$s' contains invalid characters.\n" + + "A package name must be constitued of two Java identifiers.\n" + + "Each identifier allowed characters are: %2$s", + packageName, ProjectCreator.CHARS_PACKAGE_NAME); + return; + } + + creator.createExportProject(projectDir, projectName, packageName); + } /** * Updates an existing Android project based on command-line parameters @@ -553,11 +598,7 @@ public class Main { target = targets[targetId - 1]; // target id is 1-based } - ProjectCreator creator = new ProjectCreator(mSdkManager, mOsSdkFolder, - mSdkCommandLine.isVerbose() ? OutputLevel.VERBOSE : - mSdkCommandLine.isSilent() ? OutputLevel.SILENT : - OutputLevel.NORMAL, - mSdkLog); + ProjectCreator creator = getProjectCreator(); String projectDir = getProjectLocation(mSdkCommandLine.getParamLocationPath()); @@ -605,11 +646,7 @@ public class Main { * Updates an existing test project with a new path to the main project. */ private void updateTestProject() { - ProjectCreator creator = new ProjectCreator(mSdkManager, mOsSdkFolder, - mSdkCommandLine.isVerbose() ? OutputLevel.VERBOSE : - mSdkCommandLine.isSilent() ? OutputLevel.SILENT : - OutputLevel.NORMAL, - mSdkLog); + ProjectCreator creator = getProjectCreator(); String projectDir = getProjectLocation(mSdkCommandLine.getParamLocationPath()); @@ -618,6 +655,26 @@ public class Main { } /** + * Updates an existing Android export project based on command-line parameters + */ + private void updateExportProject() { + ProjectCreator creator = getProjectCreator(); + + String projectDir = getProjectLocation(mSdkCommandLine.getParamLocationPath()); + + String projectName = mSdkCommandLine.getParamName(); + if (projectName != null && + !ProjectCreator.RE_PROJECT_NAME.matcher(projectName).matches()) { + errorAndExit( + "Project name '%1$s' contains invalid characters.\nAllowed characters are: %2$s", + projectName, ProjectCreator.CHARS_PROJECT_NAME); + return; + } + + creator.updateExportProject(projectDir, projectName, mSdkCommandLine.getFlagForce()); + } + + /** * Adjusts the project location to make it absolute & canonical relative to the * working directory, if any. * diff --git a/sdkmanager/app/src/com/android/sdkmanager/SdkCommandLine.java b/sdkmanager/app/src/com/android/sdkmanager/SdkCommandLine.java index d4da959..906c1ac 100644 --- a/sdkmanager/app/src/com/android/sdkmanager/SdkCommandLine.java +++ b/sdkmanager/app/src/com/android/sdkmanager/SdkCommandLine.java @@ -44,15 +44,16 @@ class SdkCommandLine extends CommandLineProcessor { public final static String VERB_DELETE = "delete"; public final static String VERB_UPDATE = "update"; - public static final String OBJECT_SDK = "sdk"; - public static final String OBJECT_AVD = "avd"; - public static final String OBJECT_AVDS = "avds"; - public static final String OBJECT_TARGET = "target"; - public static final String OBJECT_TARGETS = "targets"; - public static final String OBJECT_PROJECT = "project"; - public static final String OBJECT_TEST_PROJECT = "test-project"; - public static final String OBJECT_LIB_PROJECT = "lib-project"; - public static final String OBJECT_ADB = "adb"; + public static final String OBJECT_SDK = "sdk"; + public static final String OBJECT_AVD = "avd"; + public static final String OBJECT_AVDS = "avds"; + public static final String OBJECT_TARGET = "target"; + public static final String OBJECT_TARGETS = "targets"; + public static final String OBJECT_PROJECT = "project"; + public static final String OBJECT_TEST_PROJECT = "test-project"; + public static final String OBJECT_LIB_PROJECT = "lib-project"; + public static final String OBJECT_EXPORT_PROJECT = "export-project"; + public static final String OBJECT_ADB = "adb"; public static final String ARG_ALIAS = "alias"; public static final String ARG_ACTIVITY = "activity"; @@ -125,6 +126,11 @@ class SdkCommandLine extends CommandLineProcessor { { VERB_UPDATE, OBJECT_LIB_PROJECT, "Updates an Android Library Project (must have an AndroidManifest.xml)." }, + { VERB_CREATE, OBJECT_EXPORT_PROJECT, + "Creates a new Android Export Project." }, + { VERB_UPDATE, OBJECT_EXPORT_PROJECT, + "Updates an Android Export Project (must have an export.properties)." }, + { VERB_UPDATE, OBJECT_ADB, "Updates adb to support the USB devices declared in the SDK add-ons." }, @@ -267,6 +273,19 @@ class SdkCommandLine extends CommandLineProcessor { VERB_CREATE, OBJECT_LIB_PROJECT, "k", KEY_PACKAGE, "Package name", null); + // --- create export-project --- + + define(Mode.STRING, true, + VERB_CREATE, OBJECT_EXPORT_PROJECT, + "p", KEY_PATH, + "Location path of new project", null); + define(Mode.STRING, false, + VERB_CREATE, OBJECT_EXPORT_PROJECT, "n", KEY_NAME, + "Project name", null); + define(Mode.STRING, true, + VERB_CREATE, OBJECT_EXPORT_PROJECT, "k", KEY_PACKAGE, + "Package name", null); + // --- update project --- define(Mode.STRING, true, @@ -311,6 +330,20 @@ class SdkCommandLine extends CommandLineProcessor { VERB_UPDATE, OBJECT_LIB_PROJECT, "t", KEY_TARGET_ID, "Target id to set for the project", null); + + // --- update export project --- + + define(Mode.STRING, true, + VERB_UPDATE, OBJECT_EXPORT_PROJECT, + "p", KEY_PATH, + "Location path of the project", null); + define(Mode.STRING, false, + VERB_UPDATE, OBJECT_EXPORT_PROJECT, + "n", KEY_NAME, + "Project name", null); + define(Mode.BOOLEAN, false, + VERB_UPDATE, OBJECT_EXPORT_PROJECT, "f", KEY_FORCE, + "Force replacing the build.xml file", false); } @Override |