Created
January 5, 2019 17:26
-
-
Save pedropapa/7b560b9c85317bfcaae4a96589e9be14 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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