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:

  1. Go language version
  2. Docker version
  3. Docker-compose version
  4. Kubernetes version
  5. OpenIM - both server and client components

Acceptance Criteria:

  1. Go language version retrieval: The tool should be able to fetch the Go language version from the local machine.
  2. 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.
  3. Kubernetes version retrieval: If Kubernetes is installed, its version should be identifiable by the tool.
  4. OpenIM version retrieval: The diagnostic tool should fetch the version numbers for both the server and client components of OpenIM.
  5. 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.