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 462c4a0
Showing 1 changed file with 20 additions and 0 deletions.
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.util.path import Path
from virtualenv.info import IS_WIN

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 462c4a0

Please sign in to comment.