Skip to content
mbackup.wxs 6.62 KiB
Newer Older
Yuanle Song's avatar
Yuanle Song committed
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" UpgradeCode="3030B91E-5E3E-4151-9A69-B53B72690430" Version="$(var.Version)" Language="1033" Name="mbackup" Manufacturer="Yuanle Song">
    <Package InstallScope="perMachine" InstallerVersion="300" Compressed="yes"/>
Yuanle Song's avatar
Yuanle Song committed
    <Media Id="1" Cabinet="mbackup.cab" EmbedCab="yes" />

    <MajorUpgrade AllowDowngrades="yes"/>

Yuanle Song's avatar
Yuanle Song committed
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFiles64Folder">
          <Directory Id="MBACKUP_PROGRAM_FILES" Name="mbackup" />
        </Directory>
        <Directory Id="CommonAppDataFolder">
          <Directory Id="MBACKUP_DATA" Name="mbackup"/>
        </Directory>
        <Directory Id="DesktopFolder" Name="Desktop" />
        <Directory Id="ProgramMenuFolder">
          <Directory Id="mbackup_start_menu_dir" Name="mbackup" />
        </Directory>
Yuanle Song's avatar
Yuanle Song committed
    </Directory>
    <DirectoryRef Id="MBACKUP_DATA">
      <Component Id="default_exclude.txt" Guid="*">
          <File Id="default_exclude.txt" Source="mbackup-config\default-exclude.txt" KeyPath="yes"/>
      </Component>
      <Component Id="default_list.txt" Guid="*">
          <File Id="default_list.txt" Source="mbackup-config\default-list.txt" KeyPath="yes"/>
      </Component>
      <Component Id="local_list.txt" NeverOverwrite="yes" Permanent="yes" Guid="*">
          <!-- do not overwrite this component/file if it already exists on target system -->
          <File Id="local_list.txt" Source="mbackup-config\local-list.txt" KeyPath="yes"/>
      </Component>
      <Component Id="local_exclude.txt" NeverOverwrite="yes" Permanent="yes" Guid="*">
          <!-- do not overwrite this component/file if it already exists on target system -->
          <File Id="local_exclude.txt" Source="mbackup-config\local-exclude.txt" KeyPath="yes"/>
      </Component>
      <Component Id="mbackup_config.txt" NeverOverwrite="yes" Permanent="yes" Guid="*">
          <!-- do not overwrite this component/file if it already exists on target system -->
          <File Id="mbackup_config.txt" Source="mbackup-config\mbackup-config.txt" KeyPath="yes"/>
      </Component>
      <Component Id="user_default_list.txt" Guid="*">
          <File Id="user_default_list.txt" Source="mbackup-config\user-default-list.txt" KeyPath="yes"/>
      </Component>
    </DirectoryRef>

    <DirectoryRef Id="DesktopFolder">
        <Component Id="mbackup_desktop_shortcuts" Guid="*">
            <Shortcut Id="DesktopMbackupExe"
                Name="mbackup"
                Description="Backup your computer using rsync"
                Target="[!filE3FFB5E42FD6DDB7AD945F29409779F0]"
                WorkingDirectory="MBACKUP_PROGRAM_FILES"/>
            <RemoveFolder Id="MbackupDesktopShortcut" On="uninstall"/>
            <RegistryValue Root="HKCU" Key="Software\mbackup\desktopshortcuts" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
        </Component>
    </DirectoryRef>

    <DirectoryRef Id="mbackup_start_menu_dir">
        <Component Id="mbackup_start_menu" Guid="F7C168BA-BDC9-4C4D-8AE7-722AC399AFD5">
            <Shortcut Id="StartMenuMbackupExe"
                      Name="mbackup"
                      Description="Backup your computer using rsync"
                      Target="[!filE3FFB5E42FD6DDB7AD945F29409779F0]"
                      WorkingDirectory="MBACKUP_PROGRAM_FILES"/>
            <Shortcut Id="StartMenuMbackupConfig"
                      Name="mbackup-config.txt"
                      Description="mbackup config file"
                      Target="[!mbackup_config.txt]"
                      WorkingDirectory="MBACKUP_PROGRAM_FILES"/>
            <Shortcut Id="StartMenuLocalList"
                      Name="local-list.txt"
                      Description="mbackup local-list.txt file"
                      Target="[!local_list.txt]"
                      WorkingDirectory="MBACKUP_PROGRAM_FILES"/>
            <Shortcut Id="StartMenuLocalExclude"
                      Name="local-exclude.txt"
                      Description="mbackup local-exclude.txt file"
                      Target="[!local_exclude.txt]"
                      WorkingDirectory="MBACKUP_PROGRAM_FILES"/>
            <RemoveFolder Id="mbackup_start_menu_dir" On="uninstall"/>
            <RegistryValue Root="HKCU" Key="Software\mbackup\startmenushortcuts" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
        </Component>
    </DirectoryRef>
    <InstallExecuteSequence>
        <Custom Action="CreateScheduledTaskLogon" Before='InstallFinalize'>NOT Installed</Custom>
        <Custom Action="RemoveScheduledTaskLogon" Before="RemoveFiles">Installed</Custom>
        <Custom Action="CreateScheduledTaskInterval" Before='InstallFinalize'>NOT Installed</Custom>
        <Custom Action="RemoveScheduledTaskInterval" Before="RemoveFiles">Installed</Custom>
    </InstallExecuteSequence>

    <CustomAction Id="CreateScheduledTaskLogon"
        Return="check"
        Impersonate="no"
        Execute="deferred"
        Directory="TARGETDIR"
        ExeCommand="&quot;[SystemFolder]SCHTASKS.EXE&quot; /Create /RU SYSTEM /RP /NP /SC ONLOGON /TN &quot;mbackup-logon&quot; /TR &quot;[MBACKUP_PROGRAM_FILES]publish\mbackup.exe&quot; /DELAY 0015:00" />
    <CustomAction Id="RemoveScheduledTaskLogon"
        Return="check"
        Impersonate="no"
        Execute="deferred"
        Directory="TARGETDIR"
        ExeCommand="&quot;[SystemFolder]SCHTASKS.EXE&quot; /Delete /TN &quot;mbackup-logon&quot; /F" />
    <CustomAction Id="CreateScheduledTaskInterval"
        Return="check"
        Impersonate="no"
        Execute="deferred"
        Directory="TARGETDIR"
        ExeCommand="&quot;[SystemFolder]SCHTASKS.EXE&quot; /Create /RU SYSTEM /RP /NP /SC DAILY /TN &quot;mbackup-interval&quot; /TR &quot;[MBACKUP_PROGRAM_FILES]publish\mbackup.exe&quot; /ST 09:00 /DU 17:00 /RI 120 /K" />
    <CustomAction Id="RemoveScheduledTaskInterval"
        Return="check"
        Impersonate="no"
        Execute="deferred"
        Directory="TARGETDIR"
        ExeCommand="&quot;[SystemFolder]SCHTASKS.EXE&quot; /Delete /TN &quot;mbackup-interval&quot; /F" />

Yuanle Song's avatar
Yuanle Song committed
    <Feature Id="MainApplication" Title="Main Application" Level="1">
      <ComponentGroupRef Id="MbackupHeatGenerated" />
      <ComponentGroupRef Id="RsyncHeatGenerated" />
      <ComponentRef Id="default_exclude.txt" />
      <ComponentRef Id="default_list.txt" />
      <ComponentRef Id="local_list.txt" />
      <ComponentRef Id="local_exclude.txt" />
      <ComponentRef Id="mbackup_config.txt" />
      <ComponentRef Id="user_default_list.txt" />
      <ComponentRef Id="mbackup_start_menu" />
      <ComponentRef Id="mbackup_desktop_shortcuts" />
Yuanle Song's avatar
Yuanle Song committed
    </Feature>
  </Product>
</Wix>