Commit 17b5226131b6903ab870132db517253a12cab6ff
1 parent
19a12f72d8
Exists in
master
Ajout d'un script d'application de config
Showing 1 changed file with 123 additions and 0 deletions Inline Diff
wize.rb
File was created | 1 | #!/usr/bin/env ruby | ||
2 | ||||
3 | require 'optparse' | |||
4 | ||||
5 | # Variables globales $version, $auteur et $date | |||
6 | $version = "0.1" | |||
7 | $auteur = "William Daniau" | |||
8 | $date = "2019 10 11" | |||
9 | ||||
10 | # Parse arguments class | |||
11 | class ParseOptions | |||
12 | def self.parse(args) | |||
13 | options = Hash.new | |||
14 | ||||
15 | opt_parser = OptionParser.new do |opts| | |||
16 | opts.banner = "\nUtilisation : wize.rb [options]" | |||
17 | opts.separator "" | |||
18 | whatIDo = <<-AFP | |||
19 | ||||
20 | liste ou applique une configuartion de template wize pour zim | |||
21 | ||||
22 | AFP | |||
23 | ||||
24 | opts.separator whatIDo | |||
25 | ||||
26 | opts.on("-l", | |||
27 | "--list", | |||
28 | "Liste les configurations disponibles") do |l| | |||
29 | options[:list] = l | |||
30 | end | |||
31 | ||||
32 | opts.on("-a", | |||
33 | "--apply CONF", | |||
34 | "applique la config CONF") do |conf| | |||
35 | options[:conf] = conf | |||
36 | end | |||
37 | ||||
38 | opts.separator "" | |||
39 | opts.separator " Options standard:" | |||
40 | opts.on_tail("-h", "--help", "Affiche ce message") do | |||
41 | puts opts | |||
42 | puts "" | |||
43 | exit | |||
44 | end | |||
45 | opts.on_tail("-v", "--version", "Affiche la version") do | |||
46 | puts "Version : " + $version | |||
47 | puts "Auteur : " + $auteur | |||
48 | puts "Date : " + $date | |||
49 | puts "" | |||
50 | exit | |||
51 | end | |||
52 | end | |||
53 | ||||
54 | opt_parser.parse!(args) | |||
55 | options | |||
56 | end | |||
57 | end | |||
58 | ||||
59 | def listConfigs | |||
60 | a = `ls`.split(/\n/) | |||
61 | names = [] | |||
62 | r = /^common-(.+)$/ | |||
63 | a.each { |f| | |||
64 | if f =~ r | |||
65 | names.push($1) | |||
66 | end | |||
67 | } | |||
68 | names | |||
69 | end | |||
70 | ||||
71 | def applyConfig(name) | |||
72 | list = ["Wize", "Wize_with_index", "Wize_with_index_sod"] | |||
73 | list.each { |l| | |||
74 | com = "rm -f #{l}/common-spec" | |||
75 | system(com) | |||
76 | com = "ln -s ../common-#{name} #{l}/common-spec" | |||
77 | system(com) | |||
78 | } | |||
79 | system("rm -f print-common") | |||
80 | system("ln -s common-#{name} print-common") | |||
81 | end | |||
82 | ||||
83 | def configInList?(name, names) | |||
84 | names.include? name | |||
85 | end | |||
86 | ||||
87 | # Parse arguments using the class and get results in a hash | |||
88 | options = ParseOptions.parse(ARGV) | |||
89 | if options.length == 0 | |||
90 | puts "Utiliser -h pour l'aide" | |||
91 | exit | |||
92 | end | |||
93 | ||||
94 | # Directory definitions | |||
95 | zimShareDir = "#{ENV['HOME']}/.local/share/zim" | |||
96 | zimHtmlTemplateDir = "#{zimShareDir}/templates/html" | |||
97 | zimConfigDir = "#{ENV['HOME']}/.config/zim" | |||
98 | ||||
99 | # go into template dir | |||
100 | Dir.chdir(zimHtmlTemplateDir) | |||
101 | ||||
102 | # get existing configs | |||
103 | configs = listConfigs |