<commit_before>package config

import (
	"os"
	"sync"
	"sync/atomic"
)

//Config é a estrutura que tem todas as configurações da aplicação
type Config struct {
	APIPort             string
	Version             string
	SEQUrl              string
	SEQAPIKey           string
	EnableRequestLog    bool
	EnablePrintRequest  bool
	Environment         string
	SEQDomain           string
	ApplicationName     string
	URLBBRegisterBoleto string
	URLBBToken          string
	MockMode            bool
	AppURL              string
	ElasticURL          string
	MongoURL            string
}

var cnf Config
var scnf sync.Once
var running uint64
var mutex sync.Mutex

//Get retorna o objeto de configurações da aplicação
func Get() Config {
	return cnf
}
func Install(mockMode bool) {
	atomic.StoreUint64(&running, 0)
	cnf = Config{
		APIPort:             ":" + os.Getenv("API_PORT"),
		Version:             os.Getenv("API_VERSION"),
		SEQUrl:              os.Getenv("SEQ_URL"),                        //Pegar o SEQ de dev
		SEQAPIKey:           os.Getenv("SEQ_API_KEY"),                    //Staging Key:
		EnableRequestLog:    os.Getenv("ENABLE_REQUEST_LOG") == "true",   // Log a cada request no SEQ
		EnablePrintRequest:  os.Getenv("ENABLE_PRINT_REQUEST") == "true", // Imprime algumas informacoes da request no console
		Environment:         os.Getenv("ENVIRONMENT"),
		SEQDomain:           "One",
		ApplicationName:     "BoletoOnline",
		URLBBRegisterBoleto: os.Getenv("URL_BB_REGISTER_BOLETO"),
		URLBBToken:          os.Getenv("URL_BB_TOKEN"),
		MockMode:            mockMode,
		AppURL:              os.Getenv("APP_URL"),
		ElasticURL:          os.Getenv("ELASTIC_URL"),
		MongoURL:            os.Getenv("MONGODB_URL"),
	}
}

//IsRunning verifica se a aplicação tem que aceitar requisições
func IsRunning() bool {
	return atomic.LoadUint64(&running) > 0
}

//Stop faz a aplicação parar de receber requisições
func Stop() {
	atomic.StoreUint64(&running, 1)
}
<commit_msg>:art: adiciona flag de modo dev nas configurações<commit_after>package config

import (
	"os"
	"sync"
	"sync/atomic"
)

//Config é a estrutura que tem todas as configurações da aplicação
type Config struct {
	APIPort             string
	Version             string
	SEQUrl              string
	SEQAPIKey           string
	EnableRequestLog    bool
	EnablePrintRequest  bool
	Environment         string
	SEQDomain           string
	ApplicationName     string
	URLBBRegisterBoleto string
	URLBBToken          string
	MockMode            bool
	DevMode             bool
	AppURL              string
	ElasticURL          string
	MongoURL            string
}

var cnf Config
var scnf sync.Once
var running uint64
var mutex sync.Mutex

//Get retorna o objeto de configurações da aplicação
func Get() Config {
	return cnf
}
func Install(mockMode, devMode bool) {
	atomic.StoreUint64(&running, 0)
	cnf = Config{
		APIPort:             ":" + os.Getenv("API_PORT"),
		Version:             os.Getenv("API_VERSION"),
		SEQUrl:              os.Getenv("SEQ_URL"),                        //Pegar o SEQ de dev
		SEQAPIKey:           os.Getenv("SEQ_API_KEY"),                    //Staging Key:
		EnableRequestLog:    os.Getenv("ENABLE_REQUEST_LOG") == "true",   // Log a cada request no SEQ
		EnablePrintRequest:  os.Getenv("ENABLE_PRINT_REQUEST") == "true", // Imprime algumas informacoes da request no console
		Environment:         os.Getenv("ENVIRONMENT"),
		SEQDomain:           "One",
		ApplicationName:     "BoletoOnline",
		URLBBRegisterBoleto: os.Getenv("URL_BB_REGISTER_BOLETO"),
		URLBBToken:          os.Getenv("URL_BB_TOKEN"),
		MockMode:            mockMode,
		AppURL:              os.Getenv("APP_URL"),
		ElasticURL:          os.Getenv("ELASTIC_URL"),
		DevMode:             devMode,
		MongoURL:            os.Getenv("MONGODB_URL"),
	}
}

//IsRunning verifica se a aplicação tem que aceitar requisições
func IsRunning() bool {
	return atomic.LoadUint64(&running) > 0
}

//Stop faz a aplicação parar de receber requisições
func Stop() {
	atomic.StoreUint64(&running, 1)
}

{'fraction_non_alphanumeric': 0.08716165880307922, 'fraction_numerical': 0.005463123913583313, 'mean_word_length': 2.402027027027027, 'pattern_counts': {'":': 2, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '605982', 'n_tokens_mistral': 1324, 'n_tokens_neox': 1248, 'n_words': 334}