Added environment variable handling.

* source/server/main.c (main):
- Added environment variable handling.
- Moved "Using" messages to after both command line arguments and enviroment variables are checked and applied.
- Command-line arguments override enviroment variables.
This commit is contained in:
Barra Ó Catháin 2024-03-19 23:20:08 +00:00
parent 9660fd4c60
commit 0a2d03fdaa
1 changed files with 34 additions and 5 deletions

View File

@ -63,9 +63,24 @@ int main (int argc, char ** argv)
{"port", required_argument, 0, 'p' },
{"host", required_argument, 0, 'h' },
{"interface", required_argument, 0, 'i' }
};
};
// Check environment variables:
if (getenv("SILVERMUD_SERVER_PORT") != NULL)
{
portSpecified = true;
strncpy(serverPort, getenv("SILVERMUD_SERVER_HOST"), HOST_NAME_MAX);
}
if (getenv("SILVERMUD_SERVER_HOST") != NULL)
{
hostSpecified = true;
strncpy(serverHostname, getenv("SILVERMUD_SERVER_HOST"), HOST_NAME_MAX);
}
if (getenv("SILVERMUD_SERVER_INTERFACE") != NULL)
{
interfaceSpecified = true;
strncpy(serverInterface, getenv("SILVERMUD_SERVER_INTERFACE"), HOST_NAME_MAX);
}
// Parse command-line options:
int selectedOption = 0, optionIndex = 0;
@ -75,14 +90,13 @@ int main (int argc, char ** argv)
{
case 'p':
{
printf("Using port: %s\n", optarg);
portSpecified = true;
strncpy(serverPort, optarg, HOST_NAME_MAX);
break;
}
case 'h':
{
printf("Using hostname: %s\n", optarg);
hostSpecified = true;
strncpy(serverHostname, optarg, HOST_NAME_MAX);
break;
@ -96,7 +110,22 @@ int main (int argc, char ** argv)
}
}
}
if (portSpecified)
{
printf("Using port: %s\n", serverPort);
}
if (hostSpecified)
{
printf("Using hostname: %s\n", serverHostname);
}
if (interfaceSpecified)
{
printf("Using interface: %s\n", serverInterface);
}
// Initialize Scheme:
scm_init_guile();