Skip to content

Latest commit

 

History

72 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GetItcmdGUI

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.

Attribution

This project started from the original AutoGetIt idea and initial implementation by David Cornelius.

  • Original project: AutoGetIt
  • Original copyright: David Cornelius
  • License: MIT

The current codebase has been significantly reworked and extended after the initial base import, while preserving attribution and the original MIT license terms.

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
    • 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
  • Output log and install log with save support
  • 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)
  • 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.
  • BDS 37 has a known redirected/captured-output defect, including shell > redirection. A command that works in interactive CMD can fail when captured by this GUI. REST remains the alternative for browsing the catalog.
  • 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. The existing classifier is pending further tests with the next Delphi release.
  • 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

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=Debug /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 or save diagnostics.

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
  • If list fails with GetItCmd, retry with REST for package browsing.

Repository Notes

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

Legal

See:

GetItcmdGUI current UI

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