#!/bin/sh export DATE="14.8.2007";SCRIPT=${0#/rom} export TITLE="Administração: Publicar" . ${SCRIPT%/*}/cgi-bin-pre.sh cat<Administração: Publicar EOF if [ "$REQUEST_METHOD" != "POST" ]; then cat<
Páginas web-arquivo (*.tar) ou gráfico da página inicial intro.jpg:
 
   

Alterar algumas páginas web

Com este reduzido sistema de publicação deste firmware é simples mudar uma página web ou adicionar uma nova. Para o sistema operacional Windows será necessário instalar dois programas: um da linguagem Perl e um programa para comprimir arquivos no formato *.TAR (exemplo: UltimateZip). Em um sistema Linux estes programas já se encontram instalados.

Funcionamento

Um script Perl (template.pl) lê como base em um arquivo HTML (template.html) e procura a cadeia de comandos "%BODY%". Depois o script Perl lê um por um todos os arquivos-HTML no diretório e extrai a parte entre <BODY> e </BODY>. A parte do HTML-extraído será gravado no template no lugar de %BODY% e o resultado gravado em uma nova pasta (/out-de/)

O Perl-Skript copia também arquivos tipo gráficos na nova pasta. A sequêquencia de caracteres "$(echo -n %)DATE%" será trocada pela data do arquivo fonte. A sequêquencia de caracteres "$(echo -n %)TITLE%" será trocada pelo primeiro H1-Título do arquivo fonte.

Se o arquivo fonte começa com "cgi-bin", comandos Shell serão iniciados pelo servidor-web. Comandos Shell podem ser escritos no arquivo fonte entre a sequência de caracteres <SCRIPT LANGUAGE="shell"></SCRIPT>. Algumas variáveis Shell serão resolvidas pelo servidor-web quando este iniciar. Exemplo: "\$PWD" iniciará como $PWD , "\$(ls /tmp)" listará o conteúdo do diretório /tmp.

A Pasta com os arquivos (./out-de/) pode ser compactada com todos os seus subdiretórios em um arquivo tipo TAR-, TGZ- oder TAR.GZ. Este arquivo pode ser enviado por esta página de administração. Páginas existentes (como a página de adminstração) não serão afetadas nem apagadas por este processo.

Instruções

  1. Carrege o pacote de autor .
  2. Descompacte os arquivos em um novo diretório (Linux: "tar -xvf ff-pubpak*.tar").
  3. Start the perl script: (Linux: EOF echo 'cd ff-pubpak; perl template.pl -x "/index.html" -S xx; ls out-xx' cat<
  4. Crie um arquivo do diretório de saída (Linux: "tar -cvf out-de.tar out-de").
  5. Envie o novo arquivo out-de.tar através da página de administração.
  6. Modifique o código HTML do arquivo fonte e repita apartir do passo 3.

Nota: No pacote de autor não estão contidos 2 links simb&oacule;licos, que porém se encontram no diretório /www. O resultado "No ./netperf, No ./netserver" é normal e faz referência para esta verdade.

Nota para usuários do Windows: Se os programas "tar" e "perl" estiverem instalados, pode-se usar comandos Linux no prompt do Windows. Simplesmente troque o símbolo "/" por "\". O script Perl poderá também ser iniciado com um clicke duplo em cima do nome do arquivo "template.pl".

Dicas

Escreva códigos HTML válidos e termine sempre um <Tags> com </Tags>. Use para isso um editor de texto e um pouco de disciplina.

Insira uma referência para uma nova página no arquivo template.html. Copie uma das linhas da tabela (por exemplo: <TR>... Status ...</TR>) e altere o Tag <A HREF=""> e o texto. Possivelmente a coluna dos linkes da navegação deverá ser alargado. Procure e altere WIDTH="150" para a largura desejada.

Um novo sub-diretório necessita também um novo template.html. Este será encontrado pelo script Perl que especialmente lerá cada sub-diretório. Para economizar espaço deve-se trocar as referências para gráficos usando o linke abreviado "../images/".

Para abreviar possíveis links para sub-diretórios existentes o arquivo TAR será testado pelo sistema antes de carregar.

Diversos idiomas podem ser usados paralelamente usando <SPAN LANG="xx">. Além disso serão testados as variáveis TITLE, ALT e VALUE apartir de um modelo "todos as línguas!xx:Texto para o idioma A!yy:Texto para o idioma B". O script Perl pode ser iniciado por um parâmetro para o idioma desejado.

EOF elif ! ffout=$(./freifunk-upload 2>&1); then cat< $ffout

O carregamento da nova página-web foi interrompida.

EOF elif [ -n "$ffout" ]; then cat<O carregamento da nova página-web está sendo executado.

EOF echo "
"
if [ "${ffout##*/}" = "intro.jpg" ]; then
set -x
rm -f /www/images/intro.jpg
mv "$ffout" /www/images
set +x
else
zflag=
if [ -z "${ffout##*.tar.gz}" ] || [ -z "${ffout##*.tgz}" ]; then
zflag=-z
fi
tardir=$(tar $zflag -tvf "$ffout"|if read line;then if [ "-" != $(echo $line|dd bs=1 count=1 2>&-) ];then set $line;echo $6;fi;fi)
mkdir /tmp/wwwtmp.$$/
tar -C /tmp/wwwtmp.$$/ $zflag -xf "$ffout"
rm -f "$ffout"
chmod +x /tmp/wwwtmp.$$/$tardir/cgi-bin*>/dev/null 2>&1
chmod +x /tmp/wwwtmp.$$/$tardir/cgi-bin/*>/dev/null 2>&1
tar -cC "/tmp/wwwtmp.$$/$tardir" .| tar -xvC /www/
rm -rf /tmp/wwwtmp.$$/
fi
echo "
" else cat< Nenhum novo arquivo para página-web foi recebido.

O carregamento da nova página-web não pôde ser executado.

EOF fi . ${SCRIPT%/*}/cgi-bin-post.sh