Changeset 19755

Show
Ignore:
Timestamp:
08.06.2009 13:34:49 (10 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 modified

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=""