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 |