Как я могу аккуратно включить Ruby-код для записи в ловушку git post-commit в коде C? - PullRequest
0 голосов
/ 30 июня 2011

У меня есть некоторый C-код, который записывает код Ruby в хук post-commit Git. В настоящее время это делается путем встраивания кода Ruby непосредственно в строку C, например ...

    char * post_commit_hook = <<Ruby code here>>

Затем он записывается непосредственно в .git / hooks / post-commit посредством fprintf.

Это несколько уродливо и сложно поддерживать IMO, и мне было интересно, есть ли какой-нибудь способ перенести код Ruby в его собственный файл. Я пытался найти способы заставить GNU make делать замену текста на лету, но почему-то это все равно что взломать. У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 30 июня 2011

Поместите ваш код в свой собственный файл и сгенерируйте заголовок C из него с помощью make и языка сценариев по вашему выбору.

Например, следующее make правило

hook.h : hook.rb
    ./rb2h POST_COMMIT_HOOK < $< > $@

вместе с этим сценарием Perl rb2h

#!perl -w
print "#define $ARGV[0] \\\n";
chomp, s/\\/\\\\/g, s/"/\\"/g, print "\t\"$_\" \\\n" for <STDIN>;
print "\t\"\"\n"

создаст файл hook.h, который определяет макрос POST_COMMIT_HOOK, содержащий ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...