diff --git a/eoldoctor/fixer.py b/eoldoctor/fixer.py index e1459d3..3e5617b 100644 --- a/eoldoctor/fixer.py +++ b/eoldoctor/fixer.py @@ -19,7 +19,7 @@ TARGET_CRLF = "crlf" SMART_LF_EXTS = frozenset({".sh", ".bash", ".zsh", ".ksh"}) -SMART_CRLF_EXTS = frozenset({".bat", ".cmd"}) +SMART_CRLF_EXTS = frozenset({".bat", ".cmd", ".ps1", ".psm1", ".psd1"}) #: Extensions we are willing to mark as binary in generated .gitattributes. KNOWN_BINARY_EXTS = frozenset( @@ -35,7 +35,7 @@ ) FORCE_LF_EXTS = SMART_LF_EXTS -FORCE_CRLF_EXTS = frozenset({".bat", ".cmd", ".sln"}) +FORCE_CRLF_EXTS = frozenset({".bat", ".cmd", ".sln", ".ps1", ".psm1", ".psd1"}) @dataclass diff --git a/tests/test_powershell_eol.py b/tests/test_powershell_eol.py new file mode 100644 index 0000000..7edd4f1 --- /dev/null +++ b/tests/test_powershell_eol.py @@ -0,0 +1,14 @@ +import unittest + +from eoldoctor.filescan import analyze_bytes +from eoldoctor.fixer import smart_target + + +class PowerShellCRLFTest(unittest.TestCase): + def test_ps1_forced_crlf(self): + stat = analyze_bytes(b"Write-Host hi\n", path="run.ps1") + self.assertEqual(smart_target(stat, "lf", smart=True), "crlf") + + def test_psm1_forced_crlf(self): + stat = analyze_bytes(b"function X {}\n", path="mod.psm1") + self.assertEqual(smart_target(stat, "lf", smart=True), "crlf")