Hex Artifact Content
Logged in as anonymous

Artifact 4152cabb79b8c3d28a27823d1a3840d4cbd26d0e3b14f028b91009237b1e3598:


0000: 53 43 52 49 50 54 53 3a 3d 24 7b 3a 21 66 69 6e  SCRIPTS:=${:!fin
0010: 64 20 2f 65 74 63 2f 6d 72 63 20 2d 6e 61 6d 65  d /etc/mrc -name
0020: 20 27 2a 2e 73 65 72 76 69 63 65 2e 6d 6b 27 21   '*.service.mk'!
0030: 3a 53 2f 5e 5c 2f 65 74 63 5c 2f 6d 72 63 5c 2f  :S/^\/etc\/mrc\/
0040: 2f 2f 3a 53 2f 2e 73 65 72 76 69 63 65 2e 6d 6b  //:S/.service.mk
0050: 24 2f 2f 7d 0a 0a 2e 69 6e 63 6c 75 64 65 20 22  $//}...include "
0060: 73 74 61 72 74 65 72 2e 6d 6b 22 0a 0a 23 20 43  starter.mk"..# C
0070: 72 65 61 74 65 20 73 65 72 76 69 63 65 20 74 61  reate service ta
0080: 72 67 65 74 73 0a 2e 66 6f 72 20 73 65 72 76 69  rgets..for servi
0090: 63 65 20 69 6e 20 24 7b 53 43 52 49 50 54 53 7d  ce in ${SCRIPTS}
00a0: 0a 2e 09 69 6e 63 6c 75 64 65 20 22 24 7b 73 65  ...include "${se
00b0: 72 76 69 63 65 7d 2e 73 65 72 76 69 63 65 2e 6d  rvice}.service.m
00c0: 6b 22 0a 0a 23 20 53 65 74 20 44 41 45 4d 4f 4e  k"..# Set DAEMON
00d0: 20 64 65 66 61 75 6c 74 73 0a 44 41 45 4d 4f 4e   defaults.DAEMON
00e0: 5f 24 7b 73 65 72 76 69 63 65 7d 5f 43 57 44 3f  _${service}_CWD?
00f0: 3d 09 2f 0a 44 41 45 4d 4f 4e 5f 24 7b 73 65 72  =./.DAEMON_${ser
0100: 76 69 63 65 7d 5f 45 4e 41 42 4c 45 3f 3d 09 6e  vice}_ENABLE?=.n
0110: 6f 0a 44 41 45 4d 4f 4e 5f 24 7b 73 65 72 76 69  o.DAEMON_${servi
0120: 63 65 7d 5f 55 53 45 52 3f 3d 09 72 6f 6f 74 0a  ce}_USER?=.root.
0130: 44 41 45 4d 4f 4e 5f 24 7b 73 65 72 76 69 63 65  DAEMON_${service
0140: 7d 5f 47 52 4f 55 50 3f 3d 09 77 68 65 65 6c 0a  }_GROUP?=.wheel.
0150: 0a 2e 09 69 66 20 21 64 65 66 69 6e 65 64 28 44  ...if !defined(D
0160: 41 45 4d 4f 4e 5f 24 7b 73 65 72 76 69 63 65 7d  AEMON_${service}
0170: 5f 43 4f 4d 4d 41 4e 44 29 0a 2e 09 09 77 61 72  _COMMAND)....war
0180: 6e 69 6e 67 20 4d 52 43 3e 20 53 65 72 76 69 63  ning MRC> Servic
0190: 65 20 5b 24 7b 73 65 72 76 69 63 65 7d 5d 20 64  e [${service}] d
01a0: 65 66 75 6e 63 74 3a 20 6e 6f 20 43 4f 4d 4d 41  efunct: no COMMA
01b0: 4e 44 20 73 70 65 63 69 66 69 65 64 0a 2e 09 65  ND specified...e
01c0: 6c 73 65 0a 0a 23 20 53 65 72 76 69 63 65 20 63  lse..# Service c
01d0: 72 65 61 74 69 6f 6e 20 74 61 72 67 65 74 73 0a  reation targets.
01e0: 2e 09 09 69 66 20 21 74 61 72 67 65 74 28 24 7b  ...if !target(${
01f0: 73 65 72 76 69 63 65 7d 29 0a 24 7b 73 65 72 76  service}).${serv
0200: 69 63 65 7d 3a 20 24 7b 73 65 72 76 69 63 65 7d  ice}: ${service}
0210: 5f 65 78 69 74 20 24 7b 5f 53 45 52 56 49 43 45  _exit ${_SERVICE
0220: 7d 20 24 7b 73 65 72 76 69 63 65 7d 5f 61 66 74  } ${service}_aft
0230: 65 72 0a 2e 09 09 65 6e 64 69 66 0a 23 0a 23 20  er....endif.#.# 
0240: 53 65 72 76 69 63 65 20 70 61 72 74 20 74 68 61  Service part tha
0250: 74 20 72 75 6e 73 20 61 66 74 65 72 20 64 61 65  t runs after dae
0260: 6d 6f 6e 69 7a 61 74 69 6f 6e 2c 20 77 65 20 61  monization, we a
0270: 72 65 20 6a 75 73 74 20 74 75 72 6e 69 6e 67 20  re just turning 
0280: 74 68 65 6d 0a 23 20 74 6f 20 6d 61 63 72 6f 73  them.# to macros
0290: 20 61 6e 64 20 6d 61 6b 69 6e 67 20 73 75 72 65   and making sure
02a0: 20 74 68 65 79 20 65 78 69 73 74 0a 24 7b 73 65   they exist.${se
02b0: 72 76 69 63 65 7d 5f 61 66 74 65 72 3a 20 2e 55  rvice}_after: .U
02c0: 53 45 0a 0a 23 20 53 65 72 76 69 63 65 20 73 74  SE..# Service st
02d0: 61 74 75 73 20 74 61 72 67 65 74 73 0a 2e 09 09  atus targets....
02e0: 69 66 20 21 74 61 72 67 65 74 28 24 7b 73 65 72  if !target(${ser
02f0: 76 69 63 65 7d 5f 73 74 61 74 75 73 29 0a 24 7b  vice}_status).${
0300: 73 65 72 76 69 63 65 7d 5f 73 74 61 74 75 73 3a  service}_status:
0310: 20 24 7b 5f 53 45 52 56 49 43 45 5f 53 54 41 54   ${_SERVICE_STAT
0320: 55 53 7d 0a 2e 09 09 65 6e 64 69 66 0a 0a 23 20  US}....endif..# 
0330: 53 65 72 76 69 63 65 20 65 78 69 74 20 74 61 72  Service exit tar
0340: 67 65 74 73 0a 2e 09 09 69 66 20 21 74 61 72 67  gets....if !targ
0350: 65 74 28 24 7b 73 65 72 76 69 63 65 7d 5f 65 78  et(${service}_ex
0360: 69 74 29 0a 24 7b 73 65 72 76 69 63 65 7d 5f 65  it).${service}_e
0370: 78 69 74 3a 20 24 7b 5f 53 45 52 56 49 43 45 5f  xit: ${_SERVICE_
0380: 45 58 49 54 7d 20 24 7b 44 41 45 4d 4f 4e 5f 24  EXIT} ${DAEMON_$
0390: 7b 73 65 72 76 69 63 65 7d 5f 44 45 50 53 3a 53  {service}_DEPS:S
03a0: 2f 24 2f 5f 65 78 69 74 2f 7d 0a 2e 09 09 65 6e  /$/_exit/}....en
03b0: 64 69 66 0a 0a 44 41 45 4d 4f 4e 5f 45 58 49 54  dif..DAEMON_EXIT
03c0: 3a 20 24 7b 73 65 72 76 69 63 65 7d 5f 65 78 69  : ${service}_exi
03d0: 74 0a 2e 09 65 6e 64 69 66 0a 2e 65 6e 64 66 6f  t...endif..endfo
03e0: 72 0a 0a 2e 4d 41 49 4e 3a 20 24 7b 53 43 52 49  r...MAIN: ${SCRI
03f0: 50 54 53 7d 20 24 7b 54 41 52 47 45 54 53 7d 0a  PTS} ${TARGETS}.
0400: 0a 2e 50 48 4f 4e 59 3a 20 24 7b 53 43 52 49 50  ..PHONY: ${SCRIP
0410: 54 53 7d 20 24 7b 4f 54 48 45 52 5f 54 41 52 47  TS} ${OTHER_TARG
0420: 45 54 53 7d 20 24 7b 54 41 52 47 45 54 53 7d 0a  ETS} ${TARGETS}.
0430: 0a 2e 75 6e 64 65 66 20 53 43 52 49 50 54 53 0a  ..undef SCRIPTS.