Skip to content

Commit

Permalink
Otimizada busca por arquivos .ini na pasta de AVDs
Browse files Browse the repository at this point in the history
(agora é feita apenas 1 busca não-recursiva de arquivos e diretórios; ao invés de 2 buscas recursivas, uma para localizar a pasta, outra para localizar arquivos .ini dentro da pasta)
  • Loading branch information
Gustavo Moraes committed Mar 30, 2016
1 parent cd2b885 commit d78c630
Showing 1 changed file with 5 additions and 11 deletions.
16 changes: 5 additions & 11 deletions avd-launcher/usr/share/avd-launcher/model/AVD.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ setDefaultFolderPath()

# Função que verifica se o caminho dos AVDs dado é válido
# e seta tal caminho num arquivo de configuração.
# O "if" com "find" e "grep" abaixo é solução baseada nas respostas de fórum:
# http://stackoverflow.com/a/3925376 - "find" sem recursão
# http://serverfault.com/a/225827 - "grep" retorna 1 se "find" stdout = null
# Parâmetros:
# $1 - Caminho do diretório que supostamente contém os AVDs
# Saídas:
Expand All @@ -60,7 +63,8 @@ setDefaultFolderPath()
# "$CONFIG_FILE_AVDS" - arquivo de configuração contendo o path do AVDs válido
setFolderPath()
{
if locateAVDPathFiles "$1" # Se a pasta existe e existe algum .ini
# Se pasta existe e existe algum .ini (redireciona stdout -> "Buraco Negro")
if find "$1" -maxdepth 1 -type f -name "*.ini" | grep '.*' >/dev/null
then # É a pasta dos AVDs
mkdir `dirname "$CONFIG_FILE_AVDS"` 2> /dev/null; # Cria pasta de config
echo "$1" > "$CONFIG_FILE_AVDS"; # Seta para o arquivo de configuração
Expand All @@ -70,16 +74,6 @@ setFolderPath()
fi
}

# Função "privada",
# verifica se a pasta do AVD passada por parâmetro existe e há algum .ini nela.
locateAVDPathFiles()
{
find "$1" -type d -wholename "$1" | egrep '.*' >/dev/null && \
find "$1" -type f -name "*.ini" | egrep '.*' >/dev/null

return $?;
}

### MAIN com variáveis de classe (fields) ####

case $1 in
Expand Down

0 comments on commit d78c630

Please sign in to comment.