• Amadeu Andrade Barbosa Junior's avatar
    Conforme issue OPENBUS-95 do JIRA, criei a primeira versão do instalador: · 6048c372
    Amadeu Andrade Barbosa Junior authored
     - descritores de pacotes (.desc) agora podem informar arquivos de 
     configuração
     - instalador faz perguntas mediante um template de configuração também 
     informado no descritor do pacote
     - instalador permite que o desenvolvedor/empacotador tenha uma função especial
     para configurar o pacote após o usuário ter respondido as perguntas definidas
     no template de configuração
     - instalador permite que o administrador informe um arquivo com configurações
     antigas (da última instalação) e assim a instalação torna-se mais automática e 
     menos interativa
    
    CORREÇÕES:
      build/tecmake.lua : incluir "/" na string do build_dir, pois é concatenada com 
      outros caminhos de diretórios ao longo da execução.
      
      makepack.lua : tornando-o mais compatível com diferentes versões de Unix, mas
      ainda depende de um 'tar' que aceite a opção '--exclude'.
    
    ADICIONADOS:
      * installer.lua : Assume que um pacote Openbus válido precisa ter um arquivo
      de metadados chamado 'metadata.tar.gz'. Nesse estarão os arquivos .files, 
      .links e .template. Esse novo tipo de arquivo .template reflete um arquivo
      modelo de configuração em que o EMPACOTADOR planeja quais dados o usuário deve
      preencher durante a instalação e também pode ter um função "configure_action" 
      que será chamada pelo instalador na etapa de configuração do pacote.
      Atualmente apenas o 'openbus-core' tem configurações e a ação é gerar os
      arquivos core/conf/*Configuration.lua da raiz do Openbus.
    
      * templates/openbus.lua : criando a função de configure_action que
      até o último commit era responsabilidade do instalador
    
    A grande vantagem de permitir um template de configuração é que para cada pacote
    pode-se ter uma semântica própria de configuração. A idéia é que o administrador
    pode pegar o arquivo de saída (/tmp/lastest.answers) do instalador, e reusar 
    para a próxima instalação como respostas padrões às perguntas do template.
    Se houverem novas perguntas no template de um pacote mais novo, então garantimos
    que elas serão feitas. 
    
    Caso hajam novas propriedades ele será avisado e poderá
    definir (via perguntas ou cancelando e atualizando seu arquivo).
    
    MELHORIAS:
      * config.lua : criação de uma função 'changePlatform' para permitir mudança de
      variáveis específicas à plataforma, o que é importante para o script de
      'makepack'
      
      * packages.desc : adição de duas novas tabelas específicas para arquivos de
      configuração
        * conf_files : indica quais são os arquivos de configuração, para permitir
      na instalação não sobreescreer os antigos, haverá assim um pacote separado
      chamado "<seupacote>-conf" semelhante a "<seupacote>-dev"
        * conf_template : indica qual arquivo de template, um template contém uma
      tabela 'messages' com as configurações que serão SOLICITADAS interativamente
      ao usuário, nesse template usa-se tipos de campos especiais que podem ser
      definidos dentro do próprio arquivo para manipular tipos complexos como
      hashmaps especializados (ex: ldapHosts= {name ="hostname", port="portnumber"})
      TODO: conf_template poderia ser uma tabela com o conteúdo que hoje está nesse
      arquivo externo de template da configuração. Também pode conter uma função
      'configure_action' que será carregada durante a etapa de configuração.
    
      * platforms.lua : adicionei cmd.ls, cmd.mkdir e cmd.rm
      
      * build/copy.lua : adição do tratamento dos campos conf_tempalte e conf_files
      
      * util.lua: adicionei uma serialização de tabelas simples existente no guia
      de programação de Lua (lua.org/pil). As tabelas podem ser nomeadas, assim no
      arquivo haverá "nome = { --[[conteudo da tabela]]-- }".
      Adicionei também a função parse_args para simplificar as tarefas em cada 
      script de compile, makepack e installer.
    
      * profiles/* : agora incluem o novo pacote 'openbus-core-conf'
    
      * compile.lua, makepack.lua : refatorando para uniformizar a interação com a
      linha de comando, através de util.parse_args.
    
    git-svn-id: https://subversion.tecgraf.puc-rio.br/engdist/openbus/trunk@85885 ae0415b3-e90b-0410-900d-d0be9363c56b
    6048c372