xezat 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +57 -12
- data/lib/xezat.rb +1 -0
- data/lib/xezat/command/bump.rb +22 -10
- data/lib/xezat/command/create.rb +2 -2
- data/lib/xezat/command/port.rb +60 -0
- data/lib/xezat/cygchangelog.rb +2 -2
- data/lib/xezat/cygversion.rb +27 -0
- data/lib/xezat/detector/python-docutils.rb +20 -0
- data/lib/xezat/validator/pkgconfig.rb +15 -3
- data/lib/xezat/version.rb +1 -1
- data/share/xezat/compilers.json +4 -1
- data/share/xezat/show_cygport_description.sh +1 -1
- data/share/xezat/template/README.erb +0 -4
- data/test/xezat/command/test_bump.rb +24 -0
- data/test/xezat/detector/fixture/python-docutils/no/configure.ac +1 -0
- data/test/xezat/detector/fixture/python-docutils/yes/configure.ac +1 -0
- data/test/xezat/detector/test_autoconf.rb +1 -1
- data/test/xezat/detector/test_automake.rb +1 -1
- data/test/xezat/detector/test_boost.m4.rb +1 -1
- data/test/xezat/detector/test_cmake.rb +1 -1
- data/test/xezat/detector/test_gengetopt.rb +1 -1
- data/test/xezat/detector/test_python-docutils.rb +19 -0
- data/test/xezat/test_cygversion.rb +46 -0
- data/test/xezat/validator/fixture/pkgconfig/no_at/usr/lib/pkgconfig/xezat.pc +11 -0
- data/test/xezat/validator/fixture/pkgconfig/no_link/usr/lib/pkgconfig/xezat.pc +11 -0
- data/test/xezat/validator/fixture/{m4/skip/usr/share/aclocal → pkgconfig/skip/usr/lib/pkgconfig}/.gitkeep +0 -0
- data/test/xezat/validator/fixture/pkgconfig/yes/usr/lib/pkgconfig/xezat.pc +10 -0
- data/test/xezat/validator/test_pkgconfig.rb +30 -0
- data/xezat.gemspec +5 -3
- metadata +59 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed2c44e72ce46695edf8b725d890d0b56670c023
|
4
|
+
data.tar.gz: 21e444b65fde66b0538a85c7c6628baf1fe0466f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 317b2be1714e348aa9b656a9a45cc5aeea09d9f8b20aac7874a877eb129d8a2b970e52f703bc3a5d2bc3f02e192c4b24d880e5dd0b3e671b555ec31d55f9877b
|
7
|
+
data.tar.gz: f3c859dcf772f2da6b90ef7e14a11665657eaef4ef78bd2814bdfbf722ea49279ec0ca1d2040bc60c84c8089fa5f1dbbab544d50acf2f5c170199dee81c78131
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
xezat 0.0.
|
23
|
+
xezat 0.0.2 -- Xezat is the complement of cygport
|
24
24
|
|
25
25
|
Usage:
|
26
26
|
|
@@ -37,8 +37,10 @@ Or install it yourself as:
|
|
37
37
|
debug show cygport variables
|
38
38
|
doctor diagnose installed packages
|
39
39
|
generate generate additional files
|
40
|
+
port copy cygport to git repository
|
40
41
|
validate validate package contents
|
41
42
|
|
43
|
+
|
42
44
|
### create
|
43
45
|
|
44
46
|
xezat create -- create new cygport
|
@@ -50,10 +52,10 @@ Or install it yourself as:
|
|
50
52
|
Options:
|
51
53
|
-a, --app-only application only
|
52
54
|
-c, --category category specify category
|
53
|
-
|
55
|
+
-d, --description description specify description
|
54
56
|
-i, --inherit cygclass inherit cygclasses
|
55
57
|
-o, --overwrite overwrite cygport
|
56
|
-
|
58
|
+
-r, --repository repository specify repository (github, google, sourceforge)
|
57
59
|
-s, --summary summary specify summary
|
58
60
|
-h, --help Show this message
|
59
61
|
-v, --version Print the name and version
|
@@ -61,8 +63,8 @@ Or install it yourself as:
|
|
61
63
|
|
62
64
|
Example.1
|
63
65
|
|
64
|
-
% xezat create xezat-0.0.
|
65
|
-
% cat xezat-0.0.
|
66
|
+
% xezat create xezat-0.0.2-1bl1.cygport
|
67
|
+
% cat xezat-0.0.2-1bl1.cygport
|
66
68
|
|
67
69
|
```bash
|
68
70
|
HOMEPAGE=""
|
@@ -81,8 +83,8 @@ PKG_NAMES="
|
|
81
83
|
|
82
84
|
Example.2
|
83
85
|
|
84
|
-
% xezat create -a -c Libs -i git --repository=github -s 'Complement of Cygport' -o xezat-0.0.
|
85
|
-
% cat xezat-0.0.
|
86
|
+
% xezat create -a -c Libs -i git --repository=github -s 'Complement of Cygport' -o xezat-0.0.2-1bl1.cygport
|
87
|
+
% cat xezat-0.0.2-1bl1.cygport
|
86
88
|
|
87
89
|
```bash
|
88
90
|
HOMEPAGE="https://github.com/fd00/${PN}"
|
@@ -114,13 +116,13 @@ PKG_NAMES="
|
|
114
116
|
|
115
117
|
Example.1
|
116
118
|
|
117
|
-
% xezat debug xezat-0.0.
|
119
|
+
% xezat debug xezat-0.0.2-1bl1.cygport
|
118
120
|
#<Xezat::VariableManager:0x000006011ba808
|
119
121
|
@variables=
|
120
122
|
{:AR=>"ar",
|
121
123
|
:ARCH=>"x86_64",
|
122
124
|
:ARCH_x86_64=>"1",
|
123
|
-
:B=>"/usr/src/xezat-0.0.
|
125
|
+
:B=>"/usr/src/xezat-0.0.2-1bl1.x86_64/build",
|
124
126
|
:BASH=>"/usr/bin/bash",
|
125
127
|
(snip)
|
126
128
|
:mirror_apache=>"http://www.apache.org/dist",
|
@@ -129,10 +131,10 @@ Example.1
|
|
129
131
|
:mirror_cran=>"http://cran.r-project.org",
|
130
132
|
:mirror_ctan=>"http://mirror.ctan.org/",
|
131
133
|
(snip)
|
132
|
-
:src_patchfile=>"xezat-0.0.
|
133
|
-
:srcdir=>"/usr/src/xezat-0.0.
|
134
|
+
:src_patchfile=>"xezat-0.0.2-1bl1.src.patch",
|
135
|
+
:srcdir=>"/usr/src/xezat-0.0.2-1bl1.x86_64/src",
|
134
136
|
:top=>"/usr/src",
|
135
|
-
:workdir=>"/usr/src/xezat-0.0.
|
137
|
+
:workdir=>"/usr/src/xezat-0.0.2-1bl1.x86_64"}>
|
136
138
|
%
|
137
139
|
|
138
140
|
### doctor
|
@@ -180,6 +182,22 @@ Example.1
|
|
180
182
|
-v, --version Print the name and version
|
181
183
|
-t, --trace Show the full backtrace when an error occurs
|
182
184
|
|
185
|
+
Example.1
|
186
|
+
|
187
|
+
% xezat generate xezat-0.0.2-1bl1.cygport -p
|
188
|
+
% cat xezat-0.0.2-1bl1.x86_64/src/xezat-0.0.2/xezat.pc
|
189
|
+
prefix=@prefix@
|
190
|
+
exec_prefix=@exec_prefix@
|
191
|
+
libdir=@libdir@
|
192
|
+
includedir=@includedir@
|
193
|
+
|
194
|
+
Name: xezat
|
195
|
+
Description: Complement of cygport
|
196
|
+
Version: @VERSION@
|
197
|
+
Libs: -L${libdir} -lxezat
|
198
|
+
Cflags: -I${includedir}
|
199
|
+
%
|
200
|
+
|
183
201
|
### validate
|
184
202
|
|
185
203
|
xezat validate -- validate package contents
|
@@ -205,3 +223,30 @@ Example.1
|
|
205
223
|
-h, --help Show this message
|
206
224
|
-v, --version Print the name and version
|
207
225
|
-t, --trace Show the full backtrace when an error occurs
|
226
|
+
|
227
|
+
### port
|
228
|
+
|
229
|
+
xezat port -- copy cygport to git repository
|
230
|
+
|
231
|
+
Usage:
|
232
|
+
|
233
|
+
xezat port cygport
|
234
|
+
|
235
|
+
Options:
|
236
|
+
-V, --verbose print the results verbosely
|
237
|
+
-n, --no-operation print the results without actually copying any files
|
238
|
+
-i, --inifile *.ini specify inifile
|
239
|
+
-t, --target portdir specify git repository directory
|
240
|
+
-h, --help Show this message
|
241
|
+
-v, --version Print the name and version
|
242
|
+
-t, --trace Show the full backtrace when an error occurs
|
243
|
+
|
244
|
+
Example.1
|
245
|
+
|
246
|
+
% cat ~/.xezat
|
247
|
+
[xezat]
|
248
|
+
distdir = /cygdrive/e/dist
|
249
|
+
portdir = /cygdrive/e/yacp
|
250
|
+
% xezat port xezat-0.0.2-1bl1.cygport
|
251
|
+
% ls /cygdrive/e/yacp/xezat
|
252
|
+
README xezat-0.0.2-1bl1.cygport xezat-0.0.2-1bl1.src.patch
|
data/lib/xezat.rb
CHANGED
@@ -3,4 +3,5 @@ module Xezat
|
|
3
3
|
DATA_DIR = File::expand_path(File::join(ROOT_DIR, 'share', 'xezat'))
|
4
4
|
REPOSITORY_DIR = File::expand_path(File::join(DATA_DIR, 'repository'))
|
5
5
|
TEMPLATE_DIR = File::expand_path(File::join(DATA_DIR, 'template'))
|
6
|
+
INI_FILE = File::expand_path(File::join(Dir::home, '.xezat'))
|
6
7
|
end
|
data/lib/xezat/command/bump.rb
CHANGED
@@ -27,6 +27,7 @@ module Xezat
|
|
27
27
|
program.command(:bump) do |c|
|
28
28
|
c.syntax 'bump cygport'
|
29
29
|
c.description 'update CYGWIN-PATCHES/README'
|
30
|
+
c.option 'message', '-m', '--message message', String, 'specify changelog message'
|
30
31
|
c.action do |args, options|
|
31
32
|
execute(c, args, options)
|
32
33
|
end
|
@@ -76,9 +77,9 @@ module Xezat
|
|
76
77
|
def get_src_uri(variables, cygclass_manager = CygclassManager.new)
|
77
78
|
cygclass_manager.vcs.each do |vcs|
|
78
79
|
src_uri_key = "#{vcs.to_s.upcase}_URI".intern
|
79
|
-
return variables[src_uri_key] if variables.key?(src_uri_key)
|
80
|
+
return variables[src_uri_key].split if variables.key?(src_uri_key)
|
80
81
|
end
|
81
|
-
variables[:SRC_URI]
|
82
|
+
variables[:SRC_URI].split
|
82
83
|
end
|
83
84
|
|
84
85
|
# package が依存している runtime のリストを取得する
|
@@ -93,7 +94,7 @@ module Xezat
|
|
93
94
|
|
94
95
|
# package を build するために必要な development package のリストを取得する
|
95
96
|
def get_development_packages(variables, packages)
|
96
|
-
compilers = get_compilers(variables)
|
97
|
+
compilers = get_compilers(get_languages(variables))
|
97
98
|
tools = get_tools(variables)
|
98
99
|
development_packages = (compilers + tools + [:cygport]).uniq.sort
|
99
100
|
development_packages.map! do |package|
|
@@ -101,24 +102,35 @@ module Xezat
|
|
101
102
|
end
|
102
103
|
end
|
103
104
|
|
104
|
-
#
|
105
|
-
def
|
106
|
-
|
107
|
-
# ファイルの内容からプログラミング言語を特定する
|
105
|
+
# source tree に存在するソースコードの言語を特定する
|
106
|
+
def get_languages(variables)
|
108
107
|
languages = []
|
109
108
|
Find::find(variables[:S]) do |path|
|
110
109
|
unless FileTest::directory?(path)
|
111
110
|
language = Xezat::Refine::Linguist::FileBlob.new(path).language
|
112
111
|
unless language.nil?
|
113
|
-
|
112
|
+
name = language.name
|
113
|
+
if name == 'Objective-C' # Objective-C は誤検知があるため suffix で再確認
|
114
114
|
next unless path.end_with?('.m')
|
115
115
|
end
|
116
|
-
|
116
|
+
if name == 'Ruby' # Ruby は誤検知があるため suffix で再確認
|
117
|
+
next unless path.end_with?('.rb')
|
118
|
+
end
|
119
|
+
if name == 'C++' # C++ は誤検知があるため suffix で再確認
|
120
|
+
name = 'C' if path.end_with?('.h')
|
121
|
+
end
|
122
|
+
if name == 'C' # suffix で再確認
|
123
|
+
name = 'C++' if path.end_with?('.C')
|
124
|
+
end
|
125
|
+
languages << name
|
117
126
|
end
|
118
127
|
end
|
119
128
|
end
|
129
|
+
languages
|
130
|
+
end
|
120
131
|
|
121
|
-
|
132
|
+
# package を build するために必要な compiler package のリストを取得する
|
133
|
+
def get_compilers(languages)
|
122
134
|
compiler_file = File.expand_path(File.join(DATA_DIR, 'compilers.json'))
|
123
135
|
compiler_candidates = JSON.parse(File::read(compiler_file))
|
124
136
|
compilers = []
|
data/lib/xezat/command/create.rb
CHANGED
@@ -30,10 +30,10 @@ module Xezat
|
|
30
30
|
c.description 'create new cygport'
|
31
31
|
c.option 'apponly', '-a', '--app-only', 'application only'
|
32
32
|
c.option 'category', '-c', '--category category', String, 'specify category'
|
33
|
-
c.option 'description', '--description description', String, 'specify description'
|
33
|
+
c.option 'description', '-d', '--description description', String, 'specify description'
|
34
34
|
c.option 'inherit', '-i', '--inherit cygclass', Array, 'inherit cygclasses'
|
35
35
|
c.option 'overwrite', '-o', '--overwrite', 'overwrite cygport'
|
36
|
-
c.option 'repository', '--repository repository', String, 'specify repository (github, google, sourceforge)'
|
36
|
+
c.option 'repository', '-r', '--repository repository', String, 'specify repository (github, google, sourceforge)'
|
37
37
|
c.option 'summary', '-s', '--summary summary', String, 'specify summary'
|
38
38
|
c.action do |args, options|
|
39
39
|
execute(c, args, options)
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'inifile'
|
3
|
+
require 'xezat'
|
4
|
+
require 'xezat/commands'
|
5
|
+
require 'xezat/variables'
|
6
|
+
|
7
|
+
module Xezat
|
8
|
+
# copy 先の git repo が指定されていない場合に投げられる例外
|
9
|
+
class NoPortDirectoryError < StandardError
|
10
|
+
end
|
11
|
+
|
12
|
+
module Command
|
13
|
+
# cygport を git repo に copy する
|
14
|
+
class Port
|
15
|
+
def initialize(program)
|
16
|
+
program.command(:port) do |c|
|
17
|
+
c.syntax 'port cygport'
|
18
|
+
c.description 'copy cygport to git repository'
|
19
|
+
c.option 'verbose', '-V', '--verbose', 'print the results verbosely'
|
20
|
+
c.option 'noop', '-n', '--no-operation', 'print the results without actually copying any files'
|
21
|
+
c.option 'inifile', '-i', '--inifile *.ini', String, 'specify inifile'
|
22
|
+
c.option 'portdir', '-t', '--target portdir', String, 'specify git repository directory'
|
23
|
+
c.action do |args, options|
|
24
|
+
execute(c, args, options)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
CommandManager::register(:port, self)
|
30
|
+
|
31
|
+
def execute(c, args, options)
|
32
|
+
cygport = args.shift
|
33
|
+
raise ArgumentError, 'wrong number of arguments (0 for 1)' unless cygport
|
34
|
+
c.logger.info "ignore extra arguments: #{args.to_s}" unless args.empty?
|
35
|
+
|
36
|
+
variables = VariableManager::get_default_variables(cygport)
|
37
|
+
|
38
|
+
d = File::expand_path(File::join(get_port_directory(options), variables[:PN]))
|
39
|
+
|
40
|
+
fuo = {noop: options.key?('noop'), verbose: options.key?('noop') || options.key?('verbose')}
|
41
|
+
|
42
|
+
FileUtils::mkdir_p(d, fuo)
|
43
|
+
FileUtils::cp(File::expand_path(File::join(variables[:top], cygport)), d, fuo)
|
44
|
+
FileUtils::cp(File::expand_path(File::join(variables[:C], 'README')), d, fuo)
|
45
|
+
src_patch = File::expand_path(File::join(variables[:patchdir], "#{variables[:PF]}.src.patch"))
|
46
|
+
FileUtils::cp(src_patch, d, fuo) unless FileTest::zero?(src_patch)
|
47
|
+
end
|
48
|
+
|
49
|
+
def get_port_directory(options, xezat_ini_file = INI_FILE)
|
50
|
+
d = nil
|
51
|
+
inifile = options.key?('inifile') ? options['inifile'] : xezat_ini_file
|
52
|
+
ini = IniFile::load(inifile)['xezat']
|
53
|
+
d = ini['portdir'] if ini.key?('portdir')
|
54
|
+
d = options['portdir'] if options.key?('portdir')
|
55
|
+
raise NoPortDirectoryError if d.nil?
|
56
|
+
d
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/xezat/cygchangelog.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'xezat/cygversion'
|
2
2
|
|
3
3
|
module Xezat
|
4
4
|
# package の changelog を管理するクラス
|
@@ -43,7 +43,7 @@ module Xezat
|
|
43
43
|
|
44
44
|
def each(&block)
|
45
45
|
@changelogs.sort do |a, b|
|
46
|
-
- (
|
46
|
+
- (Cygversion.new(a[0].to_s) <=> Cygversion.new(b[0].to_s))
|
47
47
|
end.each do |k, v|
|
48
48
|
block.call(k, v)
|
49
49
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
module Xezat
|
4
|
+
# package の version を管理するクラス
|
5
|
+
class Cygversion
|
6
|
+
def initialize(str)
|
7
|
+
matched = str.match(/(.+)-(.+)/)
|
8
|
+
version = matched[1]
|
9
|
+
@release = matched[2]
|
10
|
+
splitted = version.split('+')
|
11
|
+
@version = splitted[0]
|
12
|
+
@revision = splitted.length >= 2 ? splitted[1].match(/(\d+)/)[0].to_i : Time::at(0).strftime('%Y%m%d').to_i
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_v
|
16
|
+
[Gem::Version.new(@version), @revision, @release]
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_a
|
20
|
+
[@version, @revision, @release]
|
21
|
+
end
|
22
|
+
|
23
|
+
def <=>(operand)
|
24
|
+
to_v <=> operand.to_v
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'find'
|
2
|
+
require 'xezat/detectors'
|
3
|
+
|
4
|
+
module Xezat
|
5
|
+
module Detector
|
6
|
+
class PythonDocutils
|
7
|
+
DetectorManager::register(:'python-docutils', self)
|
8
|
+
def detect(variables)
|
9
|
+
Find::find(variables[:S]) do |file|
|
10
|
+
if file.end_with?(File::SEPARATOR + 'configure.ac') || file.end_with?(File::SEPARATOR + 'configure.in')
|
11
|
+
File::foreach(file) do |line|
|
12
|
+
return true if line.lstrip.start_with?('AC_CHECK_PROGS') && line.index('rst2man').is_a?(Integer)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -6,17 +6,29 @@ module Xezat
|
|
6
6
|
ValidatorManager::register(:pkgconfig ,self)
|
7
7
|
def validate(variables)
|
8
8
|
pcdir = File::join(variables[:D], 'usr', 'lib', 'pkgconfig')
|
9
|
-
result =
|
9
|
+
result = true
|
10
|
+
details = []
|
10
11
|
if Dir::exists?(pcdir)
|
11
12
|
Find::find(pcdir) do |file|
|
12
13
|
if file.end_with?('.pc')
|
13
|
-
|
14
|
+
File::foreach(file) { |line|
|
15
|
+
unless line.index('@').nil?
|
16
|
+
result = false
|
17
|
+
details << "#{file.gsub(variables[:D], '')}: contains @"
|
18
|
+
break
|
19
|
+
end
|
20
|
+
if line.start_with?('Libs:') && line.index(' -l').nil?
|
21
|
+
result = false
|
22
|
+
details << "#{file.gsub(variables[:D], '')}: no library flags found"
|
23
|
+
break
|
24
|
+
end
|
25
|
+
}
|
14
26
|
end
|
15
27
|
end
|
16
28
|
else
|
17
29
|
result = nil
|
18
30
|
end
|
19
|
-
[result, nil]
|
31
|
+
[result, details.empty? ? nil : details.join($/)]
|
20
32
|
end
|
21
33
|
end
|
22
34
|
end
|
data/lib/xezat/version.rb
CHANGED
data/share/xezat/compilers.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
show_cygport_description()
|
4
4
|
{
|
5
|
-
declare | grep '^DESCRIPTION=' | sed -e 's/^DESCRIPTION
|
5
|
+
declare | grep '^DESCRIPTION=' | sed -e 's/^DESCRIPTION=\$\?//g' -e 's/\\n/\n/g' -e "s/^'//g" -e "s/'$//" -e "s/\\\//g"
|
6
6
|
}
|
7
7
|
|
8
8
|
source ${CYGPORT:-/usr/bin/cygport} $* show_cygport_description
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'xezat/command/bump'
|
2
|
+
|
3
|
+
module Xezat::Test::Command
|
4
|
+
class BumpTest < Test::Unit::TestCase
|
5
|
+
include Xezat::Command
|
6
|
+
include Xezat
|
7
|
+
def setup
|
8
|
+
@command = CommandManager[:bump]
|
9
|
+
@cygclass_manager = CygclassManager.new(File.join(File.dirname(__FILE__), '..', '..', 'cygport', 'cygclass'))
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_get_src_uri
|
13
|
+
variables = {SRC_URI: 'src1 src2'}
|
14
|
+
src_uri = @command.get_src_uri(variables, @cygclass_manager)
|
15
|
+
assert_equal(['src1', 'src2'], src_uri)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_get_src_uri_git
|
19
|
+
variables = {SRC_URI: 'src1 src2', GIT_URI: 'git1'}
|
20
|
+
src_uri = @command.get_src_uri(variables, @cygclass_manager)
|
21
|
+
assert_equal(['git1'], src_uri)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
AC_MSG_RESULT([All man pages found. We don't need rst2man!])
|
@@ -0,0 +1 @@
|
|
1
|
+
AC_CHECK_PROGS([RST2MAN], [rst2man rst2man.py], [])
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'xezat/detectors'
|
2
|
+
|
3
|
+
module Xezat::Test::Detector
|
4
|
+
class PythonDocutilsTest < Test::Unit::TestCase
|
5
|
+
include Xezat::Detector
|
6
|
+
include Xezat
|
7
|
+
def setup
|
8
|
+
@detector = DetectorManager[:'python-docutils']
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_yes
|
12
|
+
assert_true(@detector.detect({S: File::join(File::dirname(__FILE__), 'fixture', 'python-docutils', 'yes')}))
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_no
|
16
|
+
assert_false(@detector.detect({S: File::join(File::dirname(__FILE__), 'fixture', 'python-docutils', 'no')}))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'xezat/cygversion'
|
2
|
+
|
3
|
+
module Xezat::Test
|
4
|
+
class CygversionTest < Test::Unit::TestCase
|
5
|
+
include Xezat
|
6
|
+
def test_initialize
|
7
|
+
cygversion = Cygversion.new('1.0.0-1bl1')
|
8
|
+
assert_equal(['1.0.0', 19700101, '1bl1'] ,cygversion.to_a)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_initialize_vcs
|
12
|
+
cygversion = Cygversion.new('1.0.0+git20150101-1bl1')
|
13
|
+
assert_equal(['1.0.0', 20150101, '1bl1'] ,cygversion.to_a)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_compare
|
17
|
+
cygversion_old = Cygversion.new('1.0.0-1bl1')
|
18
|
+
cygversion_new = Cygversion.new('1.0.1-1bl1')
|
19
|
+
assert_equal(-1, cygversion_old <=> cygversion_new)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_compare_git
|
23
|
+
cygversion_old = Cygversion.new('1.0.0+git20140101-1bl1')
|
24
|
+
cygversion_new = Cygversion.new('1.0.0+git20150101-1bl1')
|
25
|
+
assert_equal(-1, cygversion_old <=> cygversion_new)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_compare_svn
|
29
|
+
cygversion_old = Cygversion.new('1.0.0+svn999-1bl1')
|
30
|
+
cygversion_new = Cygversion.new('1.0.0+svn1000-1bl1')
|
31
|
+
assert_equal(-1, cygversion_old <=> cygversion_new)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_compare_novcs
|
35
|
+
cygversion_old = Cygversion.new('1.0.0-1bl1')
|
36
|
+
cygversion_new = Cygversion.new('1.0.0+git20150101-1bl1')
|
37
|
+
assert_equal(-1, cygversion_old <=> cygversion_new)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_compare_release
|
41
|
+
cygversion_old = Cygversion.new('1.0.0+git20150101-1bl1')
|
42
|
+
cygversion_new = Cygversion.new('1.0.0+git20150101-1bl2')
|
43
|
+
assert_equal(-1, cygversion_old <=> cygversion_new)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
File without changes
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'xezat/validator/pkgconfig'
|
2
|
+
|
3
|
+
module Xezat::Test::Validator
|
4
|
+
class PkgconfigTest < Test::Unit::TestCase
|
5
|
+
include Xezat
|
6
|
+
def setup
|
7
|
+
@validator = ValidatorManager[:pkgconfig]
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_skip
|
11
|
+
variables = {D: Dir.tmpdir}
|
12
|
+
assert_equal([nil, nil], @validator.validate(variables))
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_no_at
|
16
|
+
variables = {D: File::join(File.dirname(__FILE__), 'fixture', 'pkgconfig', 'no_at')}
|
17
|
+
assert_equal([false, '/usr/lib/pkgconfig/xezat.pc: contains @'], @validator.validate(variables))
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_no_link
|
21
|
+
variables = {D: File::join(File.dirname(__FILE__), 'fixture', 'pkgconfig', 'no_link')}
|
22
|
+
assert_equal([false, '/usr/lib/pkgconfig/xezat.pc: no library flags found'], @validator.validate(variables))
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_yes
|
26
|
+
variables = {D: File::join(File.dirname(__FILE__), 'fixture', 'pkgconfig', 'yes')}
|
27
|
+
assert_equal([true, nil], @validator.validate(variables))
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/xezat.gemspec
CHANGED
@@ -18,10 +18,12 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "facets", "~> 3.0
|
22
|
-
spec.add_runtime_dependency "github-linguist", "~> 4.3
|
23
|
-
spec.add_runtime_dependency "
|
21
|
+
spec.add_runtime_dependency "facets", "~> 3.0"
|
22
|
+
spec.add_runtime_dependency "github-linguist", "~> 4.3"
|
23
|
+
spec.add_runtime_dependency "inifile", "~> 3.0"
|
24
|
+
spec.add_runtime_dependency "logger-colors", "~> 1.0"
|
24
25
|
spec.add_runtime_dependency "mercenary", "~> 0.3.5"
|
26
|
+
spec.add_runtime_dependency "string-scrub", "~> 0.0.5"
|
25
27
|
|
26
28
|
spec.add_development_dependency "bundler", "~> 1.7"
|
27
29
|
spec.add_development_dependency "rake", "~> 10.0"
|
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.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fd0
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facets
|
@@ -16,42 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.0
|
19
|
+
version: '3.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.0
|
26
|
+
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: github-linguist
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 4.3
|
33
|
+
version: '4.3'
|
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: 4.3
|
40
|
+
version: '4.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: inifile
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: logger-colors
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.0
|
61
|
+
version: '1.0'
|
48
62
|
type: :runtime
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.0
|
68
|
+
version: '1.0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: mercenary
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: 0.3.5
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: string-scrub
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.0.5
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.0.5
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: bundler
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,10 +143,12 @@ files:
|
|
115
143
|
- lib/xezat/command/debug.rb
|
116
144
|
- lib/xezat/command/doctor.rb
|
117
145
|
- lib/xezat/command/generate.rb
|
146
|
+
- lib/xezat/command/port.rb
|
118
147
|
- lib/xezat/command/validate.rb
|
119
148
|
- lib/xezat/commands.rb
|
120
149
|
- lib/xezat/cygchangelog.rb
|
121
150
|
- lib/xezat/cygclasses.rb
|
151
|
+
- lib/xezat/cygversion.rb
|
122
152
|
- lib/xezat/detector/autoconf.rb
|
123
153
|
- lib/xezat/detector/automake.rb
|
124
154
|
- lib/xezat/detector/boost.m4.rb
|
@@ -126,6 +156,7 @@ files:
|
|
126
156
|
- lib/xezat/detector/gengetopt.rb
|
127
157
|
- lib/xezat/detector/libtool.rb
|
128
158
|
- lib/xezat/detector/make.rb
|
159
|
+
- lib/xezat/detector/python-docutils.rb
|
129
160
|
- lib/xezat/detectors.rb
|
130
161
|
- lib/xezat/main.rb
|
131
162
|
- lib/xezat/packages.rb
|
@@ -151,6 +182,7 @@ files:
|
|
151
182
|
- test/xezat/command/fixture/doctor/a.lst.gz
|
152
183
|
- test/xezat/command/fixture/doctor/b1.lst.gz
|
153
184
|
- test/xezat/command/fixture/doctor/b2.lst.gz
|
185
|
+
- test/xezat/command/test_bump.rb
|
154
186
|
- test/xezat/command/test_create.rb
|
155
187
|
- test/xezat/command/test_doctor.rb
|
156
188
|
- test/xezat/detector/fixture/autoconf/no/configure.scan
|
@@ -167,18 +199,26 @@ files:
|
|
167
199
|
- test/xezat/detector/fixture/gengetopt/no/xezat.log
|
168
200
|
- test/xezat/detector/fixture/gengetopt/yes_root/xezat.ggo
|
169
201
|
- test/xezat/detector/fixture/gengetopt/yes_subdir/subdir/xezat.ggo
|
202
|
+
- test/xezat/detector/fixture/python-docutils/no/configure.ac
|
203
|
+
- test/xezat/detector/fixture/python-docutils/yes/configure.ac
|
170
204
|
- test/xezat/detector/test_autoconf.rb
|
171
205
|
- test/xezat/detector/test_automake.rb
|
172
206
|
- test/xezat/detector/test_boost.m4.rb
|
173
207
|
- test/xezat/detector/test_cmake.rb
|
174
208
|
- test/xezat/detector/test_gengetopt.rb
|
209
|
+
- test/xezat/detector/test_python-docutils.rb
|
175
210
|
- test/xezat/test_cygchangelog.rb
|
176
211
|
- test/xezat/test_cygclasses.rb
|
212
|
+
- test/xezat/test_cygversion.rb
|
177
213
|
- test/xezat/test_variables.rb
|
178
214
|
- test/xezat/validator/fixture/m4/no/usr/share/aclocal/.gitkeep
|
179
|
-
- test/xezat/validator/fixture/m4/skip/usr/share/aclocal/.gitkeep
|
180
215
|
- test/xezat/validator/fixture/m4/yes/usr/share/aclocal/test.m4
|
216
|
+
- test/xezat/validator/fixture/pkgconfig/no_at/usr/lib/pkgconfig/xezat.pc
|
217
|
+
- test/xezat/validator/fixture/pkgconfig/no_link/usr/lib/pkgconfig/xezat.pc
|
218
|
+
- test/xezat/validator/fixture/pkgconfig/skip/usr/lib/pkgconfig/.gitkeep
|
219
|
+
- test/xezat/validator/fixture/pkgconfig/yes/usr/lib/pkgconfig/xezat.pc
|
181
220
|
- test/xezat/validator/test_m4.rb
|
221
|
+
- test/xezat/validator/test_pkgconfig.rb
|
182
222
|
- xezat.gemspec
|
183
223
|
homepage: https://github.com/fd00/xezat
|
184
224
|
licenses:
|
@@ -209,6 +249,7 @@ test_files:
|
|
209
249
|
- test/xezat/command/fixture/doctor/a.lst.gz
|
210
250
|
- test/xezat/command/fixture/doctor/b1.lst.gz
|
211
251
|
- test/xezat/command/fixture/doctor/b2.lst.gz
|
252
|
+
- test/xezat/command/test_bump.rb
|
212
253
|
- test/xezat/command/test_create.rb
|
213
254
|
- test/xezat/command/test_doctor.rb
|
214
255
|
- test/xezat/detector/fixture/autoconf/no/configure.scan
|
@@ -225,15 +266,23 @@ test_files:
|
|
225
266
|
- test/xezat/detector/fixture/gengetopt/no/xezat.log
|
226
267
|
- test/xezat/detector/fixture/gengetopt/yes_root/xezat.ggo
|
227
268
|
- test/xezat/detector/fixture/gengetopt/yes_subdir/subdir/xezat.ggo
|
269
|
+
- test/xezat/detector/fixture/python-docutils/no/configure.ac
|
270
|
+
- test/xezat/detector/fixture/python-docutils/yes/configure.ac
|
228
271
|
- test/xezat/detector/test_autoconf.rb
|
229
272
|
- test/xezat/detector/test_automake.rb
|
230
273
|
- test/xezat/detector/test_boost.m4.rb
|
231
274
|
- test/xezat/detector/test_cmake.rb
|
232
275
|
- test/xezat/detector/test_gengetopt.rb
|
276
|
+
- test/xezat/detector/test_python-docutils.rb
|
233
277
|
- test/xezat/test_cygchangelog.rb
|
234
278
|
- test/xezat/test_cygclasses.rb
|
279
|
+
- test/xezat/test_cygversion.rb
|
235
280
|
- test/xezat/test_variables.rb
|
236
281
|
- test/xezat/validator/fixture/m4/no/usr/share/aclocal/.gitkeep
|
237
|
-
- test/xezat/validator/fixture/m4/skip/usr/share/aclocal/.gitkeep
|
238
282
|
- test/xezat/validator/fixture/m4/yes/usr/share/aclocal/test.m4
|
283
|
+
- test/xezat/validator/fixture/pkgconfig/no_at/usr/lib/pkgconfig/xezat.pc
|
284
|
+
- test/xezat/validator/fixture/pkgconfig/no_link/usr/lib/pkgconfig/xezat.pc
|
285
|
+
- test/xezat/validator/fixture/pkgconfig/skip/usr/lib/pkgconfig/.gitkeep
|
286
|
+
- test/xezat/validator/fixture/pkgconfig/yes/usr/lib/pkgconfig/xezat.pc
|
239
287
|
- test/xezat/validator/test_m4.rb
|
288
|
+
- test/xezat/validator/test_pkgconfig.rb
|