Start scripting the volume creation
[lematema] / crea_numero.rb
1 #!/usr/bin/ruby
2 #
3 # Le Matematiche
4 #
5 # Crea un numero per la rivista Le Matematiche, usando le informazioni contenute in una specifica cartella
6 #
7 # Author: Giuseppe Bilotta <bilotta@dmi.unict.it>
8 #
9 # Created: 20070317
10 #
11 # Last Modified: 20070317
12 #
13 # Copyright: (C) 2007 Giuseppe Bilotta
14 #
15
16 require 'yaml'
17 require 'roman_numerals'
18
19 def uso
20         puts "#{$0} <nome cartella>"
21         puts "\tcrea un numero per la rivista Le Matematiche, usando le informazioni contenute nella cartella"
22 end
23
24 def errore(msg)
25         $stderr.puts "ERRORE: %s" % msg
26         exit 2
27 end
28
29 cartella = ARGV[0]
30
31 if !cartella or cartella.empty?
32         uso
33         exit 1
34 end
35
36 begin
37         Dir.chdir(cartella)
38 rescue
39         errore "Impossibile accedere alla cartella \"#{cartella}\""
40 end
41
42 indice = './indice'
43
44 if not File.exists?(indice)
45         errore "La cartella \"%s\" non contiene il file di indice!" % cartella
46 end
47
48 begin
49         info = YAML.load(File.read(indice))
50 rescue
51         errore "Impossibile leggere il file di indice in \"%s\"" % cartella
52 end
53
54 if info.has_key?(:anno)
55         anno = info[:anno].to_i
56 else
57         errore "Il file di indice in \"%s\" non specifica l'anno!" % cartella
58 end
59 if info.has_key?(:volume)
60         vol = info[:volume].to_i
61         vol_rm = vol.to_s_roman
62 else
63         errore "Il file di indice in \"%s\" non specifica il volume!" % cartella
64 end
65 if info.has_key?(:numero)
66         num = info[:numero].to_i
67         num_rm = num.to_s_roman
68 else
69         errore "Il file di indice in \"%s\" non specifica il numero!" % cartella
70 end
71 if info.has_key?(:articoli)
72         articoli = info[:articoli]
73 else
74         errore "Il file di indice in \"%s\" non specifica alcun articolo!" % cartella
75 end
76
77 puts "Preparazione: Le Matematiche, volume #{vol_rm}, numero #{num_rm}, anno #{anno}"