summaryrefslogtreecommitdiff
path: root/omnibus/resources/angrychef/msi/source.wxs.erb
diff options
context:
space:
mode:
Diffstat (limited to 'omnibus/resources/angrychef/msi/source.wxs.erb')
-rw-r--r--omnibus/resources/angrychef/msi/source.wxs.erb139
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>