Skip to content

Commit

Permalink
update format dockerfile with RUN flags
Browse files Browse the repository at this point in the history
  • Loading branch information
chrysa committed Jan 25, 2024
1 parent 3a84f33 commit 5f805df
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 4 deletions.
3 changes: 3 additions & 0 deletions .pre-commit-hooks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,23 @@
- dockerfile-parse
description: format dockerfiles
entry: format-dockerfile
files: Dockerfile, .dockerfile$, .Dockerfile$
language: python
language_version: '3.10'
minimum_pre_commit_version: '2.20.0'
name: format dockerfiles
types: ["dockerfile"]
- id: python-print-detection
entry: print-detection
files: .py$
language: python
language_version: '3.10'
minimum_pre_commit_version: '2.20.0'
name: detect print on python code
types: ["python"]
- id: python-pprint-detection
entry: pprint-detection
files: .py$
language: python
language_version: '3.10'
minimum_pre_commit_version: '2.20.0'
Expand Down
9 changes: 7 additions & 2 deletions pre_commit_hooks/format_dockerfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def _format_healthcheck_line(self, *, line_content: str) -> None:
self.content += '\n' + multiline

def _file_as_changed(self) -> bool:
return repr(self.content) != repr(self.parser.content)
return self.content != self.parser.content

def _format_env_line(self, *, line_content: str) -> None:
logger.debug('format ENV ..........')
Expand All @@ -81,7 +81,12 @@ def _format_env_line(self, *, line_content: str) -> None:
def _format_run_line(self, *, index: int, line_content: str) -> None:
logger.debug('format RUN ..........')
line_content = line_content.replace('RUN ', '')
if '&&' in line_content:
data: str
if line_content.startswith("--"):
split_list = list(map(str.strip, line_content.split('&&')))
content = ' \\\n && '.join(split_list)
data = '\n' + f"RUN {content}"
elif '&&' in line_content:
data = ' \\\n && '.join(list(map(str.strip, line_content.split('&&'))))
else:
data = ' \\\n && ' + line_content
Expand Down
4 changes: 2 additions & 2 deletions pre_commit_hooks/print_detection.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@

def main(argv: Sequence[str] | None = None) -> int:
pattern_detection = PatternDetection(
commented=re.compile(r'\s#*print\('),
commented=re.compile(r'^\s{0,}#\s{0,}print\('),
disable_comment=re.compile(r'\bprint-detection\s*:\s*disable'),
pattern=re.compile(r'\bprint\('),
pattern=re.compile(r'^\s{0,}print\('),
)
return pattern_detection.detect()

Expand Down
9 changes: 9 additions & 0 deletions pre_commit_hooks/tools/pattern_detection.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/python3
from __future__ import annotations

import logging
import typing
from dataclasses import dataclass
from pathlib import Path
Expand All @@ -11,6 +12,14 @@
if typing.TYPE_CHECKING:
import re

logger = logging.getLogger()
logger.setLevel(logging.ERROR)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)


@dataclass
class PatternDetection:
Expand Down

0 comments on commit 5f805df

Please sign in to comment.