You've already forked lazarus-ccr
To V0.3.7.1
Universal Installer added (wip) OPM Version incremented git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5725 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -66,7 +66,7 @@ More information in the Wiki Home Page http://wiki.freepascal.org/LazAutoUpdater
|
|||||||
along with this library; if not, write to the Free Software Foundation,
|
along with this library; if not, write to the Free Software Foundation,
|
||||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
"/>
|
"/>
|
||||||
<Version Minor="3" Release="6"/>
|
<Version Minor="3" Release="7" Build="1"/>
|
||||||
<Files Count="7">
|
<Files Count="7">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="ulazautoupdate.pas"/>
|
<Filename Value="ulazautoupdate.pas"/>
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 134 KiB |
@ -0,0 +1,256 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="10"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<Title Value="LazAutoupdate Universal Installer"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<XPManifest>
|
||||||
|
<DpiAware Value="True"/>
|
||||||
|
</XPManifest>
|
||||||
|
<Icon Value="0"/>
|
||||||
|
</General>
|
||||||
|
<i18n>
|
||||||
|
<EnableI18N Value="True"/>
|
||||||
|
<OutDir Value="locale"/>
|
||||||
|
</i18n>
|
||||||
|
<VersionInfo>
|
||||||
|
<UseVersionInfo Value="True"/>
|
||||||
|
<RevisionNr Value="1"/>
|
||||||
|
<Attributes pvaPreRelease="True"/>
|
||||||
|
<StringTable Comments="Installet/Updater using LazAutoUpdate" ProductVersion="0.0.0.0"/>
|
||||||
|
</VersionInfo>
|
||||||
|
<BuildModes Count="5">
|
||||||
|
<Item1 Name="Debug" Default="True"/>
|
||||||
|
<Item2 Name="Win32">
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="compiled\win32\lauinstaller"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<SmartLinkUnit Value="True"/>
|
||||||
|
<TargetCPU Value="i386"/>
|
||||||
|
<TargetOS Value="win32"/>
|
||||||
|
<Optimizations>
|
||||||
|
<OptimizationLevel Value="3"/>
|
||||||
|
</Optimizations>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<GenerateDebugInfo Value="False"/>
|
||||||
|
</Debugging>
|
||||||
|
<LinkSmart Value="True"/>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
<Other>
|
||||||
|
<CustomOptions Value="-FcUTF8"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
</Item2>
|
||||||
|
<Item3 Name="Win64">
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="compiled\win64\lauinstaller"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<SmartLinkUnit Value="True"/>
|
||||||
|
<TargetCPU Value="x86_64"/>
|
||||||
|
<TargetOS Value="win64"/>
|
||||||
|
<Optimizations>
|
||||||
|
<OptimizationLevel Value="3"/>
|
||||||
|
</Optimizations>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<GenerateDebugInfo Value="False"/>
|
||||||
|
</Debugging>
|
||||||
|
<LinkSmart Value="True"/>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
<Other>
|
||||||
|
<CustomOptions Value="-FcUTF8"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
</Item3>
|
||||||
|
<Item4 Name="Linux32">
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="compiled\linux32\lauinstaller"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<SmartLinkUnit Value="True"/>
|
||||||
|
<TargetCPU Value="i386"/>
|
||||||
|
<TargetOS Value="linux"/>
|
||||||
|
<Optimizations>
|
||||||
|
<OptimizationLevel Value="3"/>
|
||||||
|
</Optimizations>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<GenerateDebugInfo Value="False"/>
|
||||||
|
</Debugging>
|
||||||
|
<LinkSmart Value="True"/>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
<Other>
|
||||||
|
<CustomOptions Value="-FcUTF8"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
</Item4>
|
||||||
|
<Item5 Name="Linux64">
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="compiled\linux64\lauinstaller"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<SmartLinkUnit Value="True"/>
|
||||||
|
<TargetCPU Value="x86_64"/>
|
||||||
|
<TargetOS Value="linux"/>
|
||||||
|
<Optimizations>
|
||||||
|
<OptimizationLevel Value="3"/>
|
||||||
|
</Optimizations>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<GenerateDebugInfo Value="False"/>
|
||||||
|
</Debugging>
|
||||||
|
<LinkSmart Value="True"/>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
<Other>
|
||||||
|
<CustomOptions Value="-FcUTF8"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
</Item5>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages Count="2">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="lazupdate"/>
|
||||||
|
<MinVersion Minor="3" Release="7" Valid="True"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item2>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units Count="2">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="lauinstaller.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="mainform"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
</Unit1>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="compiled\debug\lauinstaller"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Parsing>
|
||||||
|
<SyntaxOptions>
|
||||||
|
<IncludeAssertionCode Value="True"/>
|
||||||
|
</SyntaxOptions>
|
||||||
|
</Parsing>
|
||||||
|
<CodeGeneration>
|
||||||
|
<Checks>
|
||||||
|
<IOChecks Value="True"/>
|
||||||
|
<RangeChecks Value="True"/>
|
||||||
|
<OverflowChecks Value="True"/>
|
||||||
|
<StackChecks Value="True"/>
|
||||||
|
</Checks>
|
||||||
|
<VerifyObjMethodCallValidity Value="True"/>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<UseHeaptrc Value="True"/>
|
||||||
|
</Debugging>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
<Other>
|
||||||
|
<CustomOptions Value="-FcUTF8
|
||||||
|
-dDEBUGMODE"/>
|
||||||
|
<OtherDefines Count="1">
|
||||||
|
<Define0 Value="DEBUGMODE"/>
|
||||||
|
</OtherDefines>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions Count="3">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item3>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
@ -0,0 +1,54 @@
|
|||||||
|
program lauinstaller;
|
||||||
|
{
|
||||||
|
License (MIT)
|
||||||
|
=============
|
||||||
|
LazAutoUpdate Universal Installer (c)2017 Gordon Bamber (minesadorada@charcodelvalle.com)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to
|
||||||
|
deal in the Software without restriction, including without limitation the
|
||||||
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
IN THE SOFTWARE.
|
||||||
|
}
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
{$ifdef Linux}
|
||||||
|
{$ifdef FPC_CROSSCOMPILING}
|
||||||
|
{$ifdef CPUARM}
|
||||||
|
//if GUI, then uncomment
|
||||||
|
//{$linklib GLESv2}
|
||||||
|
{$endif}
|
||||||
|
{$linklib libc_nonshared.a}
|
||||||
|
{$endif}
|
||||||
|
{$endif}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}{$ENDIF}
|
||||||
|
Interfaces, // this includes the LCL widgetset
|
||||||
|
Forms, umainform
|
||||||
|
{ you can add units after this };
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Title:='LazAutoupdate Universal Installer';
|
||||||
|
RequireDerivedFormResource:=True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(Tmainform, mainform);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
|
|
@ -0,0 +1,187 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectSession>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Version Value="10"/>
|
||||||
|
<BuildModes Active="Linux64"/>
|
||||||
|
<Units Count="7">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="lauinstaller.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
|
<CursorPos X="25" Y="5"/>
|
||||||
|
<UsageCount Value="27"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="mainform"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<IsVisibleTab Value="True"/>
|
||||||
|
<CursorPos X="50" Y="7"/>
|
||||||
|
<UsageCount Value="27"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
<LoadedDesigner Value="True"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="C:\laztrunk\lazarus\lcl\include\control.inc"/>
|
||||||
|
<EditorIndex Value="-1"/>
|
||||||
|
<TopLine Value="3760"/>
|
||||||
|
<CursorPos X="46" Y="3778"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="..\ulazautoupdate.pas"/>
|
||||||
|
<EditorIndex Value="3"/>
|
||||||
|
<TopLine Value="122"/>
|
||||||
|
<CursorPos X="26" Y="148"/>
|
||||||
|
<UsageCount Value="12"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit3>
|
||||||
|
<Unit4>
|
||||||
|
<Filename Value="..\ushortcut.pas"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
|
<CursorPos Y="6"/>
|
||||||
|
<UsageCount Value="12"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit4>
|
||||||
|
<Unit5>
|
||||||
|
<Filename Value="..\testapp\testapp.lpr"/>
|
||||||
|
<EditorIndex Value="-1"/>
|
||||||
|
<CursorPos Y="30"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit5>
|
||||||
|
<Unit6>
|
||||||
|
<Filename Value="..\aboutlazautoupdateunit.pas"/>
|
||||||
|
<EditorIndex Value="-1"/>
|
||||||
|
<TopLine Value="299"/>
|
||||||
|
<CursorPos X="68" Y="324"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit6>
|
||||||
|
</Units>
|
||||||
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
|
<Position1>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="59" TopLine="20"/>
|
||||||
|
</Position1>
|
||||||
|
<Position2>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="61" Column="18" TopLine="20"/>
|
||||||
|
</Position2>
|
||||||
|
<Position3>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="42" Column="8" TopLine="29"/>
|
||||||
|
</Position3>
|
||||||
|
<Position4>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="73" Column="58" TopLine="30"/>
|
||||||
|
</Position4>
|
||||||
|
<Position5>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="82" TopLine="30"/>
|
||||||
|
</Position5>
|
||||||
|
<Position6>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="54" Column="27" TopLine="13"/>
|
||||||
|
</Position6>
|
||||||
|
<Position7>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="62" Column="34" TopLine="53"/>
|
||||||
|
</Position7>
|
||||||
|
<Position8>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="89" Column="49" TopLine="65"/>
|
||||||
|
</Position8>
|
||||||
|
<Position9>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="36" TopLine="9"/>
|
||||||
|
</Position9>
|
||||||
|
<Position10>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="60" Column="32" TopLine="33"/>
|
||||||
|
</Position10>
|
||||||
|
<Position11>
|
||||||
|
<Filename Value="..\ulazautoupdate.pas"/>
|
||||||
|
<Caret Line="1836" Column="7" TopLine="1813"/>
|
||||||
|
</Position11>
|
||||||
|
<Position12>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="110" Column="7" TopLine="65"/>
|
||||||
|
</Position12>
|
||||||
|
<Position13>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="60" Column="34" TopLine="50"/>
|
||||||
|
</Position13>
|
||||||
|
<Position14>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="9" Column="51" TopLine="2"/>
|
||||||
|
</Position14>
|
||||||
|
<Position15>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="8" Column="35"/>
|
||||||
|
</Position15>
|
||||||
|
<Position16>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="108" Column="90" TopLine="65"/>
|
||||||
|
</Position16>
|
||||||
|
<Position17>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="8" Column="22"/>
|
||||||
|
</Position17>
|
||||||
|
<Position18>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="67" Column="69" TopLine="47"/>
|
||||||
|
</Position18>
|
||||||
|
<Position19>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="13" Column="32"/>
|
||||||
|
</Position19>
|
||||||
|
<Position20>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="78" Column="82" TopLine="52"/>
|
||||||
|
</Position20>
|
||||||
|
<Position21>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="83" Column="36" TopLine="58"/>
|
||||||
|
</Position21>
|
||||||
|
<Position22>
|
||||||
|
<Filename Value="..\ulazautoupdate.pas"/>
|
||||||
|
<Caret Line="1923" TopLine="1888"/>
|
||||||
|
</Position22>
|
||||||
|
<Position23>
|
||||||
|
<Filename Value="..\ulazautoupdate.pas"/>
|
||||||
|
<Caret Line="1933" Column="60" TopLine="1897"/>
|
||||||
|
</Position23>
|
||||||
|
<Position24>
|
||||||
|
<Filename Value="..\ulazautoupdate.pas"/>
|
||||||
|
<Caret Line="1938" Column="83" TopLine="1903"/>
|
||||||
|
</Position24>
|
||||||
|
<Position25>
|
||||||
|
<Filename Value="..\ulazautoupdate.pas"/>
|
||||||
|
<Caret Line="1934" Column="41" TopLine="1902"/>
|
||||||
|
</Position25>
|
||||||
|
<Position26>
|
||||||
|
<Filename Value="..\ulazautoupdate.pas"/>
|
||||||
|
<Caret Line="881" Column="38" TopLine="871"/>
|
||||||
|
</Position26>
|
||||||
|
<Position27>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="177" Column="46" TopLine="148"/>
|
||||||
|
</Position27>
|
||||||
|
<Position28>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="117" Column="3" TopLine="115"/>
|
||||||
|
</Position28>
|
||||||
|
<Position29>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="128" Column="38" TopLine="124"/>
|
||||||
|
</Position29>
|
||||||
|
<Position30>
|
||||||
|
<Filename Value="umainform.pas"/>
|
||||||
|
<Caret Line="166" Column="7" TopLine="139"/>
|
||||||
|
</Position30>
|
||||||
|
</JumpHistory>
|
||||||
|
</ProjectSession>
|
||||||
|
</CONFIG>
|
Binary file not shown.
@ -0,0 +1,31 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||||
|
|
||||||
|
#: tmainform.caption
|
||||||
|
msgid "mainform"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tmainform.cmd_install.caption
|
||||||
|
msgid "Install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tmainform.cmd_run.caption
|
||||||
|
msgid "Run"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tmainform.grp_action.caption
|
||||||
|
msgid "Action"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tmainform.grp_application.caption
|
||||||
|
msgid "Application"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tmainform.mnu_file.caption
|
||||||
|
msgid "&File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tmainform.mnu_fileexit.caption
|
||||||
|
msgid "E&xit"
|
||||||
|
msgstr ""
|
||||||
|
|
@ -0,0 +1,131 @@
|
|||||||
|
object mainform: Tmainform
|
||||||
|
Left = 737
|
||||||
|
Height = 241
|
||||||
|
Top = 222
|
||||||
|
Width = 320
|
||||||
|
BorderIcons = [biSystemMenu, biMinimize]
|
||||||
|
BorderStyle = bsSingle
|
||||||
|
Caption = 'mainform'
|
||||||
|
ClientHeight = 221
|
||||||
|
ClientWidth = 320
|
||||||
|
Menu = MainMenu1
|
||||||
|
OnClose = FormClose
|
||||||
|
OnCloseQuery = FormCloseQuery
|
||||||
|
OnCreate = FormCreate
|
||||||
|
Position = poWorkAreaCenter
|
||||||
|
LCLVersion = '1.7'
|
||||||
|
Scaled = True
|
||||||
|
object cmd_close: TBitBtn
|
||||||
|
Left = 125
|
||||||
|
Height = 30
|
||||||
|
Top = 179
|
||||||
|
Width = 75
|
||||||
|
Anchors = [akRight, akBottom]
|
||||||
|
DefaultCaption = True
|
||||||
|
Kind = bkClose
|
||||||
|
ModalResult = 11
|
||||||
|
OnClick = mnu_fileExitClick
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object grp_Application: TRadioGroup
|
||||||
|
Left = 0
|
||||||
|
Height = 113
|
||||||
|
Top = 0
|
||||||
|
Width = 320
|
||||||
|
Align = alTop
|
||||||
|
AutoFill = True
|
||||||
|
Caption = 'Application'
|
||||||
|
ChildSizing.LeftRightSpacing = 6
|
||||||
|
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
|
||||||
|
ChildSizing.EnlargeVertical = crsHomogenousChildResize
|
||||||
|
ChildSizing.ShrinkHorizontal = crsScaleChilds
|
||||||
|
ChildSizing.ShrinkVertical = crsScaleChilds
|
||||||
|
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||||
|
ChildSizing.ControlsPerLine = 1
|
||||||
|
ClientHeight = 93
|
||||||
|
ClientWidth = 316
|
||||||
|
ItemIndex = 2
|
||||||
|
Items.Strings = (
|
||||||
|
'LazAutoUpdate Update Pack'
|
||||||
|
'LazAutoUpdate Tray Updater'
|
||||||
|
'LazAutoUpdate Test Application'
|
||||||
|
'Retro Ski Run'
|
||||||
|
)
|
||||||
|
OnSelectionChanged = grp_ApplicationSelectionChanged
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object grp_Action: TGroupBox
|
||||||
|
Left = 0
|
||||||
|
Height = 57
|
||||||
|
Top = 113
|
||||||
|
Width = 320
|
||||||
|
Align = alTop
|
||||||
|
Caption = 'Action'
|
||||||
|
ClientHeight = 37
|
||||||
|
ClientWidth = 316
|
||||||
|
TabOrder = 2
|
||||||
|
object cmd_Install: TButton
|
||||||
|
Left = 8
|
||||||
|
Height = 25
|
||||||
|
Top = 0
|
||||||
|
Width = 75
|
||||||
|
Caption = 'Install'
|
||||||
|
OnClick = cmd_InstallClick
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object cmd_Run: TButton
|
||||||
|
Left = 88
|
||||||
|
Height = 25
|
||||||
|
Top = 0
|
||||||
|
Width = 75
|
||||||
|
Caption = 'Run'
|
||||||
|
OnClick = cmd_RunClick
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object LazAutoUpdate1: TLazAutoUpdate
|
||||||
|
About.Description.Strings = (
|
||||||
|
'A component for updating your application'#13#10'Designed for projects hosted by SourceForge'#13#10#13#10'Main methods:'#13#10'Procedure AutoUpdate'#13#10'Function NewVersionAvailable: Boolean'#13#10'Function DownloadNewVersion: Boolean'#13#10'Function UpdateToNewVersion: Boolean'#13#10'Procedure ShowWhatsNewIfAvailable'#13#10'For troubleshooting, set DebugMode=TRUE'
|
||||||
|
)
|
||||||
|
About.Title = 'About LazAutoUpdate'
|
||||||
|
About.Height = 450
|
||||||
|
About.Width = 400
|
||||||
|
About.Font.Color = clNavy
|
||||||
|
About.Font.Height = -13
|
||||||
|
About.BackGroundColor = clWindow
|
||||||
|
About.Version = '0.3.4.0'
|
||||||
|
About.Authorname = 'Gordon Bamber'
|
||||||
|
About.Organisation = 'Public Domain'
|
||||||
|
About.AuthorEmail = 'minesadorada@charcodelvalle.com'
|
||||||
|
About.ComponentName = 'Laz Auto-update v0.3.4.0'
|
||||||
|
About.LicenseType = abModifiedGPL
|
||||||
|
OnDebugEvent = LazAutoUpdate1DebugEvent
|
||||||
|
auOtherSourceURL = '<not applicable>'
|
||||||
|
auOtherSourceFilename = '<not applicable>'
|
||||||
|
UpdatesFolder = 'updates'
|
||||||
|
VersionsININame = 'versions.ini'
|
||||||
|
ShowUpdateInCaption = True
|
||||||
|
VersionCountLimit = 1000000
|
||||||
|
DownloadCountLimit = 10000000
|
||||||
|
ZipfileName = 'versions.zip'
|
||||||
|
GitHubProjectname = '<not applicable>'
|
||||||
|
GitHubRepositoryName = '<not applicable>'
|
||||||
|
GitHubBranchOrTag = '<not applicable>'
|
||||||
|
WorkingMode = lauUpdate
|
||||||
|
ShortCut.ShortcutName = 'MyShortcutName'
|
||||||
|
ShortCut.Category = scAudioVideo
|
||||||
|
Left = 80
|
||||||
|
Top = 16
|
||||||
|
end
|
||||||
|
object MainMenu1: TMainMenu
|
||||||
|
Left = 104
|
||||||
|
Top = 16
|
||||||
|
object mnu_file: TMenuItem
|
||||||
|
Caption = '&File'
|
||||||
|
object mnu_fileExit: TMenuItem
|
||||||
|
Caption = 'E&xit'
|
||||||
|
OnClick = mnu_fileExitClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,9 @@
|
|||||||
|
{"version":1,"strings":[
|
||||||
|
{"hash":134533565,"name":"tmainform.caption","sourcebytes":[109,97,105,110,102,111,114,109],"value":"mainform"},
|
||||||
|
{"hash":265345406,"name":"tmainform.grp_application.caption","sourcebytes":[65,112,112,108,105,99,97,116,105,111,110],"value":"Application"},
|
||||||
|
{"hash":75149406,"name":"tmainform.grp_action.caption","sourcebytes":[65,99,116,105,111,110],"value":"Action"},
|
||||||
|
{"hash":5941372,"name":"tmainform.cmd_install.caption","sourcebytes":[73,110,115,116,97,108,108],"value":"Install"},
|
||||||
|
{"hash":22974,"name":"tmainform.cmd_run.caption","sourcebytes":[82,117,110],"value":"Run"},
|
||||||
|
{"hash":2805797,"name":"tmainform.mnu_file.caption","sourcebytes":[38,70,105,108,101],"value":"&File"},
|
||||||
|
{"hash":4710148,"name":"tmainform.mnu_fileexit.caption","sourcebytes":[69,38,120,105,116],"value":"E&xit"}
|
||||||
|
]}
|
@ -0,0 +1,238 @@
|
|||||||
|
unit umainform;
|
||||||
|
{
|
||||||
|
License (MIT)
|
||||||
|
=============
|
||||||
|
LazAutoUpdate Universal Installer (c)2017 Gordon Bamber (minesadorada@charcodelvalle.com)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to
|
||||||
|
deal in the Software without restriction, including without limitation the
|
||||||
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
IN THE SOFTWARE.
|
||||||
|
}
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, LazUTF8, FileUtil, LazFileUtils, Forms, Controls,
|
||||||
|
Graphics, Dialogs, Buttons,
|
||||||
|
Menus, StdCtrls, ExtCtrls, asyncprocess,
|
||||||
|
ulazautoupdate, eventlog;
|
||||||
|
|
||||||
|
// resourcestring
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ Tmainform }
|
||||||
|
|
||||||
|
Tmainform = class(TForm)
|
||||||
|
cmd_Run: TButton;
|
||||||
|
cmd_Install: TButton;
|
||||||
|
cmd_close: TBitBtn;
|
||||||
|
grp_Action: TGroupBox;
|
||||||
|
LazAutoUpdate1: TLazAutoUpdate;
|
||||||
|
MainMenu1: TMainMenu;
|
||||||
|
mnu_fileExit: TMenuItem;
|
||||||
|
mnu_file: TMenuItem;
|
||||||
|
grp_Application: TRadioGroup;
|
||||||
|
procedure cmd_InstallClick(Sender: TObject);
|
||||||
|
procedure cmd_RunClick(Sender: TObject);
|
||||||
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure grp_ApplicationSelectionChanged(Sender: TObject);
|
||||||
|
procedure LazAutoUpdate1DebugEvent(Sender: TObject;
|
||||||
|
lauMethodName, lauMessage: string);
|
||||||
|
procedure mnu_fileExitClick(Sender: TObject);
|
||||||
|
private
|
||||||
|
Logger: TEventLog;
|
||||||
|
procedure ConfigureLazAutoUpdate(const AItemIndex: integer);
|
||||||
|
procedure RunInstalledApp;
|
||||||
|
public
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
mainform: Tmainform;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
Var
|
||||||
|
sDirectoryToInstallTo:String;
|
||||||
|
|
||||||
|
{ Tmainform }
|
||||||
|
|
||||||
|
procedure Tmainform.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Caption := Application.Title;
|
||||||
|
Icon := Application.Icon;
|
||||||
|
sDirectoryToInstallTo:=ProgramDirectory + 'installed';
|
||||||
|
LazAutoUpdate1.DebugMode:=TRUE;
|
||||||
|
LazAutoUpdate1.ShowUpdateInCaption:=True;
|
||||||
|
ConfigureLazAutoUpdate(2); // Default is TestApp
|
||||||
|
Logger := TEventLog.Create(nil);
|
||||||
|
Logger.LogType := ltFile;
|
||||||
|
Logger.FileName := Application.Title + '.log';
|
||||||
|
Logger.Active := True; // Logging uses OnDebugEvent of LazAutoUpdate
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.cmd_InstallClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
LazAutoUpdate1.WorkingMode := lauInstall;
|
||||||
|
// Uses SilentUpdate method to install the app if it isn't running
|
||||||
|
// Else uses UpdateToNewVersion to close/update it
|
||||||
|
|
||||||
|
// Let the component do the work!
|
||||||
|
if LazAutoUpdate1.DownloadNewVersion then
|
||||||
|
if LazAutoUpdate1.UpdateToNewVersion then
|
||||||
|
begin
|
||||||
|
ShowMessageFmt('Success. %s installed.', [LazAutoUpdate1.AppFileWithPath]);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
ShowMessageFmt('Failure. See logfile %s', [Logger.FileName]);
|
||||||
|
end;
|
||||||
|
// Restore standard mode
|
||||||
|
LazAutoUpdate1.WorkingMode := lauUpdate;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.cmd_RunClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
RunInstalledApp;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.RunInstalledApp;
|
||||||
|
var
|
||||||
|
AProcess: TAsyncProcess;
|
||||||
|
begin
|
||||||
|
if not FileExistsUTF8(LazAutoUpdate1.AppFileWithPath) then
|
||||||
|
begin
|
||||||
|
ShowMessageFmt('%s does not exist! Install it first.',
|
||||||
|
[LazAutoUpdate1.AppFileWithPath]);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
AProcess := TAsyncProcess.Create(nil);
|
||||||
|
try
|
||||||
|
AProcess.Executable := LazAutoUpdate1.AppFileWithPath;
|
||||||
|
AProcess.Execute;
|
||||||
|
finally
|
||||||
|
Aprocess.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
if Assigned(Logger) then
|
||||||
|
begin
|
||||||
|
Logger.Active := False;
|
||||||
|
FreeAndNil(Logger);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||||
|
begin
|
||||||
|
If LazAutoUpdate1.DownloadInProgress Then
|
||||||
|
Begin
|
||||||
|
CanClose := False;
|
||||||
|
ShowMessage('Please wait. Download is still in progress.');
|
||||||
|
End;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.grp_ApplicationSelectionChanged(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ConfigureLazAutoUpdate(grp_Application.ItemIndex);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.LazAutoUpdate1DebugEvent(Sender: TObject;
|
||||||
|
lauMethodName, lauMessage: string);
|
||||||
|
begin
|
||||||
|
Logger.Log(lauMethodName + ' - ' + lauMessage);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.mnu_fileExitClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Close;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Tmainform.ConfigureLazAutoUpdate(const AItemIndex: integer);
|
||||||
|
begin
|
||||||
|
// Note: This routine relies on a consistent naming convention for your
|
||||||
|
// executables in Windows 32/64-bit and Linux 32/64-bit (see Const C_PFX declaration)
|
||||||
|
case AItemIndex of
|
||||||
|
0: //Update Pack
|
||||||
|
begin
|
||||||
|
LazAutoUpdate1.ProjectType := auSourceForge; // can be auGitHubReleaseZip or auOther
|
||||||
|
LazAutoUpdate1.SFProjectname := 'lazautoupdate'; // Or GitHub properties
|
||||||
|
LazAutoUpdate1.UpdatesFolder := 'updates'; // Subfolder in repository
|
||||||
|
LazAutoUpdate1.VersionsININame := 'updatepack' + C_PFX + '.ini'; // as specified
|
||||||
|
LazAutoUpdate1.ZipfileName := 'updatepack' + C_PFX + '.zip'; // as specified
|
||||||
|
// Note: sDirectoryToInstallTo does not end in a DirectorySeparator
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo +
|
||||||
|
DirectorySeparator + 'updatepack.exe';
|
||||||
|
{$ELSE}
|
||||||
|
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo +
|
||||||
|
DirectorySeparator + 'updatepack';
|
||||||
|
{$ENDIF}
|
||||||
|
// Our responsibility to make the folder
|
||||||
|
if not DirectoryExistsUTF8(sDirectoryToInstallTo) then
|
||||||
|
ForceDirectoriesUTF8(sDirectoryToInstallTo);
|
||||||
|
LazAutoUpdate1.Appversion := '0.0.0.0';
|
||||||
|
end;
|
||||||
|
1: // Tray Updater
|
||||||
|
;
|
||||||
|
2: // Test Application
|
||||||
|
begin
|
||||||
|
LazAutoUpdate1.ProjectType := auSourceForge;
|
||||||
|
LazAutoUpdate1.SFProjectname := 'lazautoupdate';
|
||||||
|
LazAutoUpdate1.UpdatesFolder := 'updates';
|
||||||
|
LazAutoUpdate1.VersionsININame := 'testapp' + C_PFX + '.ini';
|
||||||
|
LazAutoUpdate1.ZipfileName := 'testapp' + C_PFX + '.zip';
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo +
|
||||||
|
DirectorySeparator + 'testapp' + C_PFX + '.exe';
|
||||||
|
{$ELSE}
|
||||||
|
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo +
|
||||||
|
DirectorySeparator + 'testapp' + C_PFX;
|
||||||
|
{$ENDIF}
|
||||||
|
if not DirectoryExistsUTF8(sDirectoryToInstallTo) then
|
||||||
|
ForceDirectoriesUTF8(sDirectoryToInstallTo);
|
||||||
|
LazAutoUpdate1.Appversion := '0.0.0.0';
|
||||||
|
end;
|
||||||
|
3: // Retro Ski Run
|
||||||
|
begin
|
||||||
|
LazAutoUpdate1.ProjectType := auSourceForge;
|
||||||
|
LazAutoUpdate1.SFProjectname := 'lazautoupdate';
|
||||||
|
LazAutoUpdate1.UpdatesFolder := 'updates';
|
||||||
|
LazAutoUpdate1.VersionsININame := 'ski' + C_PFX + '.ini';
|
||||||
|
LazAutoUpdate1.ZipfileName := 'ski' + C_PFX + '.zip';
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo +
|
||||||
|
DirectorySeparator + 'ski' + C_PFX + '.exe';
|
||||||
|
{$ELSE}
|
||||||
|
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo +
|
||||||
|
DirectorySeparator + 'ski' + C_PFX;
|
||||||
|
{$ENDIF}
|
||||||
|
if not DirectoryExistsUTF8(sDirectoryToInstallTo) then
|
||||||
|
ForceDirectoriesUTF8(sDirectoryToInstallTo);
|
||||||
|
LazAutoUpdate1.Appversion := '0.0.0.0';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
@ -142,8 +142,11 @@ const
|
|||||||
V0.3.4: Added unit ushortcut (CreateDesktopShortCut) for installers
|
V0.3.4: Added unit ushortcut (CreateDesktopShortCut) for installers
|
||||||
V0.3.5: Rule #3:There is to be NO v0.3.5.0
|
V0.3.5: Rule #3:There is to be NO v0.3.5.0
|
||||||
V0.3.6: Bugfixed CreateShortCut code
|
V0.3.6: Bugfixed CreateShortCut code
|
||||||
|
V0.3.7: Added public property Mode=(lauUpdate|lauInstall)
|
||||||
|
V0.3.7.1: Added (DoSilentUpdate) copy C_UPDATEHMNAME to installed folder
|
||||||
|
V0.3.8: ??
|
||||||
}
|
}
|
||||||
C_TLazAutoUpdateComponentVersion = '0.3.6.0';
|
C_TLazAutoUpdateComponentVersion = '0.3.7.1';
|
||||||
C_TThreadedDownloadComponentVersion = '0.0.3.0';
|
C_TThreadedDownloadComponentVersion = '0.0.3.0';
|
||||||
{
|
{
|
||||||
V0.0.1: Initial alpha
|
V0.0.1: Initial alpha
|
||||||
@ -242,8 +245,6 @@ type
|
|||||||
procedure Execute; override;
|
procedure Execute; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
type
|
|
||||||
// This type is currently unused
|
// This type is currently unused
|
||||||
TProjectType = (auSourceForge, auGitHubReleaseZip, auOther);
|
TProjectType = (auSourceForge, auGitHubReleaseZip, auOther);
|
||||||
// Array of these records used for multiple updates
|
// Array of these records used for multiple updates
|
||||||
@ -254,6 +255,8 @@ type
|
|||||||
VersionNumber: cardinal;
|
VersionNumber: cardinal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TWorkingMode = (lauUpdate,lauInstall);
|
||||||
|
|
||||||
TThreadedDownload = class; // Forward declaration
|
TThreadedDownload = class; // Forward declaration
|
||||||
TShortCutClass = class; // Forward declaration
|
TShortCutClass = class; // Forward declaration
|
||||||
{TLAZAUTOUPDATE}
|
{TLAZAUTOUPDATE}
|
||||||
@ -292,6 +295,7 @@ type
|
|||||||
fDownloadInprogress: boolean;
|
fDownloadInprogress: boolean;
|
||||||
fWindowsAdminCheck: boolean;
|
fWindowsAdminCheck: boolean;
|
||||||
fShortCutClass: TShortCutClass;
|
fShortCutClass: TShortCutClass;
|
||||||
|
fWorkingMode:TWorkingMode;
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
FUpdateHMProcess: TAsyncProcess;
|
FUpdateHMProcess: TAsyncProcess;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -460,17 +464,17 @@ type
|
|||||||
write fGitHubRepositoryName;
|
write fGitHubRepositoryName;
|
||||||
// Default=master but any branchname or tagname is OK
|
// Default=master but any branchname or tagname is OK
|
||||||
property GitHubBranchOrTag: string read fGitHubBranchOrTag write fGitHubBranchOrTag;
|
property GitHubBranchOrTag: string read fGitHubBranchOrTag write fGitHubBranchOrTag;
|
||||||
|
// Install or Update (default=Update)
|
||||||
|
property WorkingMode:TworkingMode read fWorkingMode write fWorkingMode;
|
||||||
|
// Subproperties available
|
||||||
property ShortCut: TShortCutClass read fShortCutClass write fShortCutClass;
|
property ShortCut: TShortCutClass read fShortCutClass write fShortCutClass;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
type
|
|
||||||
TShortCutCategory = (scAudioVideo, scAudio, scDevelopment,
|
TShortCutCategory = (scAudioVideo, scAudio, scDevelopment,
|
||||||
scEducation, scGame, scGraphics, scNetwork, scOffice, scScience, scSettings,
|
scEducation, scGame, scGraphics, scNetwork, scOffice, scScience, scSettings,
|
||||||
scSystem, scUtility);
|
scSystem, scUtility);
|
||||||
// TShortCutCategoryFlags = Set of TShortCutCategory;
|
// TShortCutCategoryFlags = Set of TShortCutCategory;
|
||||||
|
|
||||||
type
|
|
||||||
TShortCutClass = class(TPersistent)
|
TShortCutClass = class(TPersistent)
|
||||||
private
|
private
|
||||||
// ShortCut stuff for CreateDesktopShortCut in ushortcut.pas
|
// ShortCut stuff for CreateDesktopShortCut in ushortcut.pas
|
||||||
@ -559,7 +563,6 @@ type
|
|||||||
}
|
}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
type
|
|
||||||
// For the TShortCutClass filename properties (needs propedits unit)
|
// For the TShortCutClass filename properties (needs propedits unit)
|
||||||
TMyFileNamePropertyEditor = class(TFileNamePropertyEditor)
|
TMyFileNamePropertyEditor = class(TFileNamePropertyEditor)
|
||||||
public
|
public
|
||||||
@ -833,7 +836,7 @@ begin
|
|||||||
fCopyTree := True; // User can change
|
fCopyTree := True; // User can change
|
||||||
// UpdateList: Redundant?
|
// UpdateList: Redundant?
|
||||||
AddToUpdateList('', LazUTF8.ParamStrUTF8(0), GetFileVersion, 0);
|
AddToUpdateList('', LazUTF8.ParamStrUTF8(0), GetFileVersion, 0);
|
||||||
|
fWorkingMode:=lauUpdate; // Default
|
||||||
fProjectType := auSourceForge; // User can change
|
fProjectType := auSourceForge; // User can change
|
||||||
fUpdatesFolder := C_UpdatesFolder; // User can change
|
fUpdatesFolder := C_UpdatesFolder; // User can change
|
||||||
fVersionsININame := C_OnlineVersionsININame; // User can change
|
fVersionsININame := C_OnlineVersionsININame; // User can change
|
||||||
@ -876,11 +879,11 @@ begin
|
|||||||
// AboutBox properties
|
// AboutBox properties
|
||||||
AboutBoxComponentName := Format('Laz Auto-update v%s',
|
AboutBoxComponentName := Format('Laz Auto-update v%s',
|
||||||
[C_TLazAutoUpdateComponentVersion]);
|
[C_TLazAutoUpdateComponentVersion]);
|
||||||
;
|
AboutBoxVersion := C_TLazAutoUpdateComponentVersion;
|
||||||
AboutBoxWidth := 400;
|
AboutBoxWidth := 400;
|
||||||
AboutBoxHeight := 450;
|
AboutBoxHeight := 450;
|
||||||
sz := 'A component for updating your application' + LineEnding;
|
sz := 'A component for updating your application' + LineEnding;
|
||||||
sz += 'Designed for projects hosted by SourceForge' + LineEnding + LineEnding;
|
sz += 'Designed for projects hosted by SourceForge and GitHub' + LineEnding + LineEnding;
|
||||||
sz += 'Main methods:' + LineEnding;
|
sz += 'Main methods:' + LineEnding;
|
||||||
sz += 'Procedure AutoUpdate' + LineEnding;
|
sz += 'Procedure AutoUpdate' + LineEnding;
|
||||||
sz += 'Function NewVersionAvailable: Boolean' + LineEnding;
|
sz += 'Function NewVersionAvailable: Boolean' + LineEnding;
|
||||||
@ -893,7 +896,6 @@ begin
|
|||||||
// AboutBoxBackgroundColor:=clWindow;
|
// AboutBoxBackgroundColor:=clWindow;
|
||||||
//AboutBoxFontName (string)
|
//AboutBoxFontName (string)
|
||||||
//AboutBoxFontSize (integer)
|
//AboutBoxFontSize (integer)
|
||||||
AboutBoxVersion := C_TLazAutoUpdateComponentVersion;
|
|
||||||
AboutBoxAuthorname := 'Gordon Bamber';
|
AboutBoxAuthorname := 'Gordon Bamber';
|
||||||
//AboutBoxOrganisation (string)
|
//AboutBoxOrganisation (string)
|
||||||
AboutBoxAuthorEmail := 'minesadorada@charcodelvalle.com';
|
AboutBoxAuthorEmail := 'minesadorada@charcodelvalle.com';
|
||||||
@ -1822,6 +1824,7 @@ var
|
|||||||
SectionStringList: TStrings;
|
SectionStringList: TStrings;
|
||||||
szTempUpdatesFolder: string;
|
szTempUpdatesFolder: string;
|
||||||
begin
|
begin
|
||||||
|
// fWorkingMode=lauInstall or lauUpdate
|
||||||
Result := False;
|
Result := False;
|
||||||
// read the VMT once
|
// read the VMT once
|
||||||
if Assigned(fOndebugEvent) then
|
if Assigned(fOndebugEvent) then
|
||||||
@ -1829,15 +1832,23 @@ begin
|
|||||||
if fFireDebugEvent then
|
if fFireDebugEvent then
|
||||||
fOndebugEvent(Self, 'DoSilentUpdate', 'Starting DoSilentUpdate');
|
fOndebugEvent(Self, 'DoSilentUpdate', 'Starting DoSilentUpdate');
|
||||||
|
|
||||||
|
if fFireDebugEvent then
|
||||||
|
If fWorkingMode=lauUpdate then
|
||||||
|
fOndebugEvent(Self, 'DoSilentUpdate','Update mode')
|
||||||
|
else
|
||||||
|
fOndebugEvent(Self, 'DoSilentUpdate','Install mode');
|
||||||
|
|
||||||
if not FileExistsUTF8(fAppFilename) then
|
If fWorkingMode=lauUpdate then
|
||||||
begin
|
begin
|
||||||
if fFireDebugEvent then
|
if not FileExistsUTF8(fAppFilename) then
|
||||||
fOndebugEvent(Self, 'DoSilentUpdate',
|
begin
|
||||||
Format('AppFilename %s is missing. Exiting routine', [fAppFilename]));
|
if fFireDebugEvent then
|
||||||
Exit;
|
fOndebugEvent(Self, 'DoSilentUpdate',
|
||||||
|
Format('AppFilename %s is missing. Exiting routine', [fAppFilename]));
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// uses fUpdatesFolder
|
// uses fUpdatesFolder
|
||||||
szTempUpdatesFolder := AppendPathDelim(ExtractFilePath(fAppFilename) + fUpdatesFolder);
|
szTempUpdatesFolder := AppendPathDelim(ExtractFilePath(fAppFilename) + fUpdatesFolder);
|
||||||
|
|
||||||
@ -1908,6 +1919,25 @@ begin
|
|||||||
[szTempUpdatesFolder + 'whatsnew.txt', szAppFolder + 'whatsnew.txt']));
|
[szTempUpdatesFolder + 'whatsnew.txt', szAppFolder + 'whatsnew.txt']));
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
If (fWorkingMode=lauInstall) then
|
||||||
|
If FileExistsUTF8(C_UPDATEHMNAME) then
|
||||||
|
begin
|
||||||
|
If FileUtil.CopyFile(C_UPDATEHMNAME,szAppFolder + C_UPDATEHMNAME) then
|
||||||
|
if fFireDebugEvent then
|
||||||
|
fOndebugEvent(Self, 'DoSilentUpdate',
|
||||||
|
Format('Sucessfully copied %s to %s',
|
||||||
|
[C_UPDATEHMNAME, szAppFolder]))
|
||||||
|
else
|
||||||
|
if fFireDebugEvent then
|
||||||
|
fOndebugEvent(Self, 'DoSilentUpdate',
|
||||||
|
Format('Unabled to copy %s to %s',
|
||||||
|
[C_UPDATEHMNAME, szAppFolder]));
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if fFireDebugEvent then
|
||||||
|
fOndebugEvent(Self, 'DoSilentUpdate','Unable to locate ' + C_UPDATEHMNAME);
|
||||||
|
|
||||||
// Deal with C_LAUTRayINI
|
// Deal with C_LAUTRayINI
|
||||||
// Copied to the global application data folder
|
// Copied to the global application data folder
|
||||||
// Add entry 'Location'
|
// Add entry 'Location'
|
||||||
@ -1929,6 +1959,7 @@ begin
|
|||||||
if fFireDebugEvent then
|
if fFireDebugEvent then
|
||||||
fOndebugEvent(Self, 'DoSilentUpdate',
|
fOndebugEvent(Self, 'DoSilentUpdate',
|
||||||
Format('App data directory changed to %s', [szLAUTrayAppPath]));
|
Format('App data directory changed to %s', [szLAUTrayAppPath]));
|
||||||
|
|
||||||
// Now AppDataDirectory/updatehm(+C_PFX)/
|
// Now AppDataDirectory/updatehm(+C_PFX)/
|
||||||
try
|
try
|
||||||
if ForceDirectory(szLAUTrayAppPath) then
|
if ForceDirectory(szLAUTrayAppPath) then
|
||||||
@ -2023,6 +2054,7 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
// fWorkingMode=lauInstall or lauUpdate
|
||||||
szAppDir := AppendPathDelim(ExtractFilePath(fAppFilename));
|
szAppDir := AppendPathDelim(ExtractFilePath(fAppFilename));
|
||||||
|
|
||||||
// read the VMT once
|
// read the VMT once
|
||||||
|
Binary file not shown.
@ -9,7 +9,7 @@
|
|||||||
"ForceNotify" : false,
|
"ForceNotify" : false,
|
||||||
"InternalVersion" : 1,
|
"InternalVersion" : 1,
|
||||||
"Name" : "lazupdate.lpk",
|
"Name" : "lazupdate.lpk",
|
||||||
"Version" : "0.3.6.0"
|
"Version" : "0.3.7.1"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user