Devolutions / Devolutions/UniGetUI

[FEATURE REQUEST] Use a human-editable InstallationOptions format instead of the current JSON

Open
#5,260 0 comments 0 reactions 0 assignees View on GitHub
new-feature
Dominant language
C#
Stars
26.1k
Forks
924
Avg merge
15h 52m
Merged PRs (30d)
52

Description

### Please confirm these before moving forward.

- [x] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- [x] This proposal is a completely new feature. If you want to suggest an improvement or an enhancement, please use [this template](https://github.com/Devolutions/UniGetUI/issues/new?labels=enhancement&projects=&template=enhancement-improvement.yml&title=%5BENHANCEMENT%5D+%28Enter+your+description+here%29).

### Describe the new feature

I'd like to be able to batch-replace `CustomParameters_Install` fields in the `Local\UniGetUI\InstallationOptions` `app.json` files, but their current formatting is awful human-readability-wise, for example, instead of
`--location "\1 Sub\2 Dir\App"` you get
```json
"CustomParameters_Install": [
"--location",
"\u0022\u003CProgramFiles\u003E\\1",
"Sub\\2",
"Dir\\App\u0022"
]
```
which makes it very hard to do a simple search&replace

Instead a few things would be much better:
- use actual `<` chars intead of their `\u1234` codes
- don't use separate fields as space seprators
- better yet, switch to a modern format that has proper raw string type so that you wouldn't need to do the `\\` abomination (one of the more expressive format I know is KDL, but any other with similar characterictis will do
Then the above would be a simple
```kdl
CustomParameters_Install #"--location "\1 Sub\2 Dir\App""#
// or, if you need key=value pairs
CustomParameters_Install --location=#""\1 Sub\2 Dir\App""#
```
which is searchable in exactly the same format you'd type it in the GUI text field

### Describe how this new feature could help users

Avoid wasting time modifying installation paths in the UI with a dozen clicks/typing operations per app

Contributor guide

Open the contributing guide

Research direction

Start by locating the Local\UniGetUI\InstallationOptions app.json files and the code that reads and writes InstallationOptions, especially CustomParameters_Install. Compare the current JSON representation with the proposed human-editable format and determine the supported format and compatibility requirements. Done means installation options can be edited and batch-replaced in a readable format without breaking existing app configurations.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, json
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.