Skip to content

Instantly share code, notes, and snippets.

@pedropapa
Created January 5, 2019 17:26
Show Gist options
  • Save pedropapa/7b560b9c85317bfcaae4a96589e9be14 to your computer and use it in GitHub Desktop.
Save pedropapa/7b560b9c85317bfcaae4a96589e9be14 to your computer and use it in GitHub Desktop.
<?php
$forceUpdate = ($argv[1] === 'force');
if ($forceUpdate) {
echo "Resetando arquivos que serão mantidos...\n";
}
$veiculosRemovidos = 0;
foreach (vars() as $folder => $exts) {
foreach ($exts as $ext => $vars) {
$files = glob('./scriptfiles/' . $folder . '/' . $ext);
foreach ($files as $file) {
$removido = false;
$rawContent = file_get_contents($file);
$contents = explode("\n", $rawContent);
$newRawContent = "";
if ($folder === 'veiculos') {
if (!strstr($rawContent, 'modelo')) {
echo "Veículo " . $file . " não possui modelo\n";
}
}
foreach ($contents as $_content) {
$content = $_content;
$indVal = false;
if (strstr($content, '=')) {
$indVal = explode('=', $content);
$ind = $indVal[0];
} else {
$ind = $content;
}
if ($folder === 'veiculos' &&
$ind === 'propriedade' &&
isset($indVal) &&
!in_array(trim($indVal[1]), [
'PREFEITURA', 'PIZZARIAS', 'AUTO-ESCOLA', 'LOCADORA', 'CAMELOS', 'FEDERAL\'BRZ', 'MAFIA\'BRZ', 'BRAZUCAS\'PARK', 'BRAZUCAS\'NEWS', 'BRAZUCAS\'COPS', 'AEROPORTO\'BRZ', 'LANHOUSE\'BRZ'
])) {
if ($forceUpdate) {
++$veiculosRemovidos;
unlink(realpath($file));
$removido = true;
} else {
echo "O veículo " . $file . " seria removido pois o proprietário é " . $indVal[1] . "\n";
}
}
if (!$removido) {
if (!in_array($ind, indVars($vars))) {
if (!$forceUpdate) {
echo "A variável " . $ind . " do arquivo " . $file . " seria removida.\n";
}
} else {
foreach ($vars as $variable) {
if (strstr($variable, "=") && isset($indVal) && $exp = explode('=', $variable)) {
if($ind == $exp[0]) {
$indVal[1] = $exp[1];
if (!$forceUpdate) {
echo "A variável " . $ind . " do arquivo " . $file . " seria alterada para " . $exp[1] . ".\n";
}
}
}
}
if($indVal) {
$newRawContent .= $indVal[0] . '=' . $indVal[1] . "\n";
} else {
$newRawContent .= $ind . "\n";
}
}
}
}
if (!$removido) {
if ($forceUpdate) {
file_put_contents($file, $newRawContent);
} else {
echo "O arquivo " . $file . " ficaria com o seguinte conteúdo após o reset: \n";
var_dump($rawContent);
}
}
}
}
}
if ($forceUpdate) {
echo "\n";
echo "Reindexando veículos...\n";
reindexarVeiculos();
}
if ($forceUpdate) {
echo "\n";
echo "Removendo arquivos que não serão mantidos...\n";
removerArquivos();
}
if ($forceUpdate) {
echo "Relatório:\n";
echo $veiculosRemovidos . " veículos foram removidos.\n";
}
function reindexarVeiculos()
{
foreach (glob("./scriptfiles/veiculos/*.ini") as $file) {
preg_match("/\/(\d+)\.ini/i", $file, $filename);
$newFile = str_replace($filename[1], $filename[1] . 'bak', $file);
rename($file, $newFile);
}
$i = 1;
foreach (glob("./scriptfiles/veiculos/*.ini") as $file) {
preg_match("/\/(\d+bak)\.ini/i", $file, $filename);
$newFile = str_replace($filename[1], $i, $file);
rename($file, $newFile);
++$i;
}
}
function removerArquivos()
{
foreach (glob("./scriptfiles/notebooks/*.ini") as $file) {
unlink($file);
}
foreach (glob("./scriptfiles/celulares/*.ini") as $file) {
unlink($file);
}
foreach (glob("./scriptfiles/contas_rpg/*.txt") as $file) {
unlink($file);
}
}
function indVars($vars)
{
$inds = [];
foreach ($vars as $var) {
if (strstr($var, "=") && $exp = explode('=', $var)) {
array_push($inds, $exp[0]);
} else {
array_push($inds, $var);
}
}
return $inds;
}
function vars()
{
return [
'veiculos' => [
'*.ini' => [
'propriedade',
'dono',
'modelo',
'sx',
'sy',
'sz',
'sa',
'cor1',
'cor2',
'comp1=0',
'comp2=0',
'comp3=0',
'comp4=0',
'comp5=0',
'comp6=0',
'comp7=0',
'comp8=0',
'comp9=0',
'comp10=0',
'comp11=0',
'comp12=0',
'comp13=0',
'comp14=0',
'comp15=0',
'comp16=0',
'comp17=0',
'grafite=-1',
'Gasolina=100',
'Oleo=1000',
'Radiador=2000',
'valor',
'ValorOriginal',
'TravaAutomatica',
'Interior',
'VirtualWorld',
'Multas=0',
'VeiculoTrancado=1',
'Quilometragem=0',
'Bateria=0',
'GasTanque=0',
'TurboTempo=0',
'Pneu0=0',
'Pneu1=0',
'Pneu2=0',
'Pneu3=0'
]
],
'casas' => [
'*.ini' => [
'px',
'py',
'pz',
'pa',
'AV=1',
'Especial',
'Proprietario=PREFEITURA',
'Referencia',
'ValorOriginal',
'ValorDeVenda',
'Vila',
'Chave1=Nenhum',
'Chave2=Nenhum',
'Chave3=Nenhum',
'Saidax',
'Saiday',
'Saidaz',
'Saidaa',
'PortaEntradax',
'PortaEntraday',
'PortaEntradaz',
'Entradax',
'Entraday',
'Entradaz',
'PortaSaidax',
'PortaSaiday',
'PortaSaidaz',
'Interior',
'Entradaa',
'VirtualWorld'
]
],
'propriedades' => [
'*.ini' => [
'px',
'py',
'pz',
'pa',
'PropriedadeAVenda=1',
'Especial',
'Proprietario=PREFEITURA',
'Socio=Ninguem',
'Gerente=Ninguem',
'PropriedadeAtiva=0',
'Tipo',
'NomeDaPropriedade',
'ValorDaPropriedade',
'PontosDaPropriedade=0',
'RendimentosDaPropriedade=0',
'TotalInvestidoNaPropriedade=0',
'ValorDosSalarios=0',
'SeguradaPor=-1',
'Chave1=Nenhum',
'Chave2=Nenhum',
'Chave3=Nenhum',
'Saidax',
'Saiday',
'Saidaz',
'Saidaa',
'PortaEntradax',
'PortaEntraday',
'PortaEntradaz',
'Entradax',
'Entraday',
'Entradaz',
'PortaSaidax',
'PortaSaiday',
'PortaSaidaz',
'Interior',
'Entradaa',
'VirtualWorld',
'Funcionario1=Ninguem',
'Funcionario2=Ninguem',
'Funcionario3=Ninguem',
'Funcionario4=Ninguem',
'Funcionario5=Ninguem',
'Funcionario6=Ninguem',
'Funcionario7=Ninguem',
'Funcionario8=Ninguem',
'Funcionario9=Ninguem',
'Funcionario10=Ninguem',
'ValorFuncionario1=0',
'ValorFuncionario2=0',
'ValorFuncionario3=0',
'ValorFuncionario4=0',
'ValorFuncionario5=0',
'ValorFuncionario6=0',
'ValorFuncionario7=0',
'ValorFuncionario8=0',
'ValorFuncionario9=0',
'ValorFuncionario10=0',
'NaVila'
]
]
];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment