Subversion Repositories checksum-tools

Rev

Rev 22 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9 daniel-mar 1
; ViaThinkSoft Checksum Tools Setup Script for InnoSetup
2
; by Daniel Marschall, ViaThinkSoft
3
 
4
[Setup]
5
AppName=ViaThinkSoft Checksum Tools
17 daniel-mar 6
AppVerName=ViaThinkSoft Checksum Tools 1.1
7
AppVersion=1.1
22 daniel-mar 8
AppCopyright=© Copyright 2017 - 2024 ViaThinkSoft
9 daniel-mar 9
AppPublisher=ViaThinkSoft
23 daniel-mar 10
AppPublisherURL=https://www.viathinksoft.com/
11
AppSupportURL=https://www.daniel-marschall.de/
12
AppUpdatesURL=https://www.viathinksoft.com/
22 daniel-mar 13
DefaultDirName={autopf}\ViaThinkSoft Checksum Tools
9 daniel-mar 14
DefaultGroupName=Checksum Tools
15
VersionInfoCompany=ViaThinkSoft
22 daniel-mar 16
VersionInfoCopyright=© Copyright 2017 - 2024 ViaThinkSoft
9 daniel-mar 17
VersionInfoDescription=Checksum Tools Setup
17 daniel-mar 18
VersionInfoTextVersion=1.1.0.0
19
VersionInfoVersion=1.1
9 daniel-mar 20
ChangesAssociations=yes
22 daniel-mar 21
OutputDir=.
9 daniel-mar 22
OutputBaseFilename=ChecksumTools
23
LicenseFile=..\LICENSE
19 daniel-mar 24
; Configure Sign Tool in InnoSetup at "Tools => Configure Sign Tools" (adjust the path to your SVN repository location)
25
; Name    = sign_single   
26
; Command = "C:\SVN\...\sign_single.bat" $f
27
SignTool=sign_single
28
SignedUninstaller=yes
9 daniel-mar 29
 
30
[CustomMessages]
31
Assoc=File associations:
32
 
33
[Languages]
34
;Name: de; MessagesFile: "compiler:Languages\German.isl"
35
 
36
[LangOptions]
37
LanguageName=English
38
LanguageID=$0409
39
 
40
[Components]
41
Name: "dirchecker";  Description: "Recursive directory checker";  Types: full compact custom
42
Name: "editor"; Description: "Checksum file editor"; Types: full
43
 
44
[Tasks]
45
Name: fileassocSFV;  Description: "{cm:AssocFileExtension,'SFV Checksum File','.sfv'}"; GroupDescription: "{cm:Assoc}"; Components: editor
46
Name: fileassocMD5;  Description: "{cm:AssocFileExtension,'MD5 Checksum File','.md5'}"; GroupDescription: "{cm:Assoc}"; Components: editor
47
 
48
[Files]
19 daniel-mar 49
Source: "MD5DirCheck.exe";        DestDir: "{app}"; Flags: ignoreversion signonce; Components: dirchecker
50
Source: "SFVCorrect.exe";         DestDir: "{app}"; Flags: ignoreversion signonce; Components: editor
9 daniel-mar 51
Source: "ChecksumFileIcon.ico";   DestDir: "{app}"; Flags: ignoreversion; Components: editor
52
 
53
[Dirs]
54
 
55
[Icons]
56
Name: "{group}\Recursive directory checker";  Filename: "{app}\MD5DirCheck.exe";  Components: dirchecker
57
Name: "{group}\Checksum file editor"; Filename: "{app}\SFVCorrect.exe"; Components: editor
58
 
59
[Run]
60
Filename: "{app}\MD5DirCheck.exe";  Description: "Run recursive directory checker";  Flags: nowait postinstall skipifsilent; Components: dirchecker
61
Filename: "{app}\SFVCorrect.exe"; Description: "Run checksum file editor"; Flags: nowait postinstall skipifsilent unchecked; Components: editor
62
 
63
[Registry]
64
Root: HKCR; Subkey: ".sfv";                                       ValueName: ""; ValueType: string; ValueData: "VtsChecksumSFV";                   Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocSFV
65
Root: HKCR; Subkey: ".sfv\ShellNew";                              ValueName: "ItemName"; ValueType: string; ValueData: "SFV checksum file";                                    Components: editor;  Tasks: fileassocSFV
66
Root: HKCR; Subkey: ".sfv\ShellNew";                              ValueName: "NullFile"; ValueType: string; ValueData: "";                                                     Components: editor;  Tasks: fileassocSFV
67
Root: HKCR; Subkey: "VtsChecksumSFV";                             ValueName: ""; ValueType: string; ValueData: "SFV checksum File";                Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocSFV
68
Root: HKCR; Subkey: "VtsChecksumSFV\DefaultIcon";                 ValueName: ""; ValueType: string; ValueData: "{app}\ChecksumFileIcon.ico";                                   Components: editor;  Tasks: fileassocSFV
69
Root: HKCR; Subkey: "VtsChecksumSFV\shell\open\command";          ValueName: ""; ValueType: string; ValueData: """{app}\SFVCorrect.exe"" ""%1""";                              Components: editor;  Tasks: fileassocSFV
70
 
71
Root: HKCR; Subkey: ".md5";                                       ValueName: ""; ValueType: string; ValueData: "VtsChecksumMD5";                   Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocMD5
72
Root: HKCR; Subkey: ".md5\ShellNew";                              ValueName: "ItemName"; ValueType: string; ValueData: "MD5 checksum file";                                    Components: editor;  Tasks: fileassocMD5
73
Root: HKCR; Subkey: ".md5\ShellNew";                              ValueName: "NullFile"; ValueType: string; ValueData: "";                                                     Components: editor;  Tasks: fileassocMD5
74
Root: HKCR; Subkey: "VtsChecksumMD5";                             ValueName: ""; ValueType: string; ValueData: "MD5 checksum File";                Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocMD5
75
Root: HKCR; Subkey: "VtsChecksumMD5\DefaultIcon";                 ValueName: ""; ValueType: string; ValueData: "{app}\ChecksumFileIcon.ico";                                   Components: editor;  Tasks: fileassocMD5
76
Root: HKCR; Subkey: "VtsChecksumMD5\shell\open\command";          ValueName: ""; ValueType: string; ValueData: """{app}\SFVCorrect.exe"" ""%1""";                              Components: editor;  Tasks: fileassocMD5
77
 
78
 
79
[Code]
80
function InitializeSetup(): Boolean;
81
begin
82
  if CheckForMutexes('VtsChecksumToolsSetup')=false then
83
  begin
84
    Createmutex('VtsChecksumToolsSetup');
85
    Result := true;
86
  end
87
  else
88
  begin
89
    Result := False;
90
  end;
91
end;
92
function IsAnyComponentSelected: Boolean;
93
var
94
  I: Integer;
95
begin
96
  // Source: https://stackoverflow.com/questions/20691583/innosetup-if-no-components-are-selected-go-back-to-components-page
97
  Result := False;
98
  for I := 0 to WizardForm.ComponentsList.Items.Count - 1 do
99
    if WizardForm.ComponentsList.Checked[I] then
100
    begin
101
      Result := True;
102
      Exit;
103
    end;
104
end;
105
function NextButtonClick(PageID: Integer): Boolean;
106
begin
107
  Result:= True;
108
  if PageID = wpSelectComponents then
109
  begin
110
    if not IsAnyComponentSelected then
111
    begin
112
      MsgBox('No items selected, please select at least one item', mbError, MB_OK);
113
      Result := False;
114
    end;
115
  end;
116
end;