#include "config.h"
#include "citadel_dirs.h"
-#define MAXSETUP 5 /* How many setup questions to ask */
+#define MAXSETUP 6 /* How many setup questions to ask */
#define UI_TEXT 0 /* Default setup type -- text only */
#define UI_DIALOG 2 /* Use the 'dialog' program */
char setup_directory[PATH_MAX];
int using_web_installer = 0;
int enable_home = 1;
+char admin_pass[SIZ];
+char admin_cmd[SIZ];
char *setup_titles[] =
{
"Citadel Home Directory",
"System Administrator",
+ "Administrator Password",
"Citadel User ID",
"Server IP address",
"Server port number",
"you). When an account is created with this name, it will\n"
"automatically be given administrator-level access.\n",
+"Enter a password for the system administrator. When setup\n"
+"completes it will attempt to create the administrator user\n"
+"and set the password specified here.\n",
+
"Citadel needs to run under its own user ID. This would\n"
"typically be called \"citadel\", but if you are running Citadel\n"
"as a public BBS, you might also call it \"bbs\" or \"guest\".\n"
break;
case 2:
+ if (setup_type == UI_SILENT)
+ {
+ if (getenv("SYSADMIN_PW")) {
+ strcpy(admin_pass, getenv("SYSADMIN_PW"));
+ }
+ }
+ else {
+ set_str_val(curr, admin_pass);
+ }
+ break;
+
+ case 3:
if (setup_type == UI_SILENT)
{
if (getenv("CITADEL_UID")) {
}
break;
- case 3:
+ case 4:
if (setup_type == UI_SILENT)
{
if (getenv("IP_ADDR")) {
}
break;
- case 4:
+ case 5:
if (setup_type == UI_SILENT)
{
if (getenv("CITADEL_PORT")) {
}
break;
- case 5:
+ case 6:
if (setup_type == UI_SILENT)
{
if (getenv("ENABLE_UNIX_AUTH")) {
}
if (test_server() == 0) {
+ snprintf (admin_cmd, sizeof(admin_cmd), "%s/sendcommand \"CREU %s|%s\"", ctdl_utilbin_dir, config.c_sysadm, admin_pass);
+ system(admin_cmd);
important_message("Setup finished",
"Setup of the Citadel server is complete.\n"
"If you will be using WebCit, please run its\n"