xezat 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0af671c67dab5b04826969bc2ec3d76d2bebad555c9b56cdc2afaf9bafc8600
4
- data.tar.gz: cd5799a4eaeb7f9bcdc7ae0ca59271b7d40241d07bb0f37d90a5554b0889e98f
3
+ metadata.gz: e515798ac8ff0a0f6f60ba790faa9ee4e7b3c2fdbe70f55484d7c180929961a7
4
+ data.tar.gz: d5159b3b559a9bd19f9f67bf14e1d0e496c052d83579286289446ece688c2be9
5
5
  SHA512:
6
- metadata.gz: 3c51af33761f4ff6e3edc6edb02e1352a864bd4a7dae447c98bf3328fd0d05b7c54684d3ec73394cf9d0ce81a0a21bb680ba9a89b42e14270d8f91da0c379c28
7
- data.tar.gz: abdc28922f8369cef8a4aaabac83124f5208643ded6ad7af2c4517ef49cc4be05c8962849a33a5970de498a404dc8d417941fb28c32139947445fd146757859d
6
+ metadata.gz: b1dae9f8ee739e65769e5466d973c02876c5dc7e170aa7f52d3c3c6f014cf74fe200fd9300dd2db27df0ad6c49ddbf4dfade8f7f0986382a76e127e4932cca75
7
+ data.tar.gz: 81d6a0943f8f8160bfd0ac4b16b6517700392a91119b5472f2c78721f2f99ba71a35ae7d2925059da12b8c376bb2296f051b9e14910ac79cd4e2aca104a11597
@@ -24,7 +24,7 @@ jobs:
24
24
  # Download and cache dependencies
25
25
  - restore_cache:
26
26
  keys:
27
- - v1-dependencies-{{ .Branch }}
27
+ - v2-dependencies-{{ .Branch }}
28
28
  # fallback to using the latest cache if no exact match is found
29
29
  #- v1-dependencies-
30
30
 
@@ -46,7 +46,7 @@ jobs:
46
46
  - save_cache:
47
47
  paths:
48
48
  - ./vendor/bundle
49
- key: v1-dependencies-{{ .Branch }}
49
+ key: v2-dependencies-{{ .Branch }}
50
50
 
51
51
  # Rubocop
52
52
  - run:
@@ -6,9 +6,6 @@ AllCops:
6
6
  - 'spec/cygport/**/*'
7
7
  - 'vendor/**/*'
8
8
 
9
- Layout/IndentHeredoc:
10
- EnforcedStyle: active_support
11
-
12
9
  Metrics/AbcSize:
13
10
  Max: 40
14
11
  Metrics/BlockLength:
@@ -9,8 +9,11 @@ module Xezat
9
9
  TEMPLATE_DIR = File.expand_path(File.join(DATA_DIR, 'template'))
10
10
  INI_FILE = File.expand_path(File.join(Dir.home, '.xezat'))
11
11
 
12
- LOG = Logger.new(STDOUT)
13
- LOG.formatter = proc { |_severity, datetime, _progname, message|
12
+ class << self
13
+ attr_accessor :logger
14
+ end
15
+ Xezat.logger = Logger.new(STDOUT)
16
+ Xezat.logger.formatter = proc { |_severity, datetime, _progname, message|
14
17
  "#{datetime}: #{message}\n"
15
18
  }
16
19
 
@@ -25,7 +25,7 @@ module Xezat
25
25
  end
26
26
 
27
27
  def execute
28
- LOG.debug('Start bumping')
28
+ Xezat.logger.debug('Start bumping')
29
29
  pkgs = packages
30
30
  vars = variables(@cygport)
31
31
  readme_file = File.expand_path(File.join(vars[:C], 'README'))
@@ -38,12 +38,12 @@ module Xezat
38
38
  changelog: get_changelog(vars, @options, readme_file)
39
39
  }
40
40
 
41
- LOG.debug('Write ChangeLog atomically')
41
+ Xezat.logger.debug('Write ChangeLog atomically')
42
42
  File.atomic_write(readme_file) do |f|
43
43
  f.write(get_embedded_contents(vars, info))
44
44
  end
45
45
 
46
- LOG.debug('End bumping')
46
+ Xezat.logger.debug('End bumping')
47
47
  end
48
48
 
49
49
  def get_embedded_contents(variables, info)
@@ -9,7 +9,7 @@ module Xezat
9
9
  module Command
10
10
  class Bump
11
11
  def get_changelog(variables, options, readme_file)
12
- LOG.debug('Append latest log to changelog')
12
+ Xezat.logger.debug('Append latest log to changelog')
13
13
  current_version = variables[:PVR].intern
14
14
  if FileTest.exist?(readme_file)
15
15
  raise FilePermissionError, "Cannot read #{readme_file}" unless FileTest.readable?(readme_file)
@@ -6,7 +6,7 @@ module Xezat
6
6
  module Command
7
7
  class Bump
8
8
  def get_compilers(languages, _variables)
9
- LOG.debug('Collect compilers')
9
+ Xezat.logger.debug('Collect compilers')
10
10
  compiler_file = File.expand_path(File.join(DATA_DIR, 'compilers.json'))
11
11
  compiler_candidates = JSON.parse(File.read(compiler_file))
12
12
  compilers = []
@@ -9,7 +9,7 @@ module Xezat
9
9
  module Command
10
10
  class Bump
11
11
  def get_development_packages(variables, packages)
12
- LOG.debug('Collect development packages')
12
+ Xezat.logger.debug('Collect development packages')
13
13
  compilers = get_compilers(get_languages(variables[:S]), variables)
14
14
  tools = get_tools(variables)
15
15
  development_packages = (compilers + tools + [:cygport]).uniq.sort
@@ -9,10 +9,10 @@ module Xezat
9
9
  module Command
10
10
  class Bump
11
11
  def get_files(variables)
12
- LOG.debug('Collect files')
12
+ Xezat.logger.debug('Collect files')
13
13
  pkg2files = {}
14
14
  variables[:pkg_name].each do |pkg_name|
15
- LOG.debug(" Collect #{pkg_name}")
15
+ Xezat.logger.debug(" Collect #{pkg_name}")
16
16
  lst_file = File.expand_path(File.join(variables[:T], ".#{pkg_name}.lst"))
17
17
  raise IllegalStateError, "No such file: #{lst_file}" unless FileTest.readable?(lst_file)
18
18
 
@@ -7,7 +7,7 @@ module Xezat
7
7
  module Command
8
8
  class Bump
9
9
  def get_languages(top_src_dir)
10
- LOG.debug('Collect languages')
10
+ Xezat.logger.debug('Collect languages')
11
11
  languages_file = File.expand_path(File.join(DATA_DIR, 'languages.json'))
12
12
  languages_candidates = JSON.parse(File.read(languages_file))
13
13
  languages = []
@@ -8,7 +8,7 @@ module Xezat
8
8
  module Command
9
9
  class Bump
10
10
  def get_runtime_packages(cygport)
11
- LOG.debug('Collect runtime packages from cygport dep')
11
+ Xezat.logger.debug('Collect runtime packages from cygport dep')
12
12
  result = invoke_cygport_dep(cygport)
13
13
  result.gsub(/^.*\*\*\*.*$/, '').split($INPUT_RECORD_SEPARATOR).map(&:lstrip)
14
14
  end
@@ -7,7 +7,7 @@ module Xezat
7
7
  module Command
8
8
  class Bump
9
9
  def get_src_uri(vars, cygclasses = CygclassManager.new)
10
- LOG.debug('Collect SRC_URI')
10
+ Xezat.logger.debug('Collect SRC_URI')
11
11
  cygclasses.vcs.each do |vcs|
12
12
  next unless vars.key?("_#{vcs}_CYGCLASS_".intern)
13
13
 
@@ -30,7 +30,7 @@ module Xezat
30
30
  def execute
31
31
  cygclass_dir = config(@options[:config])['cygwin']['cygclassdir']
32
32
  repository_variables = get_repository_variables(@options['repository'])
33
- raise UnoverwritableCygportError, "#{cygport} already exists" if FileTest.exist?(@cygport) && !@options['overwrite']
33
+ raise UnoverwritableCygportError, "#{@cygport} already exists" if FileTest.exist?(@cygport) && !@options['overwrite']
34
34
 
35
35
  cygclasses = (@options['inherit'] || '').split(',')
36
36
  template_variables = get_template_variables(repository_variables, CygclassManager.new(cygclass_dir), cygclasses)
@@ -19,7 +19,7 @@ module Xezat
19
19
  end
20
20
 
21
21
  def execute
22
- LOG.debug('Start porting')
22
+ Xezat.logger.debug('Start porting')
23
23
  vars = variables(@cygport)
24
24
  d = File.expand_path(File.join(get_port_directory(@options), vars[:PN]))
25
25
  cygport = File.expand_path(File.join(vars[:top], @cygport))
@@ -35,7 +35,7 @@ module Xezat
35
35
  FileUtils.cp(cygport, d, fuo)
36
36
  FileUtils.cp(readme, d, fuo)
37
37
  FileUtils.cp(src_patch, d, fuo) unless FileTest.zero?(src_patch)
38
- LOG.debug('End porting')
38
+ Xezat.logger.debug('End porting')
39
39
  end
40
40
 
41
41
  def get_port_directory(options)
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pkg-config'
4
+ require 'xezat/variables'
5
+
6
+ module Xezat
7
+ module Command
8
+ class Validate
9
+ include Xezat
10
+
11
+ def initialize(options, cygport)
12
+ @options = options
13
+ @cygport = cygport
14
+ end
15
+
16
+ def execute
17
+ Xezat.logger.debug('Start validating')
18
+ vars = variables(@cygport)
19
+ validate_pkgconfig(vars)
20
+ Xezat.logger.debug('End validating')
21
+ end
22
+
23
+ def validate_pkgconfig(variables)
24
+ pkgconfig_path = File.join(variables[:D], 'usr', 'lib', 'pkgconfig')
25
+ PKGConfig.add_path(pkgconfig_path)
26
+ Dir.glob('*.pc', 0, base: pkgconfig_path).each do |pc|
27
+ basename = File.basename(pc, '.pc')
28
+ Xezat.logger.debug(" #{basename}.pc found")
29
+ modversion = PKGConfig.modversion(basename)
30
+ Xezat.logger.debug(" modversion = #{modversion}")
31
+ pv = variables[:PV][0]
32
+ Xezat.logger.error(" modversion differs from $PN = #{pv}") unless modversion == pv
33
+ Xezat.logger.debug(" cflags = #{PKGConfig.cflags(basename)}")
34
+ Xezat.logger.debug(" libs = #{PKGConfig.libs(basename)}")
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -18,19 +18,19 @@ module Xezat
18
18
  end
19
19
  next if @changelogs.nil?
20
20
 
21
- match_version = /^----- version (.+) -----$/.match(line)
22
- if match_version
23
- version = match_version[1].intern
21
+ matched_version = /^----- version (.+) -----$/.match(line)
22
+ if matched_version
23
+ version = matched_version[1].intern
24
24
  next
25
25
  end
26
- match_content = /^(.+)$/.match(line)
27
- next unless match_content
26
+ matched_content = /^(.+)$/.match(line)
27
+ next unless matched_content
28
28
  raise ReadmeSyntaxError, 'Version missing' if version.nil?
29
29
 
30
30
  if @changelogs.key?(version)
31
- @changelogs[version] << $INPUT_RECORD_SEPARATOR << match_content[1]
31
+ @changelogs[version] << $INPUT_RECORD_SEPARATOR << matched_content[1]
32
32
  else
33
- @changelogs[version] = match_content[1]
33
+ @changelogs[version] = matched_content[1]
34
34
  end
35
35
  end
36
36
  @changelogs ||= {}
@@ -8,9 +8,9 @@ module Xezat
8
8
  matched = str.match(/(.+)-(.+)/)
9
9
  version = matched[1]
10
10
  @release = matched[2]
11
- splitted = version.split('+')
12
- @version = splitted[0].tr('_', '.')
13
- @revision = splitted.length >= 2 ? splitted[1].match(/(\d+)/)[0].to_i : Time.at(0).strftime('%Y%m%d').to_i
11
+ split = version.split('+')
12
+ @version = split[0].tr('_', '.')
13
+ @revision = split.length >= 2 ? split[1].match(/(\d+)/)[0].to_i : Time.at(0).strftime('%Y%m%d').to_i
14
14
  end
15
15
 
16
16
  def to_v
@@ -4,7 +4,7 @@ require 'find'
4
4
 
5
5
  module Xezat
6
6
  module Detector
7
- class CMake
7
+ class Cmake
8
8
  def detect(variables)
9
9
  Find.find(variables[:S]) do |file|
10
10
  return true if file.end_with?(File::SEPARATOR + 'CMakeLists.txt')
@@ -7,7 +7,7 @@ module Xezat
7
7
  class Gengetopt
8
8
  def detect(variables)
9
9
  Find.find(variables[:S]) do |file|
10
- return true if file.end_with?('.ggo')
10
+ return true if file.end_with?('.ggo', '.ggo.in')
11
11
  end
12
12
  false
13
13
  end
@@ -4,7 +4,7 @@ require 'find'
4
4
 
5
5
  module Xezat
6
6
  module Detector
7
- class GObjectIntrospection
7
+ class GobjectIntrospection
8
8
  def detect(variables)
9
9
  File.directory?(File.join(variables[:D], 'usr', 'lib', 'girepository-1.0'))
10
10
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Xezat
4
4
  module Detector
5
- class LibQt5CoreDevel
5
+ class Libqt5coreDevel
6
6
  def detect(variables)
7
7
  variables.key?(:_qt5_qmake_CYGCLASS_)
8
8
  end
@@ -11,6 +11,7 @@ module Xezat
11
11
  end
12
12
  Find.find(variables[:S]) do |file|
13
13
  next unless file.end_with?(File::SEPARATOR + 'Makefile') || file.end_with?(File::SEPARATOR + 'makefile')
14
+ next if File.directory?(file)
14
15
 
15
16
  File.foreach(file) do |line|
16
17
  return true if line.lstrip.include?('libtool')
@@ -4,7 +4,7 @@ require 'find'
4
4
 
5
5
  module Xezat
6
6
  module Detector
7
- class Python3Docutils
7
+ class Python36Docutils
8
8
  def detect(variables)
9
9
  Find.find(variables[:S]) do |file|
10
10
  next unless file.end_with?(File::SEPARATOR + 'configure.ac') || file.end_with?(File::SEPARATOR + 'configure.in')
@@ -6,18 +6,7 @@ module Xezat
6
6
  module Detector
7
7
  class Python36
8
8
  def detect(variables)
9
- return true if File.directory?(File.join(variables[:D], 'usr', 'lib', 'python3.6'))
10
-
11
- Find.find(variables[:D]) do |file|
12
- next unless file.end_with?('.py')
13
-
14
- File.foreach(file) do |line|
15
- return true if line.strip.start_with?('#!/usr/bin/env python3')
16
-
17
- break
18
- end
19
- end
20
- false
9
+ File.directory?(File.join(variables[:D], 'usr', 'lib', 'python3.6'))
21
10
  end
22
11
  end
23
12
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'find'
4
+
5
+ module Xezat
6
+ module Detector
7
+ class Python37
8
+ def detect(variables)
9
+ File.directory?(File.join(variables[:D], 'usr', 'lib', 'python3.7'))
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,27 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'xezat'
4
+ require 'xezat/ext/string'
4
5
 
5
6
  module Xezat
6
7
  class DetectorManager
7
8
  def initialize(detector_dir = File.expand_path(File.join(File.dirname(__FILE__), 'detector')))
8
- LOG.debug('Load detectors')
9
+ Xezat.logger.debug('Load detectors')
9
10
  @detectors = {}
10
11
  Dir.glob(File.join(detector_dir, '*.rb')) do |rb|
11
12
  require rb
12
- @detectors[File.basename(rb, '.rb').intern] = Object.const_get("Xezat::Detector::#{Xezat::Detector.constants[-1]}").new
13
+ @detectors[File.basename(rb, '.rb').intern] = Object.const_get("Xezat::Detector::#{File.basename(rb, '.rb').camelize}").new
13
14
  end
14
15
  end
15
16
 
16
17
  def detect(variables)
17
- LOG.debug('Detect tools')
18
+ Xezat.logger.debug('Detect tools')
18
19
  tools = []
19
20
  @detectors.each do |name, detector|
20
21
  if detector.detect(variables)
21
22
  tools << name
22
- LOG.debug(" #{name} ... yes")
23
+ Xezat.logger.debug(" #{name} ... yes")
23
24
  else
24
- LOG.debug(" #{name} ... no")
25
+ Xezat.logger.debug(" #{name} ... no")
25
26
  end
26
27
  end
27
28
  tools
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class String
4
+ def camelize
5
+ split(/[._-]/).map(&:capitalize).join
6
+ end
7
+ end
@@ -60,5 +60,12 @@ module Xezat
60
60
  require 'xezat/command/port'
61
61
  Command::Port.new(options, cygport).execute
62
62
  end
63
+
64
+ desc 'validate cygport', 'Validate files'
65
+
66
+ def validate(cygport)
67
+ require 'xezat/command/validate'
68
+ Command::Validate.new(nil, cygport).execute
69
+ end
63
70
  end
64
71
  end
@@ -4,7 +4,7 @@ require 'xezat'
4
4
 
5
5
  module Xezat
6
6
  def packages(db_path = '/etc/setup/installed.db')
7
- LOG.debug("Collect installed packages from #{db_path}")
7
+ Xezat.logger.debug("Collect installed packages from #{db_path}")
8
8
  raise ArgumentError, "#{db_path} not found" unless File.exist?(db_path)
9
9
 
10
10
  packages = {}
@@ -12,10 +12,10 @@ module Xezat
12
12
  cygport_dir = File.dirname(File.absolute_path(cygport))
13
13
  cache_file = File.expand_path(File.join(cygport_dir, File.basename(cygport, '.cygport') + '.cache.yml'))
14
14
 
15
- LOG.debug('Extract variables')
15
+ Xezat.logger.debug('Extract variables')
16
16
 
17
17
  if File.exist?(cache_file) && File.ctime(cache_file) > File.ctime(cygport)
18
- LOG.debug(' Read cache for variables')
18
+ Xezat.logger.debug(' Read cache for variables')
19
19
  return YAML.safe_load(File.open(cache_file), [Symbol]).each_value do |v|
20
20
  v.strip! if v.respond_to?(:strip)
21
21
  end
@@ -33,7 +33,7 @@ module Xezat
33
33
  variables[:DESCRIPTION].word_wrap!(79)
34
34
 
35
35
  File.atomic_write(cache_file) do |f|
36
- LOG.debug(' Write cache for variables')
36
+ Xezat.logger.debug(' Write cache for variables')
37
37
  f.write(YAML.dump(variables))
38
38
  end
39
39
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Xezat
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
@@ -42,6 +42,9 @@
42
42
  "gcc-core"
43
43
  ]
44
44
  },
45
+ "Protocol Buffer": {
46
+ "package": "libprotobuf-devel"
47
+ },
45
48
  "Ragel": {
46
49
  "package": "ragel"
47
50
  },
@@ -24,17 +24,18 @@ Gem::Specification.new do |spec|
24
24
  spec.required_ruby_version = '>= 2.3.6'
25
25
 
26
26
  spec.add_runtime_dependency 'facets', '>= 3.1.0'
27
- spec.add_runtime_dependency 'github-linguist', '>= 7.3.1'
27
+ spec.add_runtime_dependency 'github-linguist', '>= 7.6.1'
28
28
  spec.add_runtime_dependency 'inifile', '>= 3.0.0'
29
29
  spec.add_runtime_dependency 'io-console', '>= 0.4.6'
30
+ spec.add_runtime_dependency 'pkg-config', '>= 1.3.9'
30
31
  spec.add_runtime_dependency 'thor', '>= 0.20.3'
31
32
  spec.add_runtime_dependency 'thor-zsh_completion', '>= 0.1.5'
32
33
 
33
34
  spec.add_development_dependency 'bundler', '>= 1.15.3'
34
- spec.add_development_dependency 'fasterer', '>= 0.5.1'
35
- spec.add_development_dependency 'rake', '>= 12.0'
36
- spec.add_development_dependency 'rspec', '>= 3.8.0'
35
+ spec.add_development_dependency 'fasterer', '>= 0.7.1'
36
+ spec.add_development_dependency 'rake', '>= 13.0'
37
+ spec.add_development_dependency 'rspec', '>= 3.9.0'
37
38
  spec.add_development_dependency 'rspec_junit_formatter', '<= 0.4.1'
38
- spec.add_development_dependency 'rubocop', '>= 0.67.2'
39
- spec.add_development_dependency 'rubocop-performance', '>= 1.1.0'
39
+ spec.add_development_dependency 'rubocop', '>= 0.75.0'
40
+ spec.add_development_dependency 'rubocop-performance', '>= 1.5.0'
40
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xezat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daisuke Fujimura (fd0)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-30 00:00:00.000000000 Z
11
+ date: 2019-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facets
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 7.3.1
33
+ version: 7.6.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 7.3.1
40
+ version: 7.6.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: inifile
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.4.6
69
+ - !ruby/object:Gem::Dependency
70
+ name: pkg-config
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.3.9
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.3.9
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: thor
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,42 +128,42 @@ dependencies:
114
128
  requirements:
115
129
  - - ">="
116
130
  - !ruby/object:Gem::Version
117
- version: 0.5.1
131
+ version: 0.7.1
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - ">="
123
137
  - !ruby/object:Gem::Version
124
- version: 0.5.1
138
+ version: 0.7.1
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: rake
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - ">="
130
144
  - !ruby/object:Gem::Version
131
- version: '12.0'
145
+ version: '13.0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
- version: '12.0'
152
+ version: '13.0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: rspec
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - ">="
144
158
  - !ruby/object:Gem::Version
145
- version: 3.8.0
159
+ version: 3.9.0
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - ">="
151
165
  - !ruby/object:Gem::Version
152
- version: 3.8.0
166
+ version: 3.9.0
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: rspec_junit_formatter
155
169
  requirement: !ruby/object:Gem::Requirement
@@ -170,28 +184,28 @@ dependencies:
170
184
  requirements:
171
185
  - - ">="
172
186
  - !ruby/object:Gem::Version
173
- version: 0.67.2
187
+ version: 0.75.0
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - ">="
179
193
  - !ruby/object:Gem::Version
180
- version: 0.67.2
194
+ version: 0.75.0
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: rubocop-performance
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - ">="
186
200
  - !ruby/object:Gem::Version
187
- version: 1.1.0
201
+ version: 1.5.0
188
202
  type: :development
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - ">="
193
207
  - !ruby/object:Gem::Version
194
- version: 1.1.0
208
+ version: 1.5.0
195
209
  description: xezat helps you win at cygport.
196
210
  email:
197
211
  - booleanlabel@gmail.com
@@ -229,6 +243,7 @@ files:
229
243
  - lib/xezat/command/generate.rb
230
244
  - lib/xezat/command/init.rb
231
245
  - lib/xezat/command/port.rb
246
+ - lib/xezat/command/validate.rb
232
247
  - lib/xezat/config.rb
233
248
  - lib/xezat/cygchangelog.rb
234
249
  - lib/xezat/cygclasses.rb
@@ -249,12 +264,14 @@ files:
249
264
  - lib/xezat/detector/meson.rb
250
265
  - lib/xezat/detector/ninja.rb
251
266
  - lib/xezat/detector/python27.rb
252
- - lib/xezat/detector/python3-docutils.rb
267
+ - lib/xezat/detector/python36-docutils.rb
253
268
  - lib/xezat/detector/python36.rb
269
+ - lib/xezat/detector/python37.rb
254
270
  - lib/xezat/detector/roundup.rb
255
271
  - lib/xezat/detector/waf.rb
256
272
  - lib/xezat/detectors.rb
257
273
  - lib/xezat/ext/linguist/file_blob.rb
274
+ - lib/xezat/ext/string.rb
258
275
  - lib/xezat/generator/pkgconfig.rb
259
276
  - lib/xezat/main.rb
260
277
  - lib/xezat/packages.rb