왜?

42 과제의 보너스 파트는 파일명에 _bonus를 붙여야 한다는 규칙이 있습니다.

어떻게?

include와 include guard, 42header를 보너스에 맞게 바꿔주는 파이썬 스크립트입니다. bonus.py

import sys

print(
  ''
  .join(
    map(
      lambda line:
        line
          .replace(".h\\"\\n", "_bonus.h\\"\\n")
          .replace("_H\\n", "_BONUS_H\\n")
          .replace(".h      ", "_bonus.h"),
      sys.stdin.readlines()
    )
  ),
  end=''
)

그리고 모든 .c, .h 파일에 대해 bonus.py를 적용시킨 _bonus.c, _bonus.h를 만드는 쉘 스크립트입니다.

#!/bin/sh

set -e

find . -name "*.c" | sed s/\\\\.c$// | xargs -I {} sh -c "python3 ./bonus.py < {}.c > {}_bonus.c"
find . -name "*.h" | sed s/\\\\.h$// | xargs -I {} sh -c "python3 ./bonus.py < {}.h > {}_bonus.h"

두 파일을 저장한 후 해당 쉘 스크립트를 실행하면 보너스 파일이 생성됩니다.