Renderer/launcher/src/main.c
austin 418ff60f6a
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
launcher fixes
2024-08-16 10:25:05 -04:00

76 lines
1.8 KiB
C

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#define MAX_PATH_SIZE 250
#define LOG_HOLDER_SIZE 500
void logVar(char * message, char * var);
void redirectStdout();
int main(){
redirectStdout();
char currentWorkingDirectory[MAX_PATH_SIZE];
if(getcwd(currentWorkingDirectory,sizeof(currentWorkingDirectory)) != NULL){
} else {
printf("Failed to get current working directory!\n");
fflush(stdout);
return 1;
}
//printf("CWD: %s\n",currentWorkingDirectory);
//fflush(stdout);
//get java location
char javaPath[MAX_PATH_SIZE + 50];
strcpy(javaPath,currentWorkingDirectory);
strcat(javaPath,"\\jdk\\bin\\java.exe\0");
//get jar location
char jarPath[MAX_PATH_SIZE + 50];
strcpy(jarPath,"\"");
strcat(jarPath,currentWorkingDirectory);
strcat(jarPath,"\\engine.jar");
strcat(jarPath,"\"");
logVar("javaPath: ",javaPath);
logVar("jarPath: ",jarPath);
printf("%s\n",jarPath);
fflush(stdout);
int execVal = execlp(javaPath,"java","-jar",jarPath, (char *)NULL);
printf("Exec code: %d\n",execVal);
perror("execlp");
fflush(stdout);
fflush(stderr);
return 0;
}
void redirectStdout(){
int outfd = open("stdout.txt", O_CREAT|O_WRONLY|O_TRUNC, 0644);
if (!outfd)
{
printf("Error opening stdout redirect");
fflush(stdout);
}
dup2(outfd, 1); // replace stdout
close(outfd);
int outerrfd = open("stderr.txt", O_CREAT|O_WRONLY|O_TRUNC, 0644);
if (!outerrfd)
{
printf("Error opening stdout redirect");
fflush(stderr);
}
dup2(outerrfd, fileno(stderr)); // replace stderr
close(outerrfd);
}
char logHolder[LOG_HOLDER_SIZE];
void logVar(char * message, char * var){
strcpy(logHolder,message);
strcat(logHolder,var);
printf("%s\n",logHolder);
fflush(stdout);
}