115: Development of a Diagnostic Tool in Go
Description: The goal is to develop a diagnostic tool written in Go to retrieve and display the version numbers of several software components on the local machine, presented in a neat, visually appealing Markdown format.
Components to be diagnosed:
- Go language version
- Docker version
- Docker-compose version
- Kubernetes version
- OpenIM - both server and client components
Acceptance Criteria:
- Go language version retrieval: The tool should be able to fetch the Go language version from the local machine.
- Docker and Docker-compose version retrieval: The tool should be able to determine the version of both Docker and Docker-compose installed on the local machine.
- Kubernetes version retrieval: If Kubernetes is installed, its version should be identifiable by the tool.
- OpenIM version retrieval: The diagnostic tool should fetch the version numbers for both the server and client components of OpenIM.
- Markdown formatted output: The results should be printed in a visually appealing Markdown format.
Potential Challenges:
- Handling the absence of any of the mentioned software components on the local machine.
- Ensuring compatibility with different OS platforms.
Implementation Details:
- The Go tool can utilize command-line exec capabilities to run commands such as
go version
,docker version
, etc. - Error handling should be robust to ensure graceful failures for non-installed components.
- The Markdown formatting can utilize Go's string manipulation capabilities.