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' }, {"port", required_argument, 0, 'p' },
{"host", required_argument, 0, 'h' }, {"host", required_argument, 0, 'h' },
{"interface", required_argument, 0, 'i' } {"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: // Parse command-line options:
int selectedOption = 0, optionIndex = 0; int selectedOption = 0, optionIndex = 0;
@ -75,14 +90,13 @@ int main (int argc, char ** argv)
{ {
case 'p': case 'p':
{ {
printf("Using port: %s\n", optarg);
portSpecified = true; portSpecified = true;
strncpy(serverPort, optarg, HOST_NAME_MAX); strncpy(serverPort, optarg, HOST_NAME_MAX);
break; break;
} }
case 'h': case 'h':
{ {
printf("Using hostname: %s\n", optarg);
hostSpecified = true; hostSpecified = true;
strncpy(serverHostname, optarg, HOST_NAME_MAX); strncpy(serverHostname, optarg, HOST_NAME_MAX);
break; 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: // Initialize Scheme:
scm_init_guile(); scm_init_guile();