intersystems / intersystems/ipm
Ability to write all output from any IPM shell command directly to a file in addition to the current device
- Dominant language
- ObjectScript
- Stars
- 41
- Forks
- 29
- Avg merge
- 23h 54m
- Merged PRs (30d)
- 4
Description
## Describe the problem
When using IPM shell commands with CPF merge, CPF merge does not provide the current device write outputs in a meaningful manner so it makes sense to persist all output to the current device in a log file _in addition_ to the terminal. This feature request is a continuation of issue #1186 which allowed ShellScript() (which gives the option of redirecting the output to a log file) to return a status, so that it can be used in a CPF merge.
## Describe the solution
- A global flag (like -verbose) with a place to export the current device write outputs to.
- Additionally, it would be good to have a persistent modifier amongst the universal settings of a default location to write log files to (we can default this to somewhere under the DataDirectory()/ipm?).
- Also consider adding output of commands to the history table so we can see the log tied to specific command runs.
- Implementation wise, this should be able to **tee the output** to both a log file and the device terminal
## Additional context
Requested in internal reference TRIAGE-6911
Contributor guide
Research direction
Start by tracing how IPM shell commands write output to the current device and how ShellScript() exposes command status. Define the tee behavior, the default log location under DataDirectory()/ipm, and whether command output should be tied to the history table; completion requires decisions on these behaviors and their implementation.
Written by the indexing model from the issue text.
Assessment
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100