JAL-3631 Allow unixBinDir (where a symbolic link gets made) to be set in response...
authorBen Soares <b.soares@dundee.ac.uk>
Wed, 28 Aug 2024 12:17:06 +0000 (13:17 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Wed, 28 Aug 2024 12:17:06 +0000 (13:17 +0100)
utils/install4j/install4j10_template.install4j

index 32f645d..c5d1460 100644 (file)
@@ -689,7 +689,6 @@ public static final String getCanonicalFullPathToDirectoryHash(String installerA
               </action>
               <action name="BOTHSPACE: Set unixBinDir (Linux or Unix)" id="2845" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
                 <serializedBean>
-                  <property name="onlyIfUndefined" type="boolean" value="true" />
                   <property name="responseFileVariable" type="boolean" value="true" />
                   <property name="script">
                     <object class="com.install4j.api.beans.ScriptProperty">
@@ -720,7 +719,8 @@ return null;
                   </property>
                   <property name="variableName" type="string">unixBinDir</property>
                 </serializedBean>
-                <condition>context.getBooleanVariable("makeSymbolicLink")</condition>
+                <condition>context.getBooleanVariable("makeSymbolicLink")
+&amp;&amp; (context.getVariable("unixBinDir") == null || context.getVariable("unixBinDir").toString().length() == 0)</condition>
               </action>
               <action name="USERSPACE: Set MacOSDir (macOS)" id="2745" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
                 <serializedBean>
@@ -991,8 +991,12 @@ return true;</property>
             <actions>
               <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
                 <serializedBean>
-                  <property name="excludedVariables" type="array" elementType="string" length="1">
+                  <property name="excludedVariables" type="array" elementType="string" length="5">
                     <element index="0">sys.installationDir</element>
+                    <element index="1">sys.adminRights$Boolean</element>
+                    <element index="2">sys.adminRightsUiRootUnix$Boolean</element>
+                    <element index="3">sys.component.1031$Boolean</element>
+                    <element index="4">sys.fileAssociation.launchers$StringArray</element>
                   </property>
                 </serializedBean>
                 <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
@@ -1039,8 +1043,12 @@ return console.askOkCancel(message, true);
             <actions>
               <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
                 <serializedBean>
-                  <property name="excludedVariables" type="array" elementType="string" length="1">
+                  <property name="excludedVariables" type="array" elementType="string" length="5">
                     <element index="0">sys.installationDir</element>
+                    <element index="1">sys.adminRights$Boolean</element>
+                    <element index="2">sys.adminRightsUiRootUnix$Boolean</element>
+                    <element index="3">sys.component.1031$Boolean</element>
+                    <element index="4">sys.fileAssociation.launchers$StringArray</element>
                   </property>
                 </serializedBean>
                 <condition>context.getVariable("sys.responseFile") == null</condition>