Simple Addon Installer

I promised a few people this, so here goes.

Name "NAME" OutFile "NAME.exe" InstallDir "$PROGRAMFILES\NASA\World Wind v1.3" InstallDirRegKey HKCU "Software\NASA\World Wind" ""
 * Any place where you see NAME, replace with your add-ons name.
 * Download NSIS and install.
 * Create a directory to work in such as "NAME"
 * Inside this directory create another directory named "Install"
 * Create your .nsi script. Open up notepad (or another favorite text editor) and paste the following:

Section "Main Install" SetOutPath $INSTDIR File /r "Install\*.*" SectionEnd

Page directory Page instfiles

Save as NAME.nsi


 * Inside the "Install" directory is where you put your files. Commonly for WW this would be a "Configuration" directory, subdirectory and files, and also a "Data" directory et all.   Do not put the "NASA" Directory or "Worldwind v1.3" directory in there.  You want only directories and files inside of those.  Hopefully this makes sense.
 * Right click on NAME.nsi and choose "Compile NSIS Script" You may also choose the compresser to use. LZMA is the best but most of the add-ons are small so this is trivial.

You should be done! A few notes:

It is pointless to zip up an exe installer, it doesn't save much room (may actually cost some).

So far the best naming convention I've seen has been.

Worldwind_1.3_NAME_0.1.exe

It would be nice if Add-on developers stuck to the same convention especially putting in WW's version number in there. Of course adjust accordingly :)

I hope it's helpfull, please feel free to comment. Special thanks for Nowak for designing the original quick and easy nsi script, and showing me how it's done.

Installing an add-on that appends to an XML config file
(Sample NSI script by Matt Mills.)

Name "Colored SRTM Elevation"
 * The name of the installer

OutFile "vissrtm.exe"
 * The file to write


 * The default installation directory


 * Name "NAME"
 * OutFile "NAME.exe"
 * InstallDir "$PROGRAMFILES\NASA\World Wind v1.3"
 * InstallDirRegKey HKCU "Software\NASA\World Wind" ""

InstallDir "$PROGRAMFILES\NASA\World Wind 1.3\"




 * Pages

Page directory Page instfiles



Section "" ;No components page, name is not important
 * The stuff to install

SetOutPath "$INSTDIR\Data\Icons\Interface\" File vissrtm.png

CopyFiles /silent $INSTDIR\Config\Earth\Images.xml $INSTDIR\Images.vissrtm.bak.xml

ClearErrors FileOpen $0 $INSTDIR\Config\Earth\Images.xml a IfErrors done FileSeek $0 -31 END

FileWrite $0 '		$\r$\n' FileWrite $0 "			Colored SRTM Elevation$\r$\n" FileWrite $0 "			10$\r$\n" FileWrite $0 "			$\r$\n" FileWrite $0 "				$\r$\n" FileWrite $0 "					90.0 $\r$\n" FileWrite $0 "				$\r$\n" FileWrite $0 "				$\r$\n" FileWrite $0 "					-90.0 $\r$\n" FileWrite $0 "				$\r$\n" FileWrite $0 "				$\r$\n" FileWrite $0 "					-180.0</Value> $\r$\n" FileWrite $0 "				</West>$\r$\n" FileWrite $0 "				<East>$\r$\n" FileWrite $0 "					180.0</Value> $\r$\n" FileWrite $0 "				</East>$\r$\n" FileWrite $0 "			</BoundingBox>$\r$\n" FileWrite $0 "			<TerrainMapped>true</TerrainMapped>$\r$\n" FileWrite $0 "			<ImageAccessor>$\r$\n" FileWrite $0 "				<LevelZeroTileSizeDegrees>20</LevelZeroTileSizeDegrees>$\r$\n" FileWrite $0 "				<NumberLevels>8</NumberLevels>$\r$\n" FileWrite $0 "				<TextureSizePixels>150</TextureSizePixels>$\r$\n" FileWrite $0 "				<ImageFileExtension>jpg</ImageFileExtension>$\r$\n" FileWrite $0 "				<ImageTileService>$\r$\n" FileWrite $0 "					<ServerUrl>http://www.worldwinddata.com/redir.php</ServerUrl>$\r$\n" FileWrite $0 "					<DataSetName>vissrtm</DataSetName>$\r$\n" FileWrite $0 "					<ServerLogoFilePath>Data\Icons\Interface\vissrtm.png</ServerLogoFilePath>$\r$\n" FileWrite $0 "				</ImageTileService>$\r$\n" FileWrite $0 "			</ImageAccessor>$\r$\n" FileWrite $0 "			<ExtendedInformation>$\r$\n" FileWrite $0 "				<ToolBarImage>Data\Icons\Interface\vissrtm.png</ToolBarImage>$\r$\n" FileWrite $0 "			</ExtendedInformation>$\r$\n" FileWrite $0 "		</QuadTileSet>$\r$\n" FileWrite $0 "	</ChildLayerSet>$\r$\n" FileWrite $0 "</LayerSet>$\r$\n"

FileClose $0 done:

SectionEnd ; end the section