# Path: linux_story/common.py
# def get_story_file(name):
#     return os.path.join(fallback_story_files_dir, name)
# 
# Path: linux_story/step_helper_functions.py
# def unblock_cd_commands(line):
#     if line.startswith("mkdir") or \
#             (line.startswith("mv") and not line.strip() == 'mv --help'):
#         print _('Nice try! But you do not need that command for this challenge')
#         return True
#     return False
# 
# Path: linux_story/helper_functions.py
# def wrap_in_box(lines):
#     """Wrap lines in an ascii box"""
# 
#     def reduction(memo, line):
#         line_length = len(strip_formatting(line))
#         return memo if line_length < memo else line_length
# 
#     def format_line(line):
#         num_padding = max_characters - len(strip_formatting(line))
#         return "| {} |".format(line + (" " * num_padding))
# 
#     max_characters = reduce(reduction, lines, 0)
#     outer_line = " {} ".format("-" * (max_characters + 2))
# 
#     new_lines = map(format_line, lines)
# 
#     return [outer_line] + new_lines + [outer_line + "\n"]
# 
# Path: linux_story/story/challenges/CompanionMisc.py
# class StepTemplateMkdir(StepTemplateEleanorBernard):
#     TerminalClass = TerminalMkdirBernard
# 
# class StepTemplateNano(StepTemplateEleanorBernard):
#     TerminalClass = TerminalNanoBernard


from linux_story.common import get_story_file
from linux_story.step_helper_functions import unblock_cd_commands
from linux_story.helper_functions import wrap_in_box
from linux_story.story.challenges.CompanionMisc import StepTemplateMkdir, StepTemplateNano
        _("{{lb:Listen}} to what {{bb:Bernard}} has to say.")
    ]

    start_dir = "~/town/east/shed-shop"
    end_dir = "~/town/east/shed-shop"

    hints = [
        _("{{rb:Use}} {{yb:cat Bernard}} {{rb:to interact with Bernard.}}")
    ]

    commands = [
        "cat Bernard"
    ]

    deleted_items = ["~/town/east/library/Eleanor"]
    file_list = [
        {
            "path": "~/town/east/shed-shop/Eleanor",
            "contents": get_story_file("Eleanor"),
            "type": "file"
        }
    ]
    companion_speech = (
        _("Eleanor: {{Bb:\"Achoo! This place is really dusty...*sniff*\"}}")
    )

    def next(self):
        return 27, 2



# Path: linux_story/common.py
# def get_story_file(name):
#     return os.path.join(fallback_story_files_dir, name)
# 
# Path: linux_story/step_helper_functions.py
# def unblock_cd_commands(line):
#     if line.startswith("mkdir") or \
#             (line.startswith("mv") and not line.strip() == 'mv --help'):
#         print _('Nice try! But you do not need that command for this challenge')
#         return True
#     return False
# 
# Path: linux_story/helper_functions.py
# def wrap_in_box(lines):
#     """Wrap lines in an ascii box"""
# 
#     def reduction(memo, line):
#         line_length = len(strip_formatting(line))
#         return memo if line_length < memo else line_length
# 
#     def format_line(line):
#         num_padding = max_characters - len(strip_formatting(line))
#         return "| {} |".format(line + (" " * num_padding))
# 
#     max_characters = reduce(reduction, lines, 0)
#     outer_line = " {} ".format("-" * (max_characters + 2))
# 
#     new_lines = map(format_line, lines)
# 
#     return [outer_line] + new_lines + [outer_line + "\n"]
# 
# Path: linux_story/story/challenges/CompanionMisc.py
# class StepTemplateMkdir(StepTemplateEleanorBernard):
#     TerminalClass = TerminalMkdirBernard
# 
# class StepTemplateNano(StepTemplateEleanorBernard):
#     TerminalClass = TerminalNanoBernard


# Path: linux_story/story/challenges/challenge_27.py
from linux_story.common import get_story_file
from linux_story.step_helper_functions import unblock_cd_commands
from linux_story.helper_functions import wrap_in_box
from linux_story.story.challenges.CompanionMisc import StepTemplateMkdir, StepTemplateNano

        _("{{lb:Listen}} to what {{bb:Bernard}} has to say.")
    ]

    start_dir = "~/town/east/shed-shop"
    end_dir = "~/town/east/shed-shop"

    hints = [
        _("{{rb:Use}} {{yb:cat Bernard}} {{rb:to interact with Bernard.}}")
    ]

    commands = [
        "cat Bernard"
    ]

    deleted_items = ["~/town/east/library/Eleanor"]
    file_list = [
        {
            "path": "~/town/east/shed-shop/Eleanor",
            "contents": get_story_file("Eleanor"),
            "type": "file"
        }
    ]
    companion_speech = (
        _("Eleanor: {{Bb:\"Achoo! This place is really dusty...*sniff*\"}}")
    )

    def next(self):
        return 27, 2



class Step2(StepTemplateNano):