home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / nn.tar / nn-6.5.1 / prefix.c < prev    next >
C/C++ Source or Header  |  1995-04-29  |  4KB  |  188 lines

  1. #include "config.h"
  2.  
  3. /* prefix.c */
  4.  
  5. static void make_nn_prefix __APROTO((int flag, FILE *f));
  6.  
  7.  
  8. import char *home_directory;
  9. import char *news_directory;
  10. import char *news_lib_directory;
  11. import char *master_directory;
  12. import char *help_directory;
  13. import char *bin_directory;
  14. import char *db_directory;
  15. import char *db_data_directory;
  16. import char *tmp_directory;
  17. import char *log_file;
  18.  
  19. #define SHELL_PREFIX    0x01
  20. #define FULL_PREFIX    0x02
  21. #define CONF_PREFIX    0x04
  22.  
  23. static void
  24. make_nn_prefix(flag, f)
  25. int flag;
  26. FILE *f;
  27. {
  28.     char nl;
  29. #ifdef INEWS_PATH
  30.     char buf[FILENAME], *p;
  31. #endif
  32.  
  33.     nl = (flag & CONF_PREFIX) ? TAB : NL;
  34.  
  35.     if (flag & SHELL_PREFIX) {
  36. #ifdef AVOID_SHELL_EXEC
  37.     fprintf(f, ":\n");
  38. #else
  39.     fprintf(f, "#!%s\n", SHELL);
  40. #endif
  41. #ifdef PUT_TIMESTAMP_IN_SCRIPTS
  42.     fprintf(f, "\n# Generated by nn release %s at %s\n\n",
  43.            version_id, date_time((time_t)0));
  44. #else
  45.     fprintf(f, "\n# Generated by nn release %s\n\n", version_id);
  46. #endif
  47.     }
  48.     fprintf(f, "VERSION=\"%s\"\n", version_id);
  49.  
  50. #ifdef INEWS_PATH
  51.     strcpy(buf, INEWS_PATH);
  52.     fprintf(f, "INEWS=\"%s\"\n", buf);
  53.     if ((p = strrchr(buf, '/')) != NULL) *p = NUL;
  54.     fprintf(f, "INEWS_DIR=\"%s\"\n", buf);
  55. #else
  56.     fprintf(f, "INEWS=\"%s/inews\"\n", news_lib_directory);
  57.     fprintf(f, "INEWS_DIR=\"%s\"\n", news_lib_directory);
  58. #endif
  59.  
  60. #ifndef OLD_AWK
  61. #define OLD_AWK "awk"
  62. #endif
  63.     fprintf(f, "AWK=\"%s\"\n", OLD_AWK);
  64.  
  65. #ifdef NOV
  66.     fprintf(f, "NOV=true%c", nl);
  67. #else
  68.     fprintf(f, "NOV=false%c", nl);
  69. #endif
  70.  
  71. #ifdef NNTP
  72.     fprintf(f, "NNTP=true%c", nl);
  73.     fprintf(f, "ACTIVE=%s/ACTIVE\n", db_directory);
  74. #ifndef CACHE_DIRECTORY
  75. #define CACHE_DIRECTORY ""
  76. #endif
  77.     fprintf(f, "NNTPCACHE=%s\n", CACHE_DIRECTORY);
  78. #else
  79.     fprintf(f, "NNTP=false%c", nl);
  80.     fprintf(f, "ACTIVE=%s/active\n", news_lib_directory);
  81. #endif
  82.     fprintf(f, "LOG=%s\n", log_file);
  83.     fprintf(f, "TMP=${TMPDIR-%s}\n", tmp_directory);
  84.     fprintf(f, "DB=%s\n", db_directory);
  85.     fprintf(f, "BIN=%s\n", bin_directory);
  86.     fprintf(f, "LIB=%s\n", lib_directory);
  87.  
  88.     if (flag & (FULL_PREFIX|CONF_PREFIX)) {
  89.     fprintf(f, "RECMAIL=\"%s\"\n", REC_MAIL);
  90.     fprintf(f, "SPOOL=%s\n", news_directory);
  91.     fprintf(f, "NLIB=%s\n", news_lib_directory);
  92.     fprintf(f, "MASTER=%s\n", master_directory);
  93.     fprintf(f, "HELP=%s\n", help_directory);
  94.     fprintf(f, "DBDATA=\"%s\"\n", db_data_directory ? db_data_directory : "");
  95. #ifdef DB_LONG_NAMES
  96.     fprintf(f, "DBSHORTNAME=false\n");
  97. #else
  98.     fprintf(f, "DBSHORTNAME=true\n");
  99. #endif
  100.     fprintf(f, "OWNER=%s%c", OWNER, nl);
  101.     fprintf(f, "GROUP=%s\n", GROUP);
  102.     }
  103.  
  104. #ifdef AUTHORIZE
  105.     fprintf(f, "AUTH=true\n");
  106. #else
  107.     fprintf(f, "AUTH=false\n");
  108. #endif
  109.  
  110. #ifdef NO_X_NEWSREADER
  111.     fprintf(f, "XNEWSREADER=false\n");
  112. #else
  113.     fprintf(f, "XNEWSREADER=true\n");
  114. #endif
  115.  
  116. #ifdef INEWS_IS_FAST
  117.     fprintf(f, "INEWSWAIT=0\n");
  118. #else
  119.     fprintf(f, "INEWSWAIT=60\n");
  120. #endif
  121.  
  122. #ifdef SYNCHRONOUS_POSTING
  123.     fprintf(f, "SYNCHRO=true\n");
  124. #else
  125.     fprintf(f, "SYNCHRO=false\n");
  126. #endif
  127.  
  128.     if (flag & FULL_PREFIX) {
  129.     fprintf(f, "UMAN_DIR=\"%s\"\n", USER_MAN_DIR);
  130.     fprintf(f, "UMAN_SECT=\"%s\"\n", USER_MAN_SECTION);
  131.  
  132.     fprintf(f, "SMAN_DIR=\"%s\"\n", SYS_MAN_DIR);
  133.     fprintf(f, "SMAN_SECT=\"%s\"\n", SYS_MAN_SECTION);
  134.  
  135.     fprintf(f, "DMAN_DIR=\"%s\"\n", DAEMON_MAN_DIR);
  136.     fprintf(f, "DMAN_SECT=\"%s\"\n", DAEMON_MAN_SECTION);
  137.     }
  138.  
  139.     if (flag & SHELL_PREFIX)
  140.     fprintf(f, "\n# ---- end of prefix\n\n");
  141. }
  142.  
  143. int
  144. main(argc, argv)
  145. int argc;
  146. char *argv[];
  147. {
  148.     if (argc != 2) exit(2);
  149.  
  150.     /* init_global(I_AM_MASTER); */
  151.     init_global();
  152.  
  153.     switch (argv[1][0]) {
  154.      case 'f':
  155.     make_nn_prefix(SHELL_PREFIX|FULL_PREFIX, stdout);
  156.     break;
  157.      case 'p':
  158.     make_nn_prefix(SHELL_PREFIX, stdout);
  159.     break;
  160.      case 'c':
  161.     make_nn_prefix(CONF_PREFIX, stdout);
  162.     break;
  163.      default:
  164.     exit(1);
  165.     }
  166.     exit(0);
  167. }
  168.  
  169. void
  170. nn_exit(n)
  171. int n;
  172. {
  173.     exit(n);
  174. }
  175.  
  176. /*VARARGS*/
  177. void nn_exitmsg()
  178. {
  179.     exit(0);
  180. }
  181.  
  182. #ifdef HAVE_JOBCONTROL
  183. int suspend_nn()
  184. {
  185.   return 0;
  186. }
  187. #endif
  188.