2023-07-12 01:17:44 +02:00
package stirling.software.SPDF ;
import java.nio.file.Files ;
import java.nio.file.Paths ;
2023-08-26 13:27:52 +02:00
import java.util.Collections ;
2023-07-12 01:17:44 +02: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 ;
2023-08-27 01:39:22 +02:00
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity ;
2023-08-12 03:29:10 +02:00
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity ;
2023-07-12 01:17:44 +02:00
import jakarta.annotation.PostConstruct ;
2023-08-26 18:30:49 +02:00
import stirling.software.SPDF.config.ConfigInitializer ;
2023-08-27 01:39:22 +02:00
import stirling.software.SPDF.utils.GeneralUtils ;
2023-07-12 01:17:44 +02:00
@SpringBootApplication
2023-08-13 02:12:29 +02:00
@EnableWebSecurity ( )
@EnableGlobalMethodSecurity ( prePostEnabled = true )
2023-07-19 23:11:59 +02:00
//@EnableScheduling
2023-07-12 01:17:44 +02: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 13:27:52 +02:00
SpringApplication app = new SpringApplication ( SPdfApplication . class ) ;
2023-08-26 18:30:49 +02:00
app . addInitializers ( new ConfigInitializer ( ) ) ;
2023-08-26 23:33:23 +02:00
if ( Files . exists ( Paths . get ( " configs/settings.yml " ) ) ) {
app . setDefaultProperties ( Collections . singletonMap ( " spring.config.location " , " file:configs/settings.yml " ) ) ;
2023-08-26 13:27:52 +02:00
} else {
2023-08-26 23:33:23 +02:00
System . out . println ( " External configuration file 'configs/settings.yml' does not exist. Using default configuration and environment configuration instead. " ) ;
2023-08-26 13:27:52 +02:00
}
app . run ( args ) ;
2023-07-12 01:17:44 +02: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 22:02:54 +02:00
}