|
6 | 6 | from scan.utils import pretty_size |
7 | 7 |
|
8 | 8 |
|
| 9 | +def truncate(name: str, limit: int) -> str: |
| 10 | + if len(name) <= limit: |
| 11 | + return name |
| 12 | + return name[:limit] + '...' |
| 13 | + |
| 14 | + |
9 | 15 | class DockerVersion(BaseModel): |
10 | 16 | platform_name: str = Field(alias=('Platform', 'Name'), default='') |
11 | 17 | version: str = Field(alias='Version') |
@@ -65,6 +71,12 @@ class DockerContainer(BaseModel): |
65 | 71 | def short_id(self) -> str: |
66 | 72 | return self.id[:12] |
67 | 73 |
|
| 74 | + @property |
| 75 | + def short_image(self) -> str: |
| 76 | + if self.image.startswith('sha256:'): |
| 77 | + return self.image[7:19] |
| 78 | + return self.image |
| 79 | + |
68 | 80 | @property |
69 | 81 | def clean_names(self) -> list[str]: |
70 | 82 | if not self.names: |
@@ -95,6 +107,10 @@ class DockerVolume(BaseModel): |
95 | 107 | usage_data: dict | None = Field(alias='UsageData', default_factory=dict) |
96 | 108 | containers: list[str] | None = Field(default_factory=list) |
97 | 109 |
|
| 110 | + @property |
| 111 | + def short_name(self) -> str: |
| 112 | + return truncate(self.name, 39) |
| 113 | + |
98 | 114 | @property |
99 | 115 | def size(self) -> int: |
100 | 116 | if 'Size' not in self.usage_data: |
@@ -135,11 +151,7 @@ def last_used_delta(self) -> str: |
135 | 151 |
|
136 | 152 | @property |
137 | 153 | def short_desc(self) -> str: |
138 | | - limit = 180 |
139 | | - s = self.description[:limit] |
140 | | - if len(self.description) > limit: |
141 | | - s += '...' |
142 | | - return s |
| 154 | + return truncate(self.description, 180) |
143 | 155 |
|
144 | 156 |
|
145 | 157 | class DockerBuildCacheList(RootModel): |
@@ -223,11 +235,7 @@ class DockerOverlay2Layer(BaseModel): |
223 | 235 |
|
224 | 236 | @property |
225 | 237 | def short_id(self) -> str: |
226 | | - limit = 22 |
227 | | - s = self.id[:limit] |
228 | | - if len(self.id) > limit: |
229 | | - s += '...' |
230 | | - return s |
| 238 | + return truncate(self.id, 22) |
231 | 239 |
|
232 | 240 | @property |
233 | 241 | def created_delta(self) -> str: |
|
0 commit comments