diff options
Diffstat (limited to 'omnibus/resources/angrychef/msi/source.wxs.erb')
-rw-r--r-- | omnibus/resources/angrychef/msi/source.wxs.erb | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/omnibus/resources/angrychef/msi/source.wxs.erb b/omnibus/resources/angrychef/msi/source.wxs.erb new file mode 100644 index 0000000000..4cfd1b0dd1 --- /dev/null +++ b/omnibus/resources/angrychef/msi/source.wxs.erb @@ -0,0 +1,139 @@ +<?xml version='1.0'?> +<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> + + <!-- This is how we include wxi files --> + <?include "parameters.wxi" ?> + + <!-- + Id="*" is to enable upgrading. * means that the product ID will be autogenerated on each build. + Name is made of localized product name and version number. + --> + <Product Id="*" Name="!(loc.ProductName) v$(var.DisplayVersionNumber)" Language="!(loc.LANG)" + Version="$(var.VersionNumber)" Manufacturer="!(loc.ManufacturerName)" UpgradeCode="$(var.UpgradeCode)"> + + <!-- + Define the minimum supported installer version (2.0). + The install should be done for the whole machine not just the current user + --> + <Package InstallerVersion="200" InstallPrivileges="elevated" + Compressed="yes" InstallScope="perMachine" /> + + <Media Id="1" Cabinet="ChefClient.cab" EmbedCab="yes" CompressionLevel="high" /> + + <!-- Major upgrade --> + <Upgrade Id="$(var.UpgradeCode)"> + <UpgradeVersion OnlyDetect="yes" Minimum="$(var.VersionNumber)" IncludeMinimum="no" Property="NEWERVERSIONDETECTED" /> + <UpgradeVersion Minimum="0.0.0.0" IncludeMinimum="yes" Maximum="$(var.VersionNumber)" IncludeMaximum="no" Property="OLDERVERSIONBEINGUPGRADED" MigrateFeatures="yes" /> + </Upgrade> + + <InstallExecuteSequence> + <RemoveExistingProducts After="InstallValidate" /> + </InstallExecuteSequence> + + <Directory Id="TARGETDIR" Name="SourceDir"> + <Directory Id="WindowsVolume"> + <!-- Service needs chef directory to be present. --> + <Directory Id="CONFIGLOCATION" Name="chef"> + <Component Id="CONFIGLOCATIONDIR" Guid="{F66F6394-51A4-4C5D-908B-E55584473436}" > + <CreateFolder Directory="CONFIGLOCATION" /> + </Component> + </Directory> + <Directory Id="INSTALLLOCATION" Name="opscode"> + <Directory Id="PROJECTLOCATION" Name="angrychef" > + <Directory Id="PROJECTLOCATIONBIN" Name="bin" > + <Component Id="ChefClientPath" Guid="{7F663F88-55A2-4E20-82BF-8BD2E60BB83A}" > + <Environment Id="ClientPathEnvironment" + Name="PATH" Action="set" Part="last" System="yes" Value="[PROJECTLOCATIONBIN]" /> + </Component> + </Directory> + <Directory Id="PSMODULES" Name="modules" > + <Directory Id="PSMODULESCHEF" Name="chef" > + <Component Id="ChefPSModuleFile" Guid="{DF0E99BF-1877-4099-85A4-067C84A743F2}" > + <File Id="chef.psm1" Source="$(var.ProjectSourceDir)\embedded\apps\chef\distro\powershell\chef\chef.psm1" KeyPath="yes" /> + </Component> + </Directory> + <Component Id="ChefPSModulePath" Guid="{357DA654-F02E-430A-9EA6-A10554E3EF38}" > + <Environment Id="ChefPSModulePathEnvironment" + Name="PSModulePath" Action="set" Part="last" System="yes" Value="[PSMODULES]" /> + </Component> + </Directory> + <Directory Id="EMBEDDED" Name="embedded" > + <Directory Id="EMBEDDEDBIN" Name="bin" > + <Component Id="ChefClientService" Guid="{69B2D8BE-4A47-4BE3-AEE8-83FAEB6E2FAF}" > + <File Id="RubyExecutable" Source="$(var.ProjectSourceDir)\embedded\bin\ruby.exe" KeyPath="yes" /> + <ServiceInstall Name="chef-client" Type="ownProcess" + Start="auto" Vital="yes" ErrorControl="ignore" + Arguments="$(var.ProjectSourceDir)\bin\chef-windows-service" + DisplayName="!(loc.ServiceDisplayName)" + Description="!(loc.ServiceDescription)"> + <ServiceConfig DelayedAutoStart="yes" OnInstall="yes" /> + </ServiceInstall> + <ServiceControl Id="ControlChefClientService" Name="chef-client" + Remove="both" Stop="both" Wait="yes" /> + </Component> + <Component Id="ChefClientLog" Guid="{8e492d59-3a0c-43fd-b889-e35dfa33da91}"> + <util:EventSource xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" + Name="Chef" Log="Application" + EventMessageFile="$(var.ProjectSourceDir)\embedded\apps\chef\ext\win32-eventlog\chef-log.dll" + /> + </Component> + </Directory> + </Directory> + </Directory> + </Directory> + </Directory> + </Directory> + + <!-- Set the components defined in our fragment files that will be used for our feature --> + <Feature Id="ChefClientFeature" Title="!(loc.FeatureMainName)" Absent="disallow" AllowAdvertise="no" Level="1" ConfigurableDirectory="INSTALLLOCATION"> + <ComponentGroupRef Id="ProjectDir" /> + <ComponentRef Id="ChefClientPath" /> + <ComponentRef Id="CONFIGLOCATIONDIR" /> + <ComponentRef Id="ChefClientLog" /> + </Feature> + + <Feature Id="ChefPSModuleFeature" Title="!(loc.FeaturePSModuleName)" Level="1000" AllowAdvertise="no"> + <ComponentRef Id="ChefPSModuleFile" /> + <ComponentRef Id="ChefPSModulePath" /> + </Feature> + + <Feature Id="ChefServiceFeature" Title="!(loc.FeatureServiceName)" Level="1000" AllowAdvertise="no"> + <ComponentRef Id="ChefClientService" /> + </Feature> + + <!-- + TODO: + + * create Chef home directory? ie C:\chef + * create initial Client config? ie C:\chef\client.rb? + * optionally install extra tools? ie git? + + --> + + <!-- + UI Stuff + --> + <Icon Id="oc.ico" SourceFile="Resources\assets\oc_16x16.ico"/> + <Property Id="ARPPRODUCTICON" Value="oc.ico" /> + <Property Id="ARPHELPLINK" Value="http://www.getchef.com/support/" /> + <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" /> + + <UIRef Id="ChefClientUI_InstallDir"/> + <UI Id="ChefClientUI_InstallDir"> + <UIRef Id="WixUI_FeatureTree"/> + <TextStyle Id="WixUI_Font_Normal_White" FaceName="Tahoma" Size="8" Red="255" Green="255" Blue="255" /> + <TextStyle Id="WixUI_Font_Bigger_White" FaceName="Tahoma" Size="12" Red="255" Green="255" Blue="255" /> + <TextStyle Id="WixUI_Font_Title_White" FaceName="Tahoma" Size="9" Bold="yes" Red="255" Green="255" Blue="255" /> + </UI> + + <WixVariable Id="WixUILicenseRtf" Value="Resources\assets\LICENSE.rtf" /> + <WixVariable Id="WixUIDialogBmp" Value="Resources\assets\dialog_background.bmp" /> + <WixVariable Id="WixUIBannerBmp" Value="Resources\assets\banner_background.bmp" /> + + <WixVariable Id="WixUIExclamationIco" Value="Resources\assets\oc_32x32.ico" /> + <WixVariable Id="WixUIInfoIco" Value="Resources\assets\oc_32x32.ico" /> + <WixVariable Id="WixUINewIco" Value="Resources\assets\oc_16x16.ico" /> + <WixVariable Id="WixUIUpIco" Value="Resources\assets\oc_16x16.ico" /> + + </Product> +</Wix> |