Skip to content

Latest commit

 

History

73 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GetItcmdGUI

Current release: 1.5. See release notes.

Language Platform License

GetItcmdGUI is a Windows VCL desktop tool for managing RAD Studio GetIt packages using two list sources:

  • GetItCmd.exe (CLI integration)
  • direct REST catalog calls

The goal is practical package management across multiple RAD Studio versions, with clear logs, filters, and install-state checks.

License

See LICENSE for the MIT license and original attribution.

Key Features

  • Dual list workflows, intentionally separated:
    • List (GetItCmd)
    • List (REST)
  • Local post-processing for REST results:
    • text filter (contains, min 3 chars)
    • category filter (All + registry categories)
    • vendor filter (All + catalog vendors)
    • Delphi-only toggle
    • latest-version-only toggle
    • installed/not-installed/updatable-only filters
    • Non Commercial filter (Commercial/Trial license text and names starting with Trial)
    • REST status values: Installed, Outdated, Modified, Unavailable, Not installed
  • Local sort menu over visible list (context menu)
  • Install/uninstall/download flows through GetItCmd
  • GetItCmd download prompts for the destination directory instead of writing to the selected RAD Studio bin folder
  • Optional rsvars.bat bootstrap for all GetItCmd operations
  • Automatically saved session log, with separate output/install views
  • IDE path editor with one path per row, macro preservation and duplicate detection
  • Package install-state detection via registry scans
  • UI feedback for command failures and warnings

Supported RAD Studio Versions

The tool is designed around installed BDS versions detected on the machine.

Mainly tested in this project cycle:

  • BDS 37.0 (Delphi 13, including 13.2)
  • BDS 23.0 (Delphi 12)
  • BDS 22.0 (Delphi 11)
  • BDS 21.0 (Delphi 10.4)
  • BDS 20.0 (Delphi 10.3)

Notes:

  • GetItCmd syntax differs between legacy and newer versions (handled internally by flavor switch).
  • rsvars.bat usage is user-controlled with the Use rsvars.bat checkbox.
  • REST request parameters are version-specific and may require future adjustments for new RAD Studio releases.

Known Limitations

  • GetItCmd behavior can be inconsistent across versions/environments.
  • Earlier Delphi 13 installations showed redirected/captured-output failures. Online listing was reported working with captured output on Delphi 13.2, build 37.0.60952.8797; this does not guarantee every command/environment. In Offline mode, GetItCmd uses local availability rather than the online catalog, so the list may contain only installed packages. Check the displayed mode before diagnosing a truncated catalog. REST remains an independent online list source.
  • GetItCmd argument values are quoted when needed; the version-specific switches, including empty --list=, are preserved. With rsvars.bat, percent signs in an argument are rejected to prevent cmd environment expansion; disable rsvars for such arguments. Quotes and control characters in values are rejected.
  • Installation results remain diagnostic rather than proof of correctness: third-party installers emit inconsistent output. An apparent command success does not guarantee that the package compiled correctly or can be loaded by the IDE.
  • Current known issue: on some BDS 20 setups, GetItCmd may fail for list/install with server, internal-check, or access-violation errors even with correct command syntax.
  • When GetItCmd list fails, the app shows: GetIt list command failed, try REST.
  • REST and GetItCmd are not guaranteed to return identical datasets for every version.
  • REST Modified means package file/reference difference, not a generic catalog metadata change.
  • Local GetIt files can be split between the per-user $(BDSCatalogRepository) and all-users $(BDSCatalogRepositoryAllUsers) roots; installed-state checks are registry-driven.
  • RAD Studio 64-bit IDE package loading can require the physical Bpl\Win64 path in Environment Variables x64 so runtime BPL dependencies are not resolved from the 32-bit Bpl folder.

Build Requirements

  • Windows
  • Embarcadero RAD Studio (Win64 target)
  • DOSCommand
  • Windows11 Polar Dark VCL style at $(BDSCOMMONDIR)\Styles\Windows11_Polar_Dark.vsf (embedded during compilation)

When using the 64-bit RAD Studio IDE, make sure the 64-bit public BPL directory is available in the IDE x64 environment, for example:

E:\Users\Public\Documents\Embarcadero\Studio\37.0\Bpl\Win64

Do not reorder the common Bpl path used by the 32-bit IDE.

Build

From a RAD Studio command prompt (or with rsvars.bat loaded):

msbuild GetItcmdGUI.dproj /t:Build /p:Config=Release /p:Platform=Win64

Usage

1. Choose RAD Studio version

Select the detected BDS version from the combo box.

2. Choose list source

  • List (GetItCmd)
    • Uses GetItCmd.exe
    • Uses command-line filters/sort parameters
    • Uses rsvars.bat when Use rsvars.bat is checked
    • REST-only filters are disabled in this mode
  • List (REST)
    • Downloads catalog via REST
    • Applies filters and selection logic locally

3. Apply filters/sort

  • GetItCmd mode: command parameters; rows keep the command output order
  • REST mode: full local filter stack + local sort menu

4. Run actions

  • Install selected
  • Uninstall selected
  • Download highlighted package

Changing RAD Studio version clears the previous catalog and its selection. While an operation is running, controls that could start another operation or change its target are disabled. Cancel remains available in the install log.

REST sorting/filtering preserves checks only for packages that remain visible. Hidden checks are discarded and do not return when a filter is removed. Checked actions show this visible count in both the button and context menu.

REST installed filters operate on package families (including vendor and language), so an older catalog version of an installed family is not classified as not installed. The details show the actual installed version. Local filters reuse cached installed metadata; refresh the catalog after package changes performed outside this application.

Direct REST downloads ask before overwriting a file and replace it only after a complete, successful transfer. Failed transfers remove only the newly created temporary file.

Use Output Log and Install Log to inspect diagnostics and open the log folder.

Install log summaries distinguish between:

  • installed=YES: package installation completed explicitly
  • installed=UNCHANGED: command finished successfully but no new install was performed
  • installed=NO: command failed or was aborted before install completion

Logs and Troubleshooting

  • Output Log: list command output, REST diagnostics, warnings/errors
  • Install Log: install/uninstall operation output
  • One UTF-8 log is saved automatically per application session under %LOCALAPPDATA%\GetItcmdGUI\Logs; clearing a view does not erase the saved log.
  • Visual updates are batched every 100 ms. GUI messages and external output use different colors, with warnings/errors highlighted.
  • A directory-not-found compiler hint is a warning, not proof that installation failed. Explicit compiler errors and fatal messages remain errors.
  • If list fails with GetItCmd, retry with REST for package browsing.

IDE Path Editor

Choose the RAD Studio version and open IDE path editor. It edits existing multi-entry environment overrides (separate IDE 32/64 settings) and per-platform library paths, not the Windows system/user PATH.

  • Each list entry occupies one row. Add/change directories with the folder picker, reorder entries, remove them, or edit their text directly.
  • The color legend distinguishes valid, missing, unresolved/relative and duplicate paths. The details show the expanded path; macros are preserved when possible.
  • Changing an invalid directory opens the picker at its nearest existing parent.
  • Duplicate checks compare resolved paths. Duplicates block saving; removing a duplicate does not prompt, while removing an existing unique path requires confirmation.
  • Save setting, below Check paths, saves the selected setting. All RAD Studio instances must be closed. Library changes update both the registry and matching existing EnvOptions.proj properties. No missing properties are created.
  • Backups are stored under %LOCALAPPDATA%\GetItcmdGUI\PathBackups. Environment changes take effect on the next IDE startup.
  • $(PATH) refers to the application's inherited environment. Temporary GetIt action macros such as $(_CatalogRepository) may remain unresolved outside an installer; inspect the actual package location rather than replacing them blindly.

Repository Notes

This README is for the standalone GetItcmdGUI repository layout, where GetItcmdGUI is the project root.

Legal

See:

GetItcmdGUI screenshot from v1.4

About

A GUI frontend for GetItCmd in RAD Studio (Delphi/C++), with enhanced package listing, filtering, and management features.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages