summarizeSpec function

String summarizeSpec(
  1. ContainerSpec spec
)

A one-line description of spec for human eyes.

Env keys only: a summary shows up in rig ls and in shared terminals, and values are often credentials.

Implementation

String summarizeSpec(ContainerSpec spec) {
  final parts = [
    spec.image,
    if (spec.exposedPorts.isNotEmpty)
      'ports=${(spec.exposedPorts.toSet().toList()..sort()).join(',')}',
    if (spec.env.isNotEmpty)
      'env=${(spec.env.keys.toList()..sort()).join(',')}',
  ];
  final summary = parts.join(' ');
  if (summary.length <= _summaryBudget) return summary;
  return '${summary.substring(0, _summaryBudget - 1)}…';
}