Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 41 additions & 10 deletions bucket/lazarus.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@
"homepage": "https://www.lazarus-ide.org",
"license": {
"identifier": "GPL-2.0-or-later | FPC-modified-LGPL-2.0-or-later",
"url": "http://wiki.lazarus.freepascal.org/licensing"
"url": "https://wiki.lazarus.freepascal.org/licensing"
},
"notes": [
"To register file associations, please execute the following command:",
"reg import \"$dir\\install-associations.reg\""
],
Comment thread
SorYoshino marked this conversation as resolved.
"architecture": {
"64bit": {
"url": "https://downloads.sourceforge.net/project/lazarus/Lazarus%20Windows%2064%20bits/Lazarus%204.6/lazarus-4.6-fpc-3.2.2-win64.exe",
Expand All @@ -17,12 +21,31 @@
}
},
"innosetup": true,
"installer": {
"script": [
"$executable_dir = Get-ChildItem -Path \"$dir\\fpc\" -Filter 'fpcmkcfg.exe' -Depth 3 -File |",
" Select-Object -ExpandProperty DirectoryName -First 1",
"$fpc_dir = $executable_dir -replace '(?<=fpc.+)[\\\\/]bin.+', ''",
"$process_args = @('-d', \"basepath=$fpc_dir\", '-o', \"$executable_dir\\fpc.cfg\")",
"Start-Process -FilePath \"$executable_dir\\fpcmkcfg.exe\" -ArgumentList $process_args -NoNewWindow -Wait"
Comment thread
SorYoshino marked this conversation as resolved.
]
},
"post_install": [
"$fpcdir = \"$dir\\fpc\\\" + ($fname -replace '.*fpc-([\\d.]+)-.*', '$1');",
"$fpcarch=$(if ($fname -match '.*fpc-([\\d.]+)-win64') {'x86_64-win64'} else {'i386-win32'});",
"& \"$fpcdir\\bin\\$fpcarch\\fpcmkcfg.exe\" -d \"basepath=$fpcdir\" -o \"$fpcdir\\bin\\$fpcarch\\fpc.cfg\""
"$lazarus_dir = $dir -replace '\\\\', '\\\\'",
"Get-ChildItem -Path \"$bucketsdir\\$bucket\\scripts\\$app\" -Filter '*.reg' -File | ForEach-Object -Process {",
" $content = Get-Content -Path $_.FullName -Encoding utf8",
" if ($global) { $content = $content -replace 'HKEY_CURRENT_USER(?=.+Classes)', 'HKEY_LOCAL_MACHINE' }",
" $content -replace '{{lazarus_dir}}', $lazarus_dir | Set-Content -Path \"$dir\\$($_.Name)\" -Encoding unicode",
"}"
],
"env_set": {
"LazDir": "$dir",
"LazarusDir": "$dir"
},
"bin": [
"lazarus.exe",
"lazbuild.exe"
],
"bin": "lazbuild.exe",
"shortcuts": [
[
"lazarus.exe",
Expand All @@ -34,11 +57,19 @@
"--debug"
]
],
"env_set": {
"LazarusDir": "$dir",
"LazDir": "$dir"
"uninstaller": {
"script": [
"if ($cmd -ne 'uninstall') { return }",
"Get-ChildItem -Path $dir -Filter 'un*.reg' -File | ForEach-Object -Process {",
" $registry_file = '\"{0}\"' -f $_.FullName",
" Start-Process -FilePath 'reg.exe' -ArgumentList @('import', $registry_file) -WindowStyle Hidden -Wait",
"}"
]
},
"checkver": {
"url": "https://www.lazarus-ide.org/index.php?page=downloads",
"regex": "lazarus-([\\d.]+)-fpc-(?<fpc>[\\d.]+)-win"
},
"checkver": "lazarus-([\\d.]+)-fpc-(?<fpc>[\\d.]+)-win(64|32)\\.exe",
"autoupdate": {
"architecture": {
"64bit": {
Expand All @@ -49,7 +80,7 @@
}
},
"hash": {
"url": "http://www.lazarus-ide.org/index.php?page=checksums",
"url": "https://www.lazarus-ide.org/index.php?page=checksums",
"regex": "$sha256.*?$basename"
}
}
Expand Down
160 changes: 160 additions & 0 deletions scripts/lazarus/install-associations.reg
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\.inc\OpenWithProgIDs]
"Lazarus.AssocFile.inc"=hex(0):


[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.inc]
@="Object Pascal Include File"
"AppUserModelID"="Lazarus.Lazarus"
"FriendlyTypeName"="Object Pascal Include File"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.inc\DefaultIcon]
@="{{lazarus_dir}}\\images\\includefile.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.inc\shell]

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.inc\shell\open]
"FriendlyAppName"="Lazarus"
"Icon"="{{lazarus_dir}}\\images\\includefile.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.inc\shell\open\command]
@="\"{{lazarus_dir}}\\lazarus.exe\" \"%1\""



[HKEY_CURRENT_USER\Software\Classes\.lfm\OpenWithProgIDs]
"Lazarus.AssocFile.lfm"=hex(0):


[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lfm]
@="Lazarus Form"
"AppUserModelID"="Lazarus.Lazarus"
"FriendlyTypeName"="Lazarus Form"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lfm\DefaultIcon]
@="{{lazarus_dir}}\\images\\LazarusForm.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lfm\shell]

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lfm\shell\open]
"FriendlyAppName"="Lazarus"
"Icon"="{{lazarus_dir}}\\images\\LazarusForm.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lfm\shell\open\command]
@="\"{{lazarus_dir}}\\lazarus.exe\" \"%1\""



[HKEY_CURRENT_USER\Software\Classes\.lpi\OpenWithProgIDs]
"Lazarus.AssocFile.lpi"=hex(0):


[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpi]
@="Lazarus Project Information"
"AppUserModelID"="Lazarus.Lazarus"
"FriendlyTypeName"="Lazarus Project Information"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpi\DefaultIcon]
@="{{lazarus_dir}}\\images\\mainiconproject.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpi\shell]

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpi\shell\open]
"FriendlyAppName"="Lazarus"
"Icon"="{{lazarus_dir}}\\images\\mainiconproject.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpi\shell\open\command]
@="\"{{lazarus_dir}}\\lazarus.exe\" \"%1\""



[HKEY_CURRENT_USER\Software\Classes\.lpk\OpenWithProgIDs]
"Lazarus.AssocFile.lpk"=hex(0):


[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpk]
@="Lazarus Package File"
"AppUserModelID"="Lazarus.Lazarus"
"FriendlyTypeName"="Lazarus Package File"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpk\DefaultIcon]
@="{{lazarus_dir}}\\images\\lazaruspackage.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpk\shell]

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpk\shell\open]
"FriendlyAppName"="Lazarus"
"Icon"="{{lazarus_dir}}\\images\\lazaruspackage.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpk\shell\open\command]
@="\"{{lazarus_dir}}\\lazarus.exe\" \"%1\""



[HKEY_CURRENT_USER\Software\Classes\.lpr\OpenWithProgIDs]
"Lazarus.AssocFile.lpr"=hex(0):


[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpr]
@="Lazarus Project Main Source"
"AppUserModelID"="Lazarus.Lazarus"
"FriendlyTypeName"="Lazarus Project Main Source"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpr\DefaultIcon]
@="{{lazarus_dir}}\\images\\lprfile.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpr\shell]

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpr\shell\open]
"FriendlyAppName"="Lazarus"
"Icon"="{{lazarus_dir}}\\images\\lprfile.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpr\shell\open\command]
@="\"{{lazarus_dir}}\\lazarus.exe\" \"%1\""



[HKEY_CURRENT_USER\Software\Classes\.pas\OpenWithProgIDs]
"Lazarus.AssocFile.pas"=hex(0):


[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pas]
@="Pascal Source Code"
"AppUserModelID"="Lazarus.Lazarus"
"FriendlyTypeName"="Pascal Source Code"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pas\DefaultIcon]
@="{{lazarus_dir}}\\images\\LazarusSource.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pas\shell]

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pas\shell\open]
"FriendlyAppName"="Lazarus"
"Icon"="{{lazarus_dir}}\\images\\LazarusSource.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pas\shell\open\command]
@="\"{{lazarus_dir}}\\lazarus.exe\" \"%1\""



[HKEY_CURRENT_USER\Software\Classes\.pp\OpenWithProgIDs]
"Lazarus.AssocFile.pp"=hex(0):


[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pp]
@="Pascal Source Code"
"AppUserModelID"="Lazarus.Lazarus"
"FriendlyTypeName"="Pascal Source Code"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pp\DefaultIcon]
@="{{lazarus_dir}}\\images\\LazarusSource.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pp\shell]

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pp\shell\open]
"FriendlyAppName"="Lazarus"
"Icon"="{{lazarus_dir}}\\images\\LazarusSource.ico"

[HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pp\shell\open\command]
@="\"{{lazarus_dir}}\\lazarus.exe\" \"%1\""
52 changes: 52 additions & 0 deletions scripts/lazarus/uninstall-associations.reg
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Windows Registry Editor Version 5.00

; Remove application metadata and capabilities from the Default Programs framework

[-HKEY_CURRENT_USER\Software\Lazarus]

; Unregister Lazarus from the RegisteredApplications list to disable system-level integration

[HKEY_CURRENT_USER\Software\RegisteredApplications]
"Lazarus"=-
Comment thread
SorYoshino marked this conversation as resolved.


[HKEY_CURRENT_USER\Software\Classes\.inc\OpenWithProgIDs]
"Lazarus.AssocFile.inc"=-

[-HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.inc]


[HKEY_CURRENT_USER\Software\Classes\.lfm\OpenWithProgIDs]
"Lazarus.AssocFile.lfm"=-

[-HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lfm]


[HKEY_CURRENT_USER\Software\Classes\.lpi\OpenWithProgIDs]
"Lazarus.AssocFile.lpi"=-

[-HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpi]


[HKEY_CURRENT_USER\Software\Classes\.lpk\OpenWithProgIDs]
"Lazarus.AssocFile.lpk"=-

[-HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpk]


[HKEY_CURRENT_USER\Software\Classes\.lpr\OpenWithProgIDs]
"Lazarus.AssocFile.lpr"=-

[-HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.lpr]


[HKEY_CURRENT_USER\Software\Classes\.pas\OpenWithProgIDs]
"Lazarus.AssocFile.pas"=-

[-HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pas]


[HKEY_CURRENT_USER\Software\Classes\.pp\OpenWithProgIDs]
"Lazarus.AssocFile.pp"=-

[-HKEY_CURRENT_USER\Software\Classes\Lazarus.AssocFile.pp]
Loading