# HG changeset patch # User mcimadamore # Date 1516881960 0 # Node ID f2344724a4755bebf4f002a8743d746015bf7df8 # Parent d626620a184432a103b5e1111a1049bed8820af4 8196081: Add support for customized intellij project templates Summary: Override template used for project creation using env variable Reviewed-by: ihse diff -r d626620a1844 -r f2344724a475 bin/idea.sh --- a/bin/idea.sh Thu Jan 25 16:22:52 2018 +0530 +++ b/bin/idea.sh Thu Jan 25 12:06:00 2018 +0000 @@ -30,9 +30,10 @@ } SCRIPT_DIR=`dirname $0` -PWD=`pwd` +#assume TOP is the dir from which the script has been called +TOP=`pwd` cd $SCRIPT_DIR; SCRIPT_DIR=`pwd` -cd ../; TOP=`pwd`; cd $PWD +cd $TOP; IDEA_OUTPUT=$TOP/.idea VERBOSE="false" @@ -66,30 +67,42 @@ mkdir $IDEA_OUTPUT || exit 1 cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd` -IDEA_MAKE="$TOP/make/idea" +MAKE_DIR="$SCRIPT_DIR/../make" +IDEA_MAKE="$MAKE_DIR/idea" IDEA_TEMPLATE="$IDEA_MAKE/template" -IML_TEMPLATE="$IDEA_TEMPLATE/jdk.iml" -ANT_TEMPLATE="$IDEA_TEMPLATE/ant.xml" -MISC_TEMPLATE="$IDEA_TEMPLATE/misc.xml" -IDEA_IML="$IDEA_OUTPUT/jdk.iml" -IDEA_ANT="$IDEA_OUTPUT/ant.xml" -IDEA_MISC="$IDEA_OUTPUT/misc.xml" + +cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT" + +#init template variables +for file in `ls -p $IDEA_TEMPLATE | grep -v /`; do + VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]` + eval "$VAR_SUFFIX"_TEMPLATE="$IDEA_TEMPLATE"/$file + eval IDEA_"$VAR_SUFFIX"="$IDEA_OUTPUT"/$file +done + +#override template variables +if [ -d "$TEMPLATES_OVERRIDE" ] ; then + for file in `ls -p "$TEMPLATES_OVERRIDE" | grep -v /`; do + cp "$TEMPLATES_OVERRIDE"/$file "$IDEA_OUTPUT"/ + VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]` + eval "$VAR_SUFFIX"_TEMPLATE="$TEMPLATES_OVERRIDE"/$file + done +fi if [ "$VERBOSE" = "true" ] ; then echo "output dir: $IDEA_OUTPUT" echo "idea template dir: $IDEA_TEMPLATE" fi -if [ ! -f "$IML_TEMPLATE" ] ; then - echo "FATAL: cannot find $IML_TEMPLATE" >&2; exit 1 +if [ ! -f "$JDK_TEMPLATE" ] ; then + echo "FATAL: cannot find $JDK_TEMPLATE" >&2; exit 1 fi if [ ! -f "$ANT_TEMPLATE" ] ; then echo "FATAL: cannot find $ANT_TEMPLATE" >&2; exit 1 fi -cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT" -cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I make/common idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1 +cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1 cd $SCRIPT_DIR . $IDEA_OUTPUT/env.cfg @@ -118,11 +131,12 @@ root=$@ relativePath="`echo "$root" | sed -e s@"$TOP/\(.*$\)"@"\1"@`" folder="`echo "$SOURCE_FOLDER" | sed -e s@"\(.*/\)####\(.*\)"@"\1$relativePath\2"@`" - printf "%s\n" "$folder" >> $IDEA_IML + printf "%s\n" "$folder" >> $IDEA_JDK } ### Generate project iml -rm -f $IDEA_IML + +rm -f $IDEA_JDK while IFS= read -r line do if echo "$line" | egrep "^ .* /dev/null ; then @@ -133,9 +147,9 @@ done fi else - printf "%s\n" "$line" >> $IDEA_IML + printf "%s\n" "$line" >> $IDEA_JDK fi -done < "$IML_TEMPLATE" +done < "$JDK_TEMPLATE" MODULE_NAME=" " diff -r d626620a1844 -r f2344724a475 make/idea/idea.gmk --- a/make/idea/idea.gmk Thu Jan 25 16:22:52 2018 +0530 +++ b/make/idea/idea.gmk Thu Jan 25 12:06:00 2018 +0000 @@ -20,16 +20,9 @@ SEL_MODULES := $(MODULES) endif - # Find all source dirs for a particular module - # $1 - Module to find source dirs for - FindIdeaModuleSrcDirs = \ - $(strip $(addsuffix /$(strip $1), $(GENERATED_SRC_DIRS) $(IMPORT_MODULES_SRC)) \ - $(wildcard $(foreach sub, $(SRC_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS))))) - - idea: $(ECHO) "SUPPORT=$(SUPPORT_OUTPUTDIR)" >> $(OUT) - $(ECHO) "MODULE_ROOTS=\"$(foreach mod, $(SEL_MODULES), $(call FindIdeaModuleSrcDirs,$(mod)))\"" >> $(OUT) + $(ECHO) "MODULE_ROOTS=\"$(foreach mod, $(SEL_MODULES), $(call FindModuleSrcDirs,$(mod)))\"" >> $(OUT) $(ECHO) "MODULE_NAMES=\"$(strip $(foreach mod, $(SEL_MODULES), $(mod)))\"" >> $(OUT) $(ECHO) "SEL_MODULES=\"$(SEL_MODULES)\"" >> $(OUT) $(ECHO) "BOOT_JDK=\"$(BOOT_JDK)\"" >> $(OUT) diff -r d626620a1844 -r f2344724a475 make/idea/template/ant.xml --- a/make/idea/template/ant.xml Thu Jan 25 16:22:52 2018 +0530 +++ b/make/idea/template/ant.xml Thu Jan 25 12:06:00 2018 +0000 @@ -3,7 +3,6 @@ - diff -r d626620a1844 -r f2344724a475 make/idea/template/build.xml --- a/make/idea/template/build.xml Thu Jan 25 16:22:52 2018 +0530 +++ b/make/idea/template/build.xml Thu Jan 25 12:06:00 2018 +0000 @@ -6,32 +6,16 @@ new JdkLogger(project) - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + @@ -43,71 +27,17 @@ **** Global JDK Build Targets --> - - - - - - + - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r d626620a1844 -r f2344724a475 make/idea/template/jdk.iml --- a/make/idea/template/jdk.iml Thu Jan 25 16:22:52 2018 +0530 +++ b/make/idea/template/jdk.iml Thu Jan 25 12:06:00 2018 +0000 @@ -4,11 +4,9 @@ - - - +