2023-07-12 00:17:44 +01:00
package stirling.software.SPDF ;
import java.io.IOException ;
import java.nio.file.Files ;
import java.nio.file.Path ;
import java.nio.file.Paths ;
2023-08-26 12:27:52 +01:00
import java.util.Collections ;
2023-07-12 00:17:44 +01:00
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.boot.SpringApplication ;
import org.springframework.boot.autoconfigure.SpringBootApplication ;
import org.springframework.core.env.Environment ;
import org.springframework.scheduling.annotation.EnableScheduling ;
2023-08-12 02:29:10 +01:00
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity ;
2023-07-12 00:17:44 +01:00
import jakarta.annotation.PostConstruct ;
import stirling.software.SPDF.utils.GeneralUtils ;
2023-08-13 01:12:29 +01:00
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity ;
2023-07-12 00:17:44 +01:00
@SpringBootApplication
2023-08-13 01:12:29 +01:00
@EnableWebSecurity ()
@EnableGlobalMethodSecurity ( prePostEnabled = true )
2023-07-19 22:11:59 +01:00
//@EnableScheduling
2023-07-12 00:17:44 +01:00
public class SPdfApplication {
@Autowired
private Environment env ;
@PostConstruct
public void init () {
// Check if the BROWSER_OPEN environment variable is set to true
String browserOpenEnv = env . getProperty ( "BROWSER_OPEN" );
boolean browserOpen = browserOpenEnv != null && browserOpenEnv . equalsIgnoreCase ( "true" );
if ( browserOpen ) {
try {
String port = env . getProperty ( "local.server.port" );
if ( port == null || port . length () == 0 ) {
port = "8080" ;
}
String url = "http://localhost:" + port ;
String os = System . getProperty ( "os.name" ). toLowerCase ();
Runtime rt = Runtime . getRuntime ();
if ( os . contains ( "win" )) {
// For Windows
rt . exec ( "rundll32 url.dll,FileProtocolHandler " + url );
}
} catch ( Exception e ) {
e . printStackTrace ();
}
}
}
public static void main ( String [] args ) {
2023-08-26 12:27:52 +01:00
SpringApplication app = new SpringApplication ( SPdfApplication . class );
if ( Files . exists ( Paths . get ( "configs/application.yml" ))) {
app . setDefaultProperties ( Collections . singletonMap ( "spring.config.location" , "file:configs/application.yml" ));
} else {
System . out . println ( "External configuration file 'configs/application.yml' does not exist. Using default configuration and environment configuration instead." );
}
app . run ( args );
2023-07-12 00:17:44 +01:00
try {
Thread . sleep ( 1000 );
} catch ( InterruptedException e ) {
// TODO Auto-generated catch block
e . printStackTrace ();
}
GeneralUtils . createDir ( "customFiles/static/" );
GeneralUtils . createDir ( "customFiles/templates/" );
GeneralUtils . createDir ( "config" );
System . out . println ( "Stirling-PDF Started." );
String port = System . getProperty ( "local.server.port" );
if ( port == null || port . length () == 0 ) {
port = "8080" ;
}
String url = "http://localhost:" + port ;
System . out . println ( "Navigate to " + url );
}
2023-04-01 21:02:54 +01:00
}