rc-update add
источник:https://wiki.gentoo.org/wiki/OpenRC_to_systemd_Cheatsheet
Файл debian/rules
является make-файлом, а не sh-файлом.
Я вставил вашу функцию в make-файл, чтобы попробовать:
#!/usr/bin/make -f
# console output colors
NC='\033[0m' # No Color
RED='\033[1;31m'
GREEN='\033[1;32m'
######################### Functions #############################
function logCommandExecution()
{
commandName=$1
exitCode=$2
#echo 'command name: '${commandName}' exitCode: '${exitCode}
if [ ${exitCode} -eq 0 ]
then
printf "${GREEN}${commandName}' completed successfully${NC}\n"
else
printf "${RED}${commandName} failed with error code [${exitCode}]${NC}\n"
exit ${exitCode}
fi
}
all:
logCommandExecution Passcmd 0
logCommandExecution Failcmd 1
Затем, когда я пытаюсь выполнить это, я получаю:
$ make all
makefile:14: *** missing separator. Stop.
Так что ответ не прямой. Однако есть несколько способов запустить синтаксис оболочки в make-файлах.
Этот ответ может помочь с этим.
Думаю, проще всего поместить функцию в другой файл и вызвать ее изdebian/rules
:
make-файл:
#!/usr/bin/make -f
all:
./logCommandExecution Passcmd 0
./logCommandExecution Failcmd 1
logCommandExecution:
#!/bin/sh
# console output colors
NC='\033[0m' # No Color
RED='\033[1;31m'
GREEN='\033[1;32m'
commandName=$1
exitCode=$2
#echo 'command name: '${commandName}' exitCode: '${exitCode}
if [ ${exitCode} -eq 0 ]
then
printf "${GREEN}${commandName}' completed successfully${NC}\n"
else
printf "${RED}${commandName} failed with error code [${exitCode}]${NC}\n"
exit ${exitCode}
fi
Теперь, когда я это делаю, я получаю:
$ make
./logCommandExecution Passcmd 0
Passcmd' completed successfully
./logCommandExecution Failcmd 1
Failcmd failed with error code [1]
make: *** [makefile:5: all] Error 1