package br.gov.servicos.editor.git;
import lombok.SneakyThrows;
import lombok.experimental.FieldDefaults;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.IOException;
import static java.nio.file.Files.createTempDirectory;
import static lombok.AccessLevel.PUBLIC;
import static org.springframework.util.StringUtils.isEmpty;
@Component
@Profile("!teste")
@FieldDefaults(level = PUBLIC, makeFinal = true)
public class RepositorioConfig {
String urlRepositorioCartas;
boolean deveImportar;
boolean fazerPush;
File localRepositorioDeCartas;
@Autowired
public RepositorioConfig(@Value("${eds.cartas.repositorio}") String urlRepositorioCartas,
@Value("${fallback.eds.cartas.repositorio}") String urlFallbackRepositorioCartas,
@Value("${flags.importar}") boolean deveImportar,
@Value("${flags.git.push}") boolean fazerPush) throws IOException {
this(urlRepositorioCartas,
urlFallbackRepositorioCartas,
deveImportar,
fazerPush,
createTempDirectory("editor-de-servicos").toFile()
);
}
@SneakyThrows
public RepositorioConfig(String urlRepositorioCartas,
String urlFallbackRepositorioCartas,
boolean deveImportar,
boolean fazerPush,
File localRepositorioDeCartas
) {
this.urlRepositorioCartas = isEmpty(urlRepositorioCartas) ? urlFallbackRepositorioCartas : urlRepositorioCartas;
this.deveImportar = deveImportar;
this.fazerPush = fazerPush;
this.localRepositorioDeCartas = localRepositorioDeCartas;
this.localRepositorioDeCartas.deleteOnExit();
}
}