-
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