Repository navigation
Expand file tree
/
Copy pathsami_installer.iss
More file actions
85 lines (72 loc) · 3.74 KB
/
Copy pathsami_installer.iss
File metadata and controls
85 lines (72 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define SammyAppName "Sami Programming Language"
#define SammyAppVersion "3.1"
#define SammyAppPublisher "Sami Language Team"
#define SammyAppExeName "sami.exe"
[Setup]
AppId={{D86A3E5D-4A2D-4E15-99AB-9C78BC7193F1}
AppName={#SammyAppName}
AppVersion={#SammyAppVersion}
AppPublisher={#SammyAppPublisher}
DefaultDirName={autopf}\SamiLang
DefaultGroupName=SamiLang
DisableProgramGroupPage=yes
OutputDir=.
OutputBaseFilename=sami_setup
Compression=lzma
SolidCompression=yes
WizardStyle=modern
ChangesEnvironment=yes
PrivilegesRequired=admin
ChangesAssociations=yes
SetupIconFile={#SourcePath}\assets\sami_setup.ico
UninstallDisplayIcon={app}\sami_setup.ico
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "envPath"; Description: "Add Sami Programming Language to system PATH (recommended)"; GroupDescription: "Advanced Configuration:"; Flags: checkedonce
Name: "vscodeExt"; Description: "Install Sami Language support for Visual Studio Code Icons"; GroupDescription: "Editor Integrations:"; Flags: checkedonce
[Files]
Source: "target\release\sami.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "sami.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: "sami_file.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: "sami_setup.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: "sami_docs.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: "sami-vscode-extension\*"; DestDir: "{%USERPROFILE}\.vscode\extensions\sami-vscode-extension"; Flags: recursesubdirs createallsubdirs ignoreversion; Tasks: vscodeExt
[Icons]
Name: "{group}\{#SammyAppName}"; Filename: "{app}\{#SammyAppExeName}"; IconFilename: "{app}\sami.ico"
Name: "{group}\Uninstall {#SammyAppName}"; Filename: "{uninstallexe}"; IconFilename: "{app}\sami_setup.ico"
[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \
ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}"; \
Check: NeedsAddPath; Flags: preservestringtype
; Windows File Association keys for .sa
Root: HKA; Subkey: "Software\Classes\.sa"; ValueType: string; ValueName: ""; ValueData: "SamiFile"; Flags: uninsdeletevalue
Root: HKA; Subkey: "Software\Classes\SamiFile"; ValueType: string; ValueName: ""; ValueData: "Sami Programming Language Script"; Flags: uninsdeletekey
Root: HKA; Subkey: "Software\Classes\SamiFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\sami_file.ico,0"; Flags: uninsdeletevalue
Root: HKA; Subkey: "Software\Classes\SamiFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\sami.exe"" ""run"" ""%1"""
; Windows File Association keys for .sadoc (Sami Language Documentation)
Root: HKA; Subkey: "Software\Classes\.sadoc"; ValueType: string; ValueName: ""; ValueData: "SamiDocs"; Flags: uninsdeletevalue
Root: HKA; Subkey: "Software\Classes\SamiDocs"; ValueType: string; ValueName: ""; ValueData: "Sami Programming Language Documentation"; Flags: uninsdeletekey
Root: HKA; Subkey: "Software\Classes\SamiDocs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\sami_docs.ico,0"; Flags: uninsdeletevalue
[Run]
Filename: "{sys}\cmd.exe"; Parameters: "/c mcbuilder.exe"; Flags: runhidden
[Code]
function NeedsAddPath(): Boolean;
var
OldPath: String;
begin
if WizardIsTaskSelected('envPath') then
begin
if RegQueryStringValue(HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', OldPath) then
begin
// Look for ;installation_path; inside ;old_path;
Result := Pos(';' + Uppercase(ExpandConstant('{app}')) + ';', ';' + Uppercase(OldPath) + ';') = 0;
end
else
Result := True;
end
else
Result := False;
end;