home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume22 / nn6.4 / part16 / prefix.c < prev   
C/C++ Source or Header  |  1990-06-07  |  3KB  |  134 lines

  1. #include "config.h"
  2.  
  3. import char *home_directory;
  4. import char *news_directory;
  5. import char *news_lib_directory;
  6. import char *master_directory;
  7. import char *help_directory;
  8. import char *bin_directory;
  9. import char *db_directory;
  10. import char *db_data_directory;
  11. import char *tmp_directory;
  12. import char *log_file;
  13.  
  14. #define SHELL_PREFIX    0x01
  15. #define FULL_PREFIX    0x02
  16. #define CONF_PREFIX    0x04
  17.  
  18. static make_nn_prefix(flag, f)
  19. int flag;
  20. FILE *f;
  21. {
  22.     char nl;
  23.     char buf[FILENAME], *p;
  24.     
  25.     nl = (flag & CONF_PREFIX) ? TAB : NL;
  26.  
  27.     if (flag & SHELL_PREFIX) {
  28. #ifdef AVOID_SHELL_EXEC
  29.     fprintf(f, ":\n");
  30. #else
  31.     fprintf(f, "#!/bin/sh\n");
  32. #endif
  33.     fprintf(f, "\n# Generated by nn release %s at %s\n\n",
  34.            version_id, date_time((time_t)0));
  35.     }
  36.     fprintf(f, "VERSION=\"%s\"\n", version_id);
  37.  
  38. #ifdef INEWS_PATH
  39.     strcpy(buf, INEWS_PATH);
  40.     fprintf(f, "INEWS=\"%s\"\n", buf);
  41.     if ((p = strrchr(buf, '/')) != NULL) *p = NUL;
  42.     fprintf(f, "INEWS_DIR=\"%s\"\n", buf);
  43. #else
  44.     fprintf(f, "INEWS=\"%s/inews\"\n", news_lib_directory);
  45.     fprintf(f, "INEWS_DIR=\"%s\"\n", news_lib_directory);
  46. #endif
  47.  
  48. #ifndef OLD_AWK
  49. #define OLD_AWK "awk"
  50. #endif
  51.     fprintf(f, "AWK=\"%s\"\n", OLD_AWK);
  52.  
  53. #ifdef NNTP
  54.     fprintf(f, "NNTP=true%c", nl);
  55.     fprintf(f, "ACTIVE=%s/ACTIVE\n", db_directory);
  56. #ifndef CACHE_DIRECTORY
  57. #define CACHE_DIRECTORY ""
  58. #endif
  59.     fprintf(f, "NNTPCACHE=%s\n", CACHE_DIRECTORY);
  60. #else
  61.     fprintf(f, "NNTP=false%c", nl);
  62.     fprintf(f, "ACTIVE=%s/active\n", news_lib_directory);
  63. #endif
  64.     fprintf(f, "LOG=%s\n", log_file);
  65.     fprintf(f, "TMP=${TMPDIR-%s}\n", tmp_directory);
  66.     fprintf(f, "DB=%s\n", db_directory);
  67.     fprintf(f, "BIN=%s\n", bin_directory);
  68.     fprintf(f, "LIB=%s\n", lib_directory);
  69.  
  70.     if (flag & (FULL_PREFIX|CONF_PREFIX)) {
  71.     fprintf(f, "RECMAIL=\"%s\"\n", REC_MAIL);
  72.     fprintf(f, "SPOOL=%s\n", news_directory);
  73.     fprintf(f, "NLIB=%s\n", news_lib_directory);
  74.     fprintf(f, "MASTER=%s\n", master_directory);
  75.     fprintf(f, "HELP=%s\n", help_directory);
  76.     fprintf(f, "DBDATA=\"%s\"\n", db_data_directory ? db_data_directory : "");
  77.     fprintf(f, "OWNER=%s%c", OWNER, nl);
  78.     fprintf(f, "GROUP=%s\n", GROUP);
  79.     }
  80.  
  81.     if (FULL_PREFIX) {
  82.     fprintf(f, "UMAN_DIR=\"%s\"\n", USER_MAN_DIR);
  83.     fprintf(f, "UMAN_SECT=\"%s\"\n", USER_MAN_SECTION);
  84.  
  85.     fprintf(f, "SMAN_DIR=\"%s\"\n", SYS_MAN_DIR);
  86.     fprintf(f, "SMAN_SECT=\"%s\"\n", SYS_MAN_SECTION);
  87.  
  88.     fprintf(f, "DMAN_DIR=\"%s\"\n", DAEMON_MAN_DIR);
  89.     fprintf(f, "DMAN_SECT=\"%s\"\n", DAEMON_MAN_SECTION);
  90.     }
  91.  
  92.     if (flag & SHELL_PREFIX)
  93.     fprintf(f, "\n# ---- end of prefix\n\n");
  94. }
  95.  
  96. main(argc, argv)
  97. int argc;
  98. char *argv[];
  99. {
  100.     if (argc != 2) exit(2);
  101.  
  102.     init_global(I_AM_MASTER);
  103.  
  104.     switch (argv[1][0]) {
  105.      case 'f':
  106.     make_nn_prefix(SHELL_PREFIX|FULL_PREFIX, stdout);
  107.     break;
  108.      case 'p':
  109.     make_nn_prefix(SHELL_PREFIX, stdout);
  110.     break;
  111.      case 'c':
  112.     make_nn_prefix(CONF_PREFIX, stdout);
  113.     break;
  114.      default:
  115.     exit(1);
  116.     }
  117.     exit(0);
  118. }
  119.  
  120. nn_exit(n)
  121. {
  122.     exit(n);
  123. }
  124.  
  125. user_error()
  126. {
  127.     exit(8);
  128. }
  129.  
  130. #ifdef HAVE_JOBCONTROL
  131. suspend_nn()
  132. {}
  133. #endif
  134.