Skip to content

Commit

Permalink
Use unix line-endings in bash activate script
Browse files Browse the repository at this point in the history
Fixes: pypa#1818

Signed-off-by: Siddhant Kumar <[email protected]>
  • Loading branch information
Siddhant Kumar committed Aug 15, 2020
1 parent 10f232b commit 73a4461
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/changelog/1818.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Use unix style line endings in bash activation script - by :user:`saytosid`.
20 changes: 20 additions & 0 deletions src/virtualenv/activation/bash/__init__.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,33 @@
from __future__ import absolute_import, unicode_literals

from virtualenv.info import IS_WIN
from virtualenv.util.path import Path

from ..via_template import ViaTemplateActivator


class BashActivator(ViaTemplateActivator):
def generate(self, creator):
generated = super(BashActivator, self).generate(creator)
if IS_WIN:
_convert_to_unix_line_endings(generated)

def templates(self):
yield Path("activate.sh")

def as_name(self, template):
return template.stem


def _convert_to_unix_line_endings(generated):
WINDOWS_LINE_ENDING = b"\r\n"
UNIX_LINE_ENDING = b"\n"

for file_path in generated:
with open(file_path, "rb") as open_file:
content = open_file.read()

content = content.replace(WINDOWS_LINE_ENDING, UNIX_LINE_ENDING)

with open(file_path, "wb") as open_file:
open_file.write(content)

0 comments on commit 73a4461

Please sign in to comment.