summaryrefslogtreecommitdiff
path: root/omnibus/resources/push-jobs-client/msi/source.wxs.erb
blob: 70fe9fa1794d8daa2581f6273b43d1b2645fcff8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?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="PushJobsClient.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" />
    </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="push-jobs-client" >
            <Directory Id="EMBEDDED" Name="embedded" >
              <Directory Id="EMBEDDEDBIN" Name="bin" >
                <Component Id="PushJobsClientPath" Guid="{0F9F9EE6-CC96-463E-BE6C-1AA33266FD9F}" >
                  <Environment Id="Environment"
                               Name="PATH" Action="set" Part="last" System="yes" Value="[PROJECTLOCATION]bin" />
                </Component>
                <Component Id="PushJobsClientService" Guid="{1E9F8C22-25A7-4084-9FD9-F1B4C10E62F9}" >
                  <File Id="RubyExecutable" Source="$(var.ProjectSourceDir)\embedded\bin\ruby.exe" KeyPath="yes" />
                  <ServiceInstall Name="push-jobs-client" Type="ownProcess"
                                  Start="auto" Vital="yes" ErrorControl="ignore"
                                  Arguments="[PROJECTLOCATION]$(var.PushJobsGemPath)\lib\pushy_client\windows_service.rb"
                                  DisplayName="!(loc.ServiceDisplayName)"
                                  Description="!(loc.ServiceDescription)" />
                  <ServiceControl Id="ControlPushJobsClientService" Name="push-jobs-client"
                                  Remove="both" Start="install" Stop="both" Wait="yes" />
                </Component>
              </Directory>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>

    <!-- Set the components defined in our fragment files that will be used for our feature  -->
    <Feature Id="PushJobsClientFeature" Title="!(loc.ProductName)" Level="1">
      <ComponentGroupRef Id="ProjectDir" />
      <ComponentRef Id="PushJobsClientPath" />
      <ComponentRef Id="CONFIGLOCATIONDIR" />
      <ComponentRef Id="PushJobsClientService" />
    </Feature>

    <!--
        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="PushJobsClientUI_InstallDir"/>
    <UI Id="PushJobsClientUI_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>