Changeset 19755 for release-kits


Ignore:
Timestamp:
2009-06-08T13:34:49+12:00 (15 years ago)
Author:
oranfry
Message:

defaultValue for DirectoryInput is now a comma separated list of choices for the install directory, which will be iterated at runtime and the first writable directory in the list chosen as the default install directory

Location:
release-kits
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • release-kits/lirk2/installer/antinstall-config.xml

    r19624 r19755  
    4848
    4949        <directory property="installDir"
    50             defaultValue="/usr/local/Greenstone2"
     50            defaultValue="/usr/local/Greenstone2,${env.HOME}/Greenstone2"
    5151            create="true"
    5252            displayText=""
  • release-kits/lirk3/installer/antinstall-config.xml

    r19599 r19755  
    4545
    4646        <directory property="installDir"
    47             defaultValue="/usr/local/Greenstone3"
     47            defaultValue="/usr/local/Greenstone3,${env.HOME}/Greenstone3"
    4848            create="true"
    4949            displayText=""
  • release-kits/mark2/installer/antinstall-config.xml

    r19624 r19755  
    4646
    4747        <directory property="installDir"
    48             defaultValue="/usr/local/Greenstone2"
     48            defaultValue="/usr/local/Greenstone2,${env.HOME}/Greenstone2"
    4949            create="true"
    5050            displayText=""
  • release-kits/mark3/installer/antinstall-config.xml

    r19599 r19755  
    4646
    4747        <directory property="installDir"
    48             defaultValue="/usr/local/Greenstone3"
     48            defaultValue="/usr/local/Greenstone3,${env.HOME}/Greenstone3"
    4949            create="true"
    5050            displayText=""
  • release-kits/shared/core/ant-installer/src/org/tp23/antinstaller/input/DirectoryInput.java

    r17832 r19755  
    1717
    1818import java.io.File;
     19import java.io.IOException;
    1920import java.util.ResourceBundle;
     21import java.util.ArrayList;
    2022
    2123import org.tp23.antinstaller.InstallerContext;
     
    3739    private String create;
    3840    private String checkExists;
     41
     42    //to make default install directory choice smart
     43    private String decidedDefault = null;
    3944
    4045    //to detect previous installations
     
    98103    }
    99104
     105    public String getDefaultValue(boolean correctForOS) {
     106
     107        if ( this.defaultValue == null ) {
     108            return null;
     109        }
     110
     111        if ( decidedDefault != null ) {
     112            return decidedDefault;
     113        }
     114
     115        String[] defaultsArray = defaultValue.split(",");
     116        for ( int i=0; i<defaultsArray.length; i++ ) {
     117            String def = resultContainer.getDefaultFileRef(defaultsArray[i]);
     118            File defFile = new File( def );
     119
     120            //if the path is a file, go to next
     121            if ( defFile.isFile() ) {
     122                continue;
     123            }
     124
     125            //if the path is a directory, try to write a little file to it
     126            if ( defFile.isDirectory() ) {
     127                File testFile = new File( defFile, "ant-installer-test-file-(ok-to-delete)" );
     128                boolean result = false;
     129                try { result = testFile.createNewFile(); } catch ( IOException ioe ) {}
     130                if ( result ) {
     131                    decidedDefault = def;
     132                    try { testFile.delete(); } catch ( SecurityException se ) {}
     133                    return decidedDefault;
     134                }
     135            }
     136
     137            //if the path doesn't exist, try to create it as a directory
     138            if ( !defFile.exists() ) {
     139                if ( defFile.mkdir() ) {
     140                    decidedDefault = def;
     141                    try { defFile.delete(); } catch ( SecurityException se ) {}
     142                    return decidedDefault;
     143                }
     144            }
     145           
     146        }
     147
     148        decidedDefault = resultContainer.getDefaultFileRef(
     149            defaultsArray[defaultsArray.length-1]
     150            );
     151        return decidedDefault;
     152
     153    }
     154
    100155    public boolean isAbort() {
    101156        return abort;
     
    154209            return false;
    155210        }
    156         if(getDefaultValue() == null){
     211        if(defaultValue == null){
    157212            System.out.println("Directory:defaultValue must be set");
    158213            return false;
    159214        }
    160         if(getDefaultValue().equals("")){
     215        if(defaultValue.equals("")){
    161216            if( isTrue(getCreate()) || isTrue(getCheckExists()) ) {
    162217                System.out.println("Directory:defaultValue must be set if checkExists or create are true");
  • release-kits/wirk2/installer/antinstall-config.xml

    r19624 r19755  
    4646    <!-- Because of Vista UAC related issues, it is now preferred to install Greenstone where the current user has full privileges -->
    4747        <directory property="installDir"
    48             defaultValue="${env.HOMEDRIVE}\${env.HOMEPATH}\Greenstone2"
     48            defaultValue="C:\Program Files\Greenstone2,${env.HOMEDRIVE}\${env.HOMEPATH}\Greenstone2"
    4949            create="true"
    5050            displayText=""
  • release-kits/wirk3/installer/antinstall-config.xml

    r19599 r19755  
    4646    <!-- Because of Vista UAC related issues, it is now preferred to install Greenstone where the current user has full privileges -->
    4747        <directory property="installDir"
    48             defaultValue="${env.HOMEDRIVE}\${env.HOMEPATH}\Greenstone3"
     48            defaultValue="C:\Program Files\Greenstone3,${env.HOMEDRIVE}\${env.HOMEPATH}\Greenstone3"
    4949            create="true"
    5050            displayText=""
Note: See TracChangeset for help on using the changeset viewer.