FGCBA is a utility designed to build addon CABs by processing the entries.ini file and any dependant files referenced by it. It can also check addon CABs for errors to minimize the chance for failed installations. (AddonPacks are for use with the RVMIntegrator or nLite.)

I was inspired to start this project after the removal of the SysInternals addon packs from RyanVM's forum upon the sudden license discovery and as a way to perform pre-flight checks on addons which prove useful to prevent unexpected problems with a modified Windows source.

Features:
- Create complete AddOn file from entries.ini and dependant file(s) with autorenaming of filenames according to the INI (and INF) entries.
- Enhanced error checking with 2 levels of warnings (fatal and non-fatal) including checking for errors in external INF file.
- Checking of [DefaultInstall] and [Optional Components] directives to make sure there are no orphaned entries.
- Check AddOn CABs for errors.

If you have any problems or questions, please post them in a new thread in this forum and I will attend to them as soon as possible.

Credits to:
- RyanVM for his awesome work.
- odyn1982 for testing and suggesting new features which led me to learn INF files.
- Aserone/Foxy for reporting bugs.
- Xable for hosting FGCBA.
- Siginet for the nice forum.

Version: 0.897 Beta- Changelog:
1. When parsing RegisterOCXs and RegisterDLLs, FGCBA will now include [txtsetup_files] when searching for the referenced DLL/OCX. This will not occur if checking the external Inf directly with FGCBA (of course).
2. Many small optimizations and improvements.
3. When looking for 7-zip, FGCBA will now read the Path REG_SZ from HKLM\Software\7-Zip to determine the location of 7z.exe before looking in the default installation location.
4. FGCBA will now correctly detect entries.ini files that use the ExtraFileEdits method to add switchless installers as a switchless installer addon.
5. Warnings will now only be shown once in the output (instead of once after the required files list and once after the success/failure message).
6. All warnings/errors printed to the console will now be correctly wrapped at words to fit the console width to prevent ugly looking output when printing long file names. (Much better than hard coded CRLFs in my opinion).
7. Start of integrator plugin behaviour code (not yet activated).
---
Version: 0.896 Beta- Changelog:
1. Fixed /QuirksMode was broken in some places.
2. Implemented RegisterDLLs, UnRegisterDLLs, RegisterOCXs, UnRegisterOCXs with syntax check and check (in Register***s directives only) for dll/ocx reference by CopyFiles)
3. Enhanced SimpleINIEditor, now any data above first section in entries.ini file is correctly preserved (in rare cases, all the data was replaced by a blank section if the 1st line was not a comment)
4. Removed Reg2Inf code from FGCBA, better to use the separate Reg2Inf program for that and backporting the changes was becoming tedious.
---
Version: 0.895 Beta- Changelog:
1. New icon for executable (thank you Kelsenellenelvian)
2. Support for running FGCBA with a folder as the first switchless parameter (in place of the entries.ini path) and it will search in the specified folder for the 1st entries.ini file found and process it.
3. Fixed a bug where if the /build parameter was not specified and only checking an entries.ini file or an external.inf file, an exception would be generated (because of checks for [i386_compress] section being based on checking the /build parameter)
4. Slight improvement to logger.
---
Version: 0.894 Beta- Changelog:
1. Complete support for ZIP and RAR (ZIP is treated like .CAB because it doesn't have solid compression, while .RAR is treated like .7z because it has solid compression), both are created with Ultra compression and RAR has solid mode enabled.
2. Move from using 7za.exe to using 7z.exe (because of support for more formats).
3. FGCBA will now look in CabArc's, 7-Zip's and RAR's default installation folders (%ProgramFiles%\Support Tools),(%ProgramFiles%\7-Zip) and (%ProgramFiles%\WinRAR) before searching the %PATH%, so now you don't have to copy any files to SYSTEM32 to work, just install the required program.
4. [i386_compress] that references a file in ASMS folder is now no longer considered a non-standard entry.
5. More performance improvements (lowering of memory usage).
6. Updated Reg2Inf engine with bugfixes from Reg2Inf 0.31.
7. Minor improvements to addon archive creator.
8. Small (non-breaking) optimizations in SimpleINIEditorV3.

---
Version: 0.893 Beta- Changelog:
1. Fixed a bug which caused a crash if the External INF entry in [txtsetup_files] was flagged with _x.
2. New check: Make sure that all sections referenced in CopyFiles directive are mentioned in [DestinationDirs].
3. Minor changes to logger.

---
Version: 0.892 Beta- Changelog:
1. More code optimization to remove unnecesary looping.
2. Full support for [i386_compress] section, will only be checked if the addon is .7z else it will be ignored.
3. When building an addon to 7z format, [i386_compress] section will be automatically generated and if exists, will be completed if any entries are missing. Files in [txtsetup_files] with _x will not be added.
4. A warning will appear about any files in [i386_compress] that are not in rvmtemp\extracted.
5. Fixed a bug where checking a 7z addon that contained an external CAB to fail because FGCBA was not resolving the path to CabArc.exe.
6. Added new methods to add sections in SimpleINIEditor.
7. CabArc.exe / 7za.exe will now output to the log file when logging is enabled with the /log parameter for better diagnostic information.
8. Minor enhancements to logger.

---
Version: 0.891 Beta- Changelog:
1. FIX: CabArc.exe location was not searched if archive format was 7-zip despite the fact that external CABs need it to be created.
2. Various code performance optimizations.

---
Version: 0.89 Beta

- Changelog:
1. Complete rewrite of ArgumentParser (v2) so it is now much smarter in handling command line parameters, now parameters can be in any order, so this: fgcba /build:New.7z "ENTRIES_Everest.INI" /log:.\New.txt will now work correctly.

2. Support for 7-zip format (but now depends on 7za.exe, FGCBA will check for it if an operation requires it) in addition to CAB format.

3. Fixed a bug in unassigned variable checking where '-' character wasn't recognized as a valid character in a variable name leading to unassigned variable errors.