contrib/wix/templates.wxs
author Matt Harbison <matt_harbison@yahoo.com>
Tue, 04 Nov 2014 12:46:00 -0500
changeset 23347 49cdf51cbc6c
parent 20315 4dd91c466a81
child 24989 3098dcd2d167
permissions -rw-r--r--
run-tests: include quotes in the HGEDITOR value when storing sys.executable This fixes test-install.t on Windows that broke in 2122b82b6987 when shlex.split() was added to the debuginstall command: @@ -7,8 +7,11 @@ checking installed modules (*mercurial)... (glob) checking templates (*mercurial?templates)... (glob) checking commit editor... + Can't find editor 'c:\Python27\python.exe -c "(omitted)"' in PATH + (specify a commit editor in your configuration file) checking username... - no problems detected + 1 problems detected, please check your install! + [1] What happens is that shlex.split() on Windows turns this: c:\Python27\python.exe -c "import sys; sys.exit(0)" into this: ['c:Python27python.exe', '-c', 'import sys; sys.exit(0)'] While technically a regression, most programs on Windows live in some flavor of 'Program Files', and therefore the environment variable needs to contain quotes anyway to handle the space. This wasn't handled prior to the shlex() change, because it tested the whole environment variable to see if it was an executable, or split on the first space and tested again.

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

  <?include guids.wxi ?>
  <?include defines.wxi ?>

  <Fragment>
    <ComponentGroup Id="templatesFolder">

      <ComponentRef Id="templates.root" />

      <ComponentRef Id="templates.atom" />
      <ComponentRef Id="templates.coal" />
      <ComponentRef Id="templates.gitweb" />
      <ComponentRef Id="templates.monoblue" />
      <ComponentRef Id="templates.paper" />
      <ComponentRef Id="templates.raw" />
      <ComponentRef Id="templates.rss" />
      <ComponentRef Id="templates.spartan" />
      <ComponentRef Id="templates.static" />

    </ComponentGroup>
  </Fragment>

  <Fragment>
    <DirectoryRef Id="INSTALLDIR">

      <Directory Id="templatesdir" Name="templates" FileSource="$(var.SourceDir)">

        <Component Id="templates.root" Guid="$(var.templates.root.guid)" Win64='$(var.IsX64)'>
          <File Name="map-cmdline.changelog" KeyPath="yes" />
          <File Name="map-cmdline.compact" />
          <File Name="map-cmdline.default" />
          <File Name="map-cmdline.bisect" />
          <File Name="map-cmdline.xml" />
          <File Name="map-cmdline.phases" />
        </Component>

        <Directory Id="templates.atomdir" Name="atom">
          <Component Id="templates.atom" Guid="$(var.templates.atom.guid)" Win64='$(var.IsX64)'>
            <File Id="atom.changelog.tmpl"      Name="changelog.tmpl" KeyPath="yes" />
            <File Id="atom.changelogentry.tmpl" Name="changelogentry.tmpl" />
            <File Id="atom.error.tmpl"          Name="error.tmpl" />
            <File Id="atom.filelog.tmpl"        Name="filelog.tmpl" />
            <File Id="atom.header.tmpl"         Name="header.tmpl" />
            <File Id="atom.map"                 Name="map" />
            <File Id="atom.tagentry.tmpl"       Name="tagentry.tmpl" />
            <File Id="atom.tags.tmpl"           Name="tags.tmpl" />
            <File Id="atom.branchentry.tmpl"    Name="branchentry.tmpl" />
            <File Id="atom.branches.tmpl"       Name="branches.tmpl" />
            <File Id="atom.bookmarks.tmpl"      Name="bookmarks.tmpl" />
            <File Id="atom.bookmarkentry.tmpl"  Name="bookmarkentry.tmpl" />
          </Component>
        </Directory>

        <Directory Id="templates.coaldir" Name="coal">
          <Component Id="templates.coal" Guid="$(var.templates.coal.guid)" Win64='$(var.IsX64)'>
            <File Id="coal.header.tmpl" Name="header.tmpl" KeyPath="yes" />
            <File Id="coal.map"         Name="map" />
          </Component>
        </Directory>

        <Directory Id="templates.gitwebdir" Name="gitweb">
          <Component Id="templates.gitweb" Guid="$(var.templates.gitweb.guid)" Win64='$(var.IsX64)'>
            <File Id="gitweb.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
            <File Id="gitweb.bookmarks.tmpl"      Name="bookmarks.tmpl" />
            <File Id="gitweb.changelog.tmpl"      Name="changelog.tmpl" />
            <File Id="gitweb.changelogentry.tmpl" Name="changelogentry.tmpl" />
            <File Id="gitweb.changeset.tmpl"      Name="changeset.tmpl" />
            <File Id="gitweb.error.tmpl"          Name="error.tmpl" />
            <File Id="gitweb.fileannotate.tmpl"   Name="fileannotate.tmpl" />
            <File Id="gitweb.filecomparison.tmpl" Name="filecomparison.tmpl" />
            <File Id="gitweb.filediff.tmpl"       Name="filediff.tmpl" />
            <File Id="gitweb.filelog.tmpl"        Name="filelog.tmpl" />
            <File Id="gitweb.filerevision.tmpl"   Name="filerevision.tmpl" />
            <File Id="gitweb.footer.tmpl"         Name="footer.tmpl" />
            <File Id="gitweb.graph.tmpl"          Name="graph.tmpl" />
            <File Id="gitweb.header.tmpl"         Name="header.tmpl" />
            <File Id="gitweb.index.tmpl"          Name="index.tmpl" />
            <File Id="gitweb.manifest.tmpl"       Name="manifest.tmpl" />
            <File Id="gitweb.map"                 Name="map" />
            <File Id="gitweb.notfound.tmpl"       Name="notfound.tmpl" />
            <File Id="gitweb.search.tmpl"         Name="search.tmpl" />
            <File Id="gitweb.shortlog.tmpl"       Name="shortlog.tmpl" />
            <File Id="gitweb.summary.tmpl"        Name="summary.tmpl" />
            <File Id="gitweb.tags.tmpl"           Name="tags.tmpl" />
            <File Id="gitweb.help.tmpl"           Name="help.tmpl" />
            <File Id="gitweb.helptopics.tmpl"     Name="helptopics.tmpl" />
          </Component>
        </Directory>

        <Directory Id="templates.monobluedir" Name="monoblue">
          <Component Id="templates.monoblue" Guid="$(var.templates.monoblue.guid)" Win64='$(var.IsX64)'>
            <File Id="monoblue.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
            <File Id="monoblue.bookmarks.tmpl"      Name="bookmarks.tmpl" />
            <File Id="monoblue.changelog.tmpl"      Name="changelog.tmpl" />
            <File Id="monoblue.changelogentry.tmpl" Name="changelogentry.tmpl" />
            <File Id="monoblue.changeset.tmpl"      Name="changeset.tmpl" />
            <File Id="monoblue.error.tmpl"          Name="error.tmpl" />
            <File Id="monoblue.fileannotate.tmpl"   Name="fileannotate.tmpl" />
            <File Id="monoblue.filecomparison.tmpl" Name="filecomparison.tmpl" />
            <File Id="monoblue.filediff.tmpl"       Name="filediff.tmpl" />
            <File Id="monoblue.filelog.tmpl"        Name="filelog.tmpl" />
            <File Id="monoblue.filerevision.tmpl"   Name="filerevision.tmpl" />
            <File Id="monoblue.footer.tmpl"         Name="footer.tmpl" />
            <File Id="monoblue.graph.tmpl"          Name="graph.tmpl" />
            <File Id="monoblue.header.tmpl"         Name="header.tmpl" />
            <File Id="monoblue.index.tmpl"          Name="index.tmpl" />
            <File Id="monoblue.manifest.tmpl"       Name="manifest.tmpl" />
            <File Id="monoblue.map"                 Name="map" />
            <File Id="monoblue.notfound.tmpl"       Name="notfound.tmpl" />
            <File Id="monoblue.search.tmpl"         Name="search.tmpl" />
            <File Id="monoblue.shortlog.tmpl"       Name="shortlog.tmpl" />
            <File Id="monoblue.summary.tmpl"        Name="summary.tmpl" />
            <File Id="monoblue.tags.tmpl"           Name="tags.tmpl" />
            <File Id="monoblue.help.tmpl"           Name="help.tmpl" />
            <File Id="monoblue.helptopics.tmpl"     Name="helptopics.tmpl" />
          </Component>
        </Directory>

        <Directory Id="templates.paperdir" Name="paper">
          <Component Id="templates.paper" Guid="$(var.templates.paper.guid)" Win64='$(var.IsX64)'>
            <File Id="paper.branches.tmpl"      Name="branches.tmpl" KeyPath="yes" />
            <File Id="paper.bookmarks.tmpl"     Name="bookmarks.tmpl" />
            <File Id="paper.changeset.tmpl"     Name="changeset.tmpl" />
            <File Id="paper.diffstat.tmpl"      Name="diffstat.tmpl" />
            <File Id="paper.error.tmpl"         Name="error.tmpl" />
            <File Id="paper.fileannotate.tmpl"  Name="fileannotate.tmpl" />
            <File Id="paper.filecomparison.tmpl" Name="filecomparison.tmpl" />
            <File Id="paper.filediff.tmpl"      Name="filediff.tmpl" />
            <File Id="paper.filelog.tmpl"       Name="filelog.tmpl" />
            <File Id="paper.filelogentry.tmpl"  Name="filelogentry.tmpl" />
            <File Id="paper.filerevision.tmpl"  Name="filerevision.tmpl" />
            <File Id="paper.footer.tmpl"        Name="footer.tmpl" />
            <File Id="paper.graph.tmpl"         Name="graph.tmpl" />
            <File Id="paper.header.tmpl"        Name="header.tmpl" />
            <File Id="paper.index.tmpl"         Name="index.tmpl" />
            <File Id="paper.manifest.tmpl"      Name="manifest.tmpl" />
            <File Id="paper.map"                Name="map" />
            <File Id="paper.notfound.tmpl"      Name="notfound.tmpl" />
            <File Id="paper.search.tmpl"        Name="search.tmpl" />
            <File Id="paper.shortlog.tmpl"      Name="shortlog.tmpl" />
            <File Id="paper.shortlogentry.tmpl" Name="shortlogentry.tmpl" />
            <File Id="paper.tags.tmpl"          Name="tags.tmpl" />
            <File Id="paper.help.tmpl"          Name="help.tmpl" />
            <File Id="paper.helptopics.tmpl"    Name="helptopics.tmpl" />
          </Component>
        </Directory>

        <Directory Id="templates.rawdir" Name="raw">
          <Component Id="templates.raw" Guid="$(var.templates.raw.guid)" Win64='$(var.IsX64)'>
            <File Id="raw.changeset.tmpl"    Name="changeset.tmpl" KeyPath="yes" />
            <File Id="raw.error.tmpl"        Name="error.tmpl" />
            <File Id="raw.fileannotate.tmpl" Name="fileannotate.tmpl" />
            <File Id="raw.filediff.tmpl"     Name="filediff.tmpl" />
            <File Id="raw.graph.tmpl"        Name="graph.tmpl" />
            <File Id="raw.graphedge.tmpl"    Name="graphedge.tmpl" />
            <File Id="raw.graphnode.tmpl"    Name="graphnode.tmpl" />
            <File Id="raw.index.tmpl"        Name="index.tmpl" />
            <File Id="raw.manifest.tmpl"     Name="manifest.tmpl" />
            <File Id="raw.map"               Name="map" />
            <File Id="raw.notfound.tmpl"     Name="notfound.tmpl" />
            <File Id="raw.search.tmpl"       Name="search.tmpl" />
            <File Id="raw.logentry.tmpl"     Name="logentry.tmpl" />
            <File Id="raw.changelog.tmpl"    Name="changelog.tmpl" />
          </Component>
        </Directory>

        <Directory Id="templates.rssdir" Name="rss">
          <Component Id="templates.rss" Guid="$(var.templates.rss.guid)" Win64='$(var.IsX64)'>
            <File Id="rss.changelog.tmpl"      Name="changelog.tmpl" KeyPath="yes" />
            <File Id="rss.changelogentry.tmpl" Name="changelogentry.tmpl" />
            <File Id="rss.error.tmpl"          Name="error.tmpl" />
            <File Id="rss.filelog.tmpl"        Name="filelog.tmpl" />
            <File Id="rss.filelogentry.tmpl"   Name="filelogentry.tmpl" />
            <File Id="rss.header.tmpl"         Name="header.tmpl" />
            <File Id="rss.map"                 Name="map" />
            <File Id="rss.tagentry.tmpl"       Name="tagentry.tmpl" />
            <File Id="rss.tags.tmpl"           Name="tags.tmpl" />
            <File Id="rss.bookmarks.tmpl"      Name="bookmarks.tmpl" />
            <File Id="rss.bookmarkentry.tmpl"  Name="bookmarkentry.tmpl" />
            <File Id="rss.branchentry.tmpl"    Name="branchentry.tmpl" />
            <File Id="rss.branches.tmpl"       Name="branches.tmpl" />
          </Component>
        </Directory>

        <Directory Id="templates.spartandir" Name="spartan">
          <Component Id="templates.spartan" Guid="$(var.templates.spartan.guid)" Win64='$(var.IsX64)'>
            <File Id="spartan.branches.tmpl"       Name="branches.tmpl" KeyPath="yes" />
            <File Id="spartan.changelog.tmpl"      Name="changelog.tmpl" />
            <File Id="spartan.changelogentry.tmpl" Name="changelogentry.tmpl" />
            <File Id="spartan.changeset.tmpl"      Name="changeset.tmpl" />
            <File Id="spartan.error.tmpl"          Name="error.tmpl" />
            <File Id="spartan.fileannotate.tmpl"   Name="fileannotate.tmpl" />
            <File Id="spartan.filediff.tmpl"       Name="filediff.tmpl" />
            <File Id="spartan.filelog.tmpl"        Name="filelog.tmpl" />
            <File Id="spartan.filelogentry.tmpl"   Name="filelogentry.tmpl" />
            <File Id="spartan.filerevision.tmpl"   Name="filerevision.tmpl" />
            <File Id="spartan.footer.tmpl"         Name="footer.tmpl" />
            <File Id="spartan.graph.tmpl"          Name="graph.tmpl" />
            <File Id="spartan.header.tmpl"         Name="header.tmpl" />
            <File Id="spartan.index.tmpl"          Name="index.tmpl" />
            <File Id="spartan.manifest.tmpl"       Name="manifest.tmpl" />
            <File Id="spartan.map"                 Name="map" />
            <File Id="spartan.notfound.tmpl"       Name="notfound.tmpl" />
            <File Id="spartan.search.tmpl"         Name="search.tmpl" />
            <File Id="spartan.shortlog.tmpl"       Name="shortlog.tmpl" />
            <File Id="spartan.shortlogentry.tmpl"  Name="shortlogentry.tmpl" />
            <File Id="spartan.tags.tmpl"           Name="tags.tmpl" />
          </Component>
        </Directory>

        <Directory Id="templates.staticdir" Name="static">
          <Component Id="templates.static" Guid="$(var.templates.static.guid)" Win64='$(var.IsX64)'>
            <File Id="static.background.png"     Name="background.png" KeyPath="yes" />
            <File Id="static.coal.file.png"      Name="coal-file.png" />
            <File Id="static.coal.folder.png"    Name="coal-folder.png" />
            <File Id="static.excanvas.js"        Name="excanvas.js" />
            <File Id="static.mercurial.js"       Name="mercurial.js" />
            <File Id="static.hgicon.png"         Name="hgicon.png" />
            <File Id="static.hglogo.png"         Name="hglogo.png" />
            <File Id="static.style.coal.css"     Name="style-coal.css" />
            <File Id="static.style.gitweb.css"   Name="style-gitweb.css" />
            <File Id="static.style.monoblue.css" Name="style-monoblue.css" />
            <File Id="static.style.paper.css"    Name="style-paper.css" />
            <File Id="static.style.css"          Name="style.css" />
            <File Id="static.feed.icon"          Name="feed-icon-14x14.png" />
          </Component>
        </Directory>

      </Directory>

    </DirectoryRef>
  </Fragment>

 </Wix>