- Success Wrote print should have an X and say Nothing was printed for source NAME if nothing was printed
- Testing beyond Windows needed:
- More extensive on macOS
- Full Linux tests
- Duplicate key protection for configs
- Telemetry
- Implement verbose flag + env var
- Implement no color flag + config option
- Figure out how to get rid of Node loader experimental warning, perhaps by following their instructions
- Figure out eslint ignore patterns so I can remove the manual one in package.json
- Try examing output of
npm run lint:config
- Try examing output of
- Implement unimplemented npm scripts, such as
lint:yaml
- Figure out what the TS entrypoint should be now
- Review all new Error throws and change many to use TypeError
- Review all function argument parsing for verbose messages
- Rename manifest attribute "directory" to root directory for clarity
- Accept folders as manifest paths in the config + Recursive option
- Move my own manifests into a private folder and share some of my good examples for
- Add PC Ports.yml personal manifest as example
- Option to remove color from prints (config or flag)
- Print Transformed N titles should identify how many were successful over how many were listed
- Better solution for debug prints, perhaps one that rolls logging into it as well?
- Support auto-kill Steam + launch Steam ROM Manager as opt-in
- Figure out some mechanism for deleting old manifests left behind in the folder, or at least warning
- Tell user how long it took
- Only mandatory properties of a manifest input should be output and titles, the latter must be valid
- Ensure attributes name and directory CAN be ommitted, even if not recommended for ease of use
- Then files can be roughly cut in half from .json to .yml
- Missing
exec
should be rejected, such as both examples below: name
is not required, should be able to infer fromexec
file's basename
- title: Some Title of a Game With an Empty Target
target:
- title: Some Title of a Game Without a Target
rootDirectory: 'Your/Regular/Source/Root/Directory'
shortcuts:
- name: 'The Name of Your Parent Shortcut Which Launches Multiple Things'
enabled: false # Optional, disable outputting
rootDirectory: 'Appended/To/The/Manifest/Root/Dir' # Adds to the manifest file's root directory if present
installed:
date: 11/27/2024
version: v1.0
shortcuts: # If sub-shortcuts are present, ignore if parent doesn't have exec field
- name: One Title Which Inherits From Its Parent
exec: A/Relative/File/Path/From/Manifest/Root/Dir/Plus/Parent/Shortcut/Root/Dir
- name: Another Title Which is a Sub-Shortcut of Its Parent
exec: Some/File/Path/To/A/File.exe
Plans for optional metadata support
- Support various metadata I've exemplified in my personal configs; This should be a flexible system with sensible aliases
- Search function which displays found shortcuts as well as displays its attributes, including if Not Set, for example
- Support
url
values and the ability to open the link automatically
- Any way to check file version detail that exes commonly have as a fallback?
installed: # Keyword "install" might be too ambiguous
date: 11/27/2024 # Consider supporting keyword "at" because "on" is taken by yml booleans
version: v1.0 # Consider supporting keyword "v"
updated:
date: 11/28/2024
version: v1.1
- The reverse: Converting your existing manifest.json into a .yml manifest
- Linting normal JSON SRM manifests
- Support other SRM manifest options, check SRM options
- Proper CLI features, probably use
yargs
- Should be able to target an individual manifest YAML and parse, validate, or fully process and output it via CLI
- Auto-add shortcut to a manifest based on path to exe
- Option to clear generated manifest files based on current mapping
- Dry runs
- Split shortcuts into individual files within a folder, then combine them into a single manifest automatically
- Create Windows shortcut (.lnk files) and put them in the desired location such as Desktop or Start Menu dirs
- Explore combined manifests, such as My PC Ports A-R + My PC Ports S-Z = My PC Ports A-Z
- Ensure support for Windows context menu-copied paths (aka
\\
separators) - Support outputting shortcuts to individual manifests
- Minification options
- Aliases such as "ENTRY.title" could be "ENTRY.name"
- If outputting to jsonc, add comments for other data from session + date