#!/usr/bin/ruby -w

#=========================================================
# pnm2djvu.rb - convierte todos los .pnm de un directorio
# a djvu, después los empaqueta en un archivo.
# Usa el módulo Find
#=========================================================
# FJA - fja@neocipres.com 			Noviembre de 2013 
#=========================================================

require 'find'

def buscar_archivo(dir, patron)
 lista = []
 Find.find(dir) do |ruta|
 	lista << ruta if File.basename(ruta) =~ /#{patron}/ && File.file?(ruta)
 end
 return lista.sort
end
 

begin
 raise if ARGV.size < 2
 c = ARGV[0]
 nomF = ARGV[1].dup
 tipo = nomF.include?('.djvu')
 nomF << '.djvu' if !tipo
 archivos = buscar_archivo('.', '.pnm')
 print "\n Archivos de tipo .pnm: "
 print "\n", "="*80, "\n"
 archivos.each do |archivo|
	cmd = ''
 	cmd << c << ' ' << archivo if c=='c44' 
	if c=='cjb2'
		aout = archivo.sub('.pnm','') << '.djvu'
		cmd << c << ' ' << archivo << ' ' << aout 
 	end	
	system(cmd)
	puts "\t #{archivo} "
 end	
 print "="*80
 print "\n\t => ",archivos.size," archivo#{"s" unless archivos.size==1} convertidos a djvu \n\n"
 print "\n Comienza el proceso de creación del libro"
 print "\n", "="*80, "\n"
 archivos = buscar_archivo('.', '.djvu')
 lista_djvu = ' '
 cmd = ''
 archivos.each { |archivo| lista_djvu << archivo << ' ' }
 cmd << "djvm -c " << nomF << lista_djvu 
 print "\n\t Creando el libro djvu ...\n\n"
 system(cmd)
 print "\n\t Generado el archivo: #{nomF} \n\n"
  
rescue
 if ARGV.size < 2
 	print "\n\t", "="*70
  	print "\n\t Uso: pnm2djvu <compresor: c44 o cjb2> <archivo salida .djvu>\n"
	print "\n\t\t pnm2djvu es un enlace simbólico a pnm2djvu.rb "
	print "\n\t", "="*70, "\n\n"
 else
	puts "\n\t Error-> #{$!} \n\n"
 end
end
