{"id":3156,"date":"2017-10-18T19:52:46","date_gmt":"2017-10-18T23:52:46","guid":{"rendered":"http:\/\/linguagemprisma.br4.biz\/blog\/?p=3156"},"modified":"2017-10-18T21:11:03","modified_gmt":"2017-10-19T01:11:03","slug":"extrair-iso-com-prisma-em-linux","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/modo_texto\/extrair-iso-com-prisma-em-linux\/","title":{"rendered":"Extrair iso com Prisma em Linux"},"content":{"rendered":"<p>Uma vez tive que montar e copiar os arquivos de uma *.iso, pensei ent\u00e3o em automatizar o processo com um script prisma bem simples, funciona somente em linux:<\/p>\n<p>(n\u00e3o \u00e9 dif\u00edcil de implementar para windows, basta saber os comandos de montagem);<\/p>\n<p>Segue o c\u00f3digo:<\/p>\n<pre class=\"lang:prisma decode:true  \">\/\/extrair iso em linux.\r\n\r\nlocal sudo = nulo; \/\/s\u00f3 para teste;\r\nlocal pasta_tmp = '\/tmp\/';\r\n\r\nfuncao monte_iso(iso,dest)\r\n  local sudo = sudo ou '';\r\n  local cmd =  sudo .. \"mount -o loop \"; \/\/destino \u00e9 a pasta onde aparecer\u00e1 os arquivos.\r\n  \/\/se o comando de cima nao funcionar tente(basta tirar as duas barras do coment\u00e1rio:\r\n  \/\/cmd = 'mount -o loop -t iso9660 ';\r\n  local str_mkdir = sudo ..  'mkdir ' .. dest;\r\n  cmd = cmd .. iso .. ' ' .. dest;\r\n  \r\n  sis.execute(mkdir);\r\n  local ret,s,num = sis.execute(cmd);\r\n  se nao ret entao\r\n    retorne falso,\"Erro ao montar arquivo \" .. s .. ': ' .. num, num;\r\n  fim  \r\n  retorne verdadeiro;  \r\nfim\r\n\r\nfuncao desmonte_iso(dest) \/\/deve ser destino do arquivo montado.\r\n  local sudo = sudo ou '';\r\n  local umount =  sudo ..  \"umount \" .. dest;\r\n  se sis.execute(umount) entao\r\n    sis.remova(dest);\r\n    retorne verdadeiro;\r\n  senao\r\n    retorne falso, 'Erro ao desmontar a imagem iso';\r\n  fim\r\nfim\r\n\r\nfuncao extraia_iso(iso,dest_copia)\r\n  local sudo = sudo ou '';\r\n  local _,arq,_ = sis.nome_arquivo(iso); \/\/pega o nome sem extens\u00e3o em arq\r\n  sis.execute( sudo .. 'mkdir ' .. pasta_tmp .. arq);\r\n  \r\n  local ret, err, num = monte_iso(iso, pasta_tmp .. arq);\r\n  \r\n  se nao ret e num &lt;&gt; 32 entao\r\n    desmonte_iso( pasta_tmp .. arq); \r\n    retorne falso, err; \r\n  fim\r\n  \r\n  local copia_cmd = 'cp -r ' .. pasta_tmp .. arq .. '\/* ' .. dest_copia;\r\n  sis.execute( 'mkdir ' .. dest_copia);\r\n  poe'\\n\\nAguarde o processo de c\u00f3pia, pode levar v\u00e1rios minutos...\\n\\n';\r\n  local ret,s,num = sis.execute(copia_cmd);\r\n  se nao ret entao\r\n    desmonte_iso(sudo .. pasta_tmp .. arq); \r\n    retorne falso, 'Erro ao copiar conte\u00fado da pasta montada ' .. s .. ': ' .. num;\r\n  fim \r\n  desmonte_iso( pasta_tmp .. arq); \r\n  retorne verdadeiro;\r\nfim\r\n\r\n\r\n\/\/=================================================================================\r\n\r\n\/\/teste:\r\n\/\/* \r\nlocal ret, err = extraia_iso(\r\n'\/home\/user\/Downloads\/arq.iso', \/\/imagem iso alvo\r\n'\/home\/user\/Downloads\/arq'  \/\/local onde os arquivos ser\u00e3o extra\u00eddos\r\n);\r\n\r\nse nao ret entao \r\n  imprima(err);\r\nsenao \r\n  imprima('Processo terminado com sucesso\\n\\n');\r\nfim\r\n\/\/ *\/\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Fun\u00e7\u00f5es:<\/p>\n<p><strong>monte_iso(iso,dest);\u00a0<\/strong><\/p>\n<ul>\n<li>iso &#8211; \u00a0&#8220;arquivo.iso&#8221; (caminho completo);<\/li>\n<li>dest &#8211; pasta onde ser\u00e1 montado o arquivo (ex.: &#8216;\/home\/usuario\/minha_iso\/&#8217;) se a pasta n\u00e3o existir, ela ser\u00e1 criada.<\/li>\n<\/ul>\n<p><strong>desmonte_iso(dest);\u00a0<\/strong><\/p>\n<ul>\n<li>dest &#8211; o mesmo nome da pasta usado para montar a iso<\/li>\n<\/ul>\n<p><strong>extraia_iso( iso, dest);<\/strong><\/p>\n<ul>\n<li>iso &#8211; caminho completo da imagem iso.<\/li>\n<li>dest &#8211; onde ser\u00e3o copiados os arquivos extra\u00eddos.<\/li>\n<\/ul>\n<p>Sem licen\u00e7a, use, modifique como bem entender. O autor n\u00e3o poder\u00e1 ser responsabilizado pelo uso desse programa.<\/p>\n<p>Dica: voc\u00ea pode transformar em uma biblioteca prisma salvando o arquivo como <strong>extrair_iso.pris<\/strong> no diret\u00f3rio de bibliotecas prisma. Ent\u00e3o use: inclua&#8217;extrair_iso&#8217; e pronto s\u00f3 usar as fun\u00e7\u00f5es.<\/p>\n<p>Pessoal, por enquanto \u00e9 isso, at\u00e9 mais.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma vez tive que montar e copiar os arquivos de uma *.iso, pensei ent\u00e3o em automatizar o processo com um script prisma bem simples, funciona somente em linux: (n\u00e3o \u00e9 dif\u00edcil de implementar para windows, basta saber os comandos de montagem); Segue o c\u00f3digo: \/\/extrair iso em linux. local sudo = nulo; \/\/s\u00f3 para teste;&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-3156","post","type-post","status-publish","format-standard","hentry","category-modo_texto"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=3156"}],"version-history":[{"count":3,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3156\/revisions"}],"predecessor-version":[{"id":3159,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3156\/revisions\/3159"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=3156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=3156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=3156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}