summaryrefslogtreecommitdiff
path: root/scripts/context/ruby/rslibtool.rb
blob: 7ae5efb647e3518f704e7bdb3b5b7206bbe4456f (plain)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# program   : rslibtool
# copyright : PRAGMA Publishing On Demand
# version   : 1.00 - 2002
# author    : Hans Hagen
#
# project   : eXaMpLe
# concept   : Hans Hagen
# info      : j.hagen@xs4all.nl
# www       : www.pragma-pod.com / www.pragma-ade.com

# --add      --base=filename --path=directory pattern
# --remove   --base=filename --path=directory label
# --sort     --base=filename --path=directory
# --purge    --base=filename --path=directory
# --dummy    --base=filename
# --namespace

# rewrite

unless defined? ownpath
    ownpath = $0.sub(/[\\\/]\w*?\.rb/i,'')
    $: << ownpath
end

require 'rslb/base'
require 'xmpl/base'
require 'xmpl/switch'

session = Example.new('rslbtool', '1.0', 'PRAGMA POD')

session.identify

commandline = CommandLine.new

commandline.registerflag('add')
commandline.registerflag('remove')
commandline.registerflag('delete')
commandline.registerflag('sort')
commandline.registerflag('purge')
commandline.registerflag('dummy')
commandline.registerflag('process')
commandline.registerflag('namespace')

commandline.registervalue('prefix')
commandline.registervalue('base')
commandline.registervalue('path')
commandline.registervalue('result')
commandline.registervalue('texexec')
commandline.registervalue('zipalso')

commandline.expand

session.inherit(commandline)

base = session.get('option.base')
path = session.get('option.path')

base = 'rslbtool.xml' if base.empty?

# when path is given, assume that arg list is list of
# suffixes, else assume it is a list of globbed filespec

if path.empty?
	base += '.xml' unless base =~ /\..+$/
	list = commandline.arguments
else
	Dir.chdir(File.dirname(path))
	list = Dir.glob("*.{#{commandline.arguments.join(',')}}")
end

begin
	reslib = Resource.new(base,session.get('option.namespace'))
	reslib.load(base)
rescue
	session.error('problems with loading base')
	exit
end

unless session.get('option.texexec').empty?
    reslib.set_texexec(session.get('option.texexec'))
end

if session.get('option.add')

	session.report('adding records', list)
	reslib.add_figures(list,session.get('option.prefix'))

elsif session.get('option.remove') or session.get('option.delete')

	session.report('removing records')
	reslib.delete_figures(list)

elsif session.get('option.sort')

	session.report('sorting records')
	reslib.sort_figures()

elsif session.get('option.purge')

	session.report('purging records')
	reslib.purge_figures()

elsif session.get('option.dummy')

	session.report('creating dummy records')
    reslib.create_dummies(session.get('option.process'),session.get('option.result'),session.get('option.zipalso'))

else

	session.warning('provide action')

end

reslib.save(base)