MD5 – algoritmo criptográfico que gera uma chave 128bits, útil para guardar senhas, ou para verificar a integridade de arquivos. (para mais detalhes de uma busca pela net) Prisma já tinha uma biblioteca md5 feita em prisma puro. Como seu desempenho não era bom com arquivos grandes, acabei portando uma da linguagem C: a pmd5.,…
Continue readingmodo_texto
mki – criando arquivos *.run
Baixar: instalador do mki / fontes Você já deve ter visto ou usado um instalador com extensão *.run em Linux. Basta executá-lo no terminal que a mágica acontece: ele é extraído e executa um instalador. O que talvez vc não saiba é que esse arquivo é um auto-extraível, um script shell com um arquivo compactado…
Continue readingpmicrotar – biblioteca para arquivos *.tar
BAIXAR pmicrotar-0.4 Quem é do mundo *nix já deve conhecer o formato *.tar, muitas vezes confundido com um tipo de compressão de arquivo. Na verdade, trata-se de um formato de empacotamento, apenas une vários arquivos ou, até mesmo, diretórios. O formato TAR pode ser usado em conjunto com bibliotecas de compressão de dados dando assim…
Continue readingMonitor de bateria em Prisma (Linux)
Uma boa função em Prisma é a es.pabra() que chama um programa externo capturando sua saída. Aproveitando isso criei um simples script que monitora a bateria, mostrando uma mensagem quando estiver descarregando. Segue o código para análise, bons estudos. Qualquer dúvida posta nos comentários!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
/* * Monitor de bateria simples em Prisma usando es.pabra() com o programa upower (linux); * e xmessage para a mensagem. */ //Sem licença (use como bem entender - o autor não será responsabilizado!) //2017 - 12 Adalberto Amorim Felipe // linguagemprisma@gmail.com //Biblioteca para permitir o uso de acentos e alguns caracteres especiais no cmd e gui do windows. //Não converte todos os tipos de utf8, basico pt-br //estou criando em C uma biblioteca mais completa para esta funcionalidade. //ATENÇÃO este arquivo deverá ser salvo no formato utf8 funcao parse(s) local tmp; a = s:analise('\n'); local info = {}; para i,v em pares(a) inicio se v <> '\n' entao tmp = v:analise(':'); se tipo(tmp)=='tabela' entao se tmp[1] e tmp[3] entao info[tmp[1]:apare()] = tmp[3]:apare(); fim fim fim // -- imprima(i,v); fim retorne info; fim//fim funcao local term = inclua'terminal'; local funcao mensagem(titulo,txt, ...) local botoes = {...}; local bts = ''; para i,v em ipares(botoes) inicio bts = bts .. '"' .. v .. '",' fim bts = bts:corte(1,-2); local cmd = 'xmessage -title ' .. titulo .. ' "' .. txt .. '" -center -buttons ' .. bts .. ' "$@" "" ;' // imprima(cmd); local ret,_,num = sis.execute(cmd); se num entao retorne convnumero(num); senao retorne falso; fim fim local cmd = 'upower -i /org/freedesktop/UPower/devices/battery_BAT0'; local a; local cont = 1; local info; enquanto 1 inicio term.defCorletra(term.verde); a, err = es.pabra(cmd); se a entao info = a:leia'*t'; a:feche(); info = parse(info); se info.present == 'yes' entao info.present = verdadeiro; senao info.present = falso; fim imprima('bateria presente?',info.present); se info.state == 'charging' entao info.state = 'carregando'; senaose info.state=='discharging' entao info.state='descarregando'; fim imprima('Estado:', (info.state:troque('charging','carregando'))); imprima('Porcentagem:',info.percentage); local perc = convnumero(info.percentage:corte(1,info.percentage:procure('%%') -1 )); // imprima(perc); se perc < 13 e info.state == 'descarregando' entao local aviso = string.formate('Bateria em estado critico, conecte o carregador agora!\n\ndescarregando: %0.2f%%',perc); imprima('Aviso::',aviso); mensagem("Aviso", aviso, ' ok '); fim senao imprima('Erro', err); fim sis.durma(1000); //term.limpeTela(); term.cursorInicio(); local alt,larg = term.tamanho(); para i = 1,alt inicio es.escreva((' '):nconcat(larg)); fim term.cursorInicio(); imprima('------['..cont..']------'); cont=cont+1; fim term.defPadrao(); |
Por enquanto é isso, até mais!
Continue readingGui básico em terminal | guiterminal.pris
Fiz uma correção na mensagem questão (botões) e reupei:(4/11/2017) Muitas vezes por algum motivo é necessário abrir mão da interface gráfica e usar apenas o terminal de comandos, seja por questão de memória, seja em um servidor etc. Que tal unir um pouco dos dois mundos, criando mensagens box, diálogos e listagem no terminal, usando…
Continue readingExtrair iso com Prisma em Linux
Uma vez tive que montar e copiar os arquivos de uma *.iso, pensei então em automatizar o processo com um script prisma bem simples, funciona somente em linux: (não é difícil de implementar para windows, basta saber os comandos de montagem); Segue o código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
//extrair iso em linux. local sudo = nulo; //só para teste; local pasta_tmp = '/tmp/'; funcao monte_iso(iso,dest) local sudo = sudo ou ''; local cmd = sudo .. "mount -o loop "; //destino é a pasta onde aparecerá os arquivos. //se o comando de cima nao funcionar tente(basta tirar as duas barras do comentário: //cmd = 'mount -o loop -t iso9660 '; local str_mkdir = sudo .. 'mkdir ' .. dest; cmd = cmd .. iso .. ' ' .. dest; sis.execute(mkdir); local ret,s,num = sis.execute(cmd); se nao ret entao retorne falso,"Erro ao montar arquivo " .. s .. ': ' .. num, num; fim retorne verdadeiro; fim funcao desmonte_iso(dest) //deve ser destino do arquivo montado. local sudo = sudo ou ''; local umount = sudo .. "umount " .. dest; se sis.execute(umount) entao sis.remova(dest); retorne verdadeiro; senao retorne falso, 'Erro ao desmontar a imagem iso'; fim fim funcao extraia_iso(iso,dest_copia) local sudo = sudo ou ''; local _,arq,_ = sis.nome_arquivo(iso); //pega o nome sem extensão em arq sis.execute( sudo .. 'mkdir ' .. pasta_tmp .. arq); local ret, err, num = monte_iso(iso, pasta_tmp .. arq); se nao ret e num <> 32 entao desmonte_iso( pasta_tmp .. arq); retorne falso, err; fim local copia_cmd = 'cp -r ' .. pasta_tmp .. arq .. '/* ' .. dest_copia; sis.execute( 'mkdir ' .. dest_copia); poe'\n\nAguarde o processo de cópia, pode levar vários minutos...\n\n'; local ret,s,num = sis.execute(copia_cmd); se nao ret entao desmonte_iso(sudo .. pasta_tmp .. arq); retorne falso, 'Erro ao copiar conteúdo da pasta montada ' .. s .. ': ' .. num; fim desmonte_iso( pasta_tmp .. arq); retorne verdadeiro; fim //================================================================================= //teste: //* local ret, err = extraia_iso( '/home/user/Downloads/arq.iso', //imagem iso alvo '/home/user/Downloads/arq' //local onde os arquivos serão extraídos ); se nao ret entao imprima(err); senao imprima('Processo terminado com sucesso\n\n'); fim // */ |
Funções: monte_iso(iso,dest); iso – “arquivo.iso” (caminho completo); dest –…
Continue readingBiblioteca terminal
Este é um módulo prisma em C com funções básicas para o terminal (ou cmd do Win); Funções como mudança de título, de cor, coordenada do cursor, captura de tecla sem precisar pressionar o Enter etc. Está incluso em Prisma-1.0.102 ou superior (Linux e Win) Caso queira baixar os fontes clique aqui: <<baixar>> Obs….
Continue readingppdf – nova biblioteca de gerar pdf
Esta biblioteca é uma alternativa a lib pdf.pris. Suporta: Cabeçalho de informação. Texto linha e retângulo. imagens – jpeg e ppm. código de barra. marcadores de página. Baixe o código fonte com binário aqui: ppdf Caso use Prisma em Linux 32bits instale o ppdf.so já compilado, para outras distros incompatíveis, é necessário compilar. Para Windows instale…
Continue readingAES (encriptação e decriptação de dados)
Biblioteca para encriptar e decriptar dados, usando uma senha. Muito útil para ofuscar arquivos, assim somente com a senha será possível recuperar o arquivo encriptado. Na verdade, esta lib possui funções que encriptam apenas strings, fica a cargo do programador ler e gravar os arquivos em modo binário. Baixe arqui: http://br4.biz/arqs/wl/?id=pykln5Xyxfxw6NpV80TKzYIBS0uoVd8H&mode=regular Link corrigido(2020): https://www.mediafire.com/file/jqvcp3xdnnvr2xm/aesprisma.zip/file (clique…
Continue readingDespertador
Há algum tempo, eu criei uma lib para usar como despertador, assim ao invés de criar um despertador do zero, você tem uma classe pronta com os métodos necessários para criá-lo. Baixe o arquivo <aqui> (uma pasta desp zipada), descompacte-a e copie para o diretório de libs Prisma. (já está incluso desde as primeiras versões…
Continue reading