xezat 0.3.2 → 0.5.0
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 +36 -16
- data/exe/xezat +0 -1
- data/lib/xezat/bashvar.rb +15 -0
- data/lib/xezat/command/bump/cygport_dep.rb +1 -1
- data/lib/xezat/command/bump/runtime_package.rb +3 -3
- data/lib/xezat/command/dist.rb +53 -0
- data/lib/xezat/command/prep.rb +55 -0
- data/lib/xezat/command/validate/appstream.rb +16 -0
- data/lib/xezat/command/validate/config.rb +14 -1
- data/lib/xezat/command/validate.rb +8 -2
- data/lib/xezat/detector/gnome-common.rb +11 -0
- data/lib/xezat/detectors.rb +4 -0
- data/lib/xezat/main.rb +16 -0
- data/lib/xezat/variables.rb +5 -42
- data/lib/xezat/version.rb +1 -1
- data/share/xezat/bashvar.sh +8 -0
- data/share/xezat/categories.yaml +0 -2
- data/share/xezat/cygport.sh +5 -0
- data/share/xezat/template/README.erb +1 -0
- data/xezat.gemspec +3 -1
- metadata +38 -5
- data/share/xezat/cygport_dep.sh +0 -5
- data/share/xezat/var2yaml.sh +0 -33
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: eb4e15ff6a5eab549ec2a89d711b6d81ec7a4e05656ecf59524cc472746dfe6c
|
|
4
|
+
data.tar.gz: 3f2c68eee2a3699adb2c2796bac9a988708bd8395b3e83f4ecd449b09e768c1b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1750d00392ebe3232b98098803aee8ea6d45f661de0c754e63b3ee4ee149fe9fd9e6309015c7645f2e4936a26c09110139a84da41f46d9416c25c8b5978c8497
|
|
7
|
+
data.tar.gz: 508ef5825975aa6bbaa48c58d9b7f957215f190c4747f73ccdec88f6d93d09bf0fca26c24049910d14cf505aae99e4f16472c5f313eb5f8b3b2d59dbf908184c
|
data/README.md
CHANGED
|
@@ -1,39 +1,59 @@
|
|
|
1
1
|
# Xezat
|
|
2
2
|
|
|
3
3
|
[](https://github.com/fd00/xezat/)
|
|
4
|
+
[](https://badge.fury.io/rb/xezat)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Xezat is a helper tool for your daily packaging tasks with [Cygport](httpss://cygwin.com/cygport/).
|
|
6
7
|
|
|
7
|
-
##
|
|
8
|
+
## Features
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Xezat provides the following subcommands through the `xezat` command:
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
* `init`: Interactively generates a new `cygport` file.
|
|
13
|
+
* `bump`: Bumps the package version and updates the `README` file.
|
|
14
|
+
* `validate`: Validates that the `cygport` file and related files adhere to conventions.
|
|
15
|
+
* `port`: Copies the `cygport` to a Git repository.
|
|
16
|
+
* `announce`: Generates a template for ITP (Intent to Package) or `cygport` update announcements.
|
|
17
|
+
* `doctor`: Checks your system for potential problems.
|
|
18
|
+
* `generate`: Generates development files used by `cygport`.
|
|
19
|
+
* `debug`: Assists in debugging `cygport` files.
|
|
14
20
|
|
|
15
|
-
|
|
21
|
+
You can check the details of each command with `xezat <command> --help`.
|
|
16
22
|
|
|
17
|
-
|
|
23
|
+
## Installation
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
Install the gem:
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
```bash
|
|
28
|
+
gem install xezat
|
|
29
|
+
```
|
|
22
30
|
|
|
23
31
|
## Usage
|
|
24
32
|
|
|
25
|
-
|
|
33
|
+
### 1. Creating a new package
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
xezat init foo.cygport
|
|
37
|
+
```
|
|
26
38
|
|
|
27
|
-
|
|
39
|
+
### 2. Bumping the version
|
|
28
40
|
|
|
29
|
-
|
|
41
|
+
```bash
|
|
42
|
+
xezat bump foo.cygport
|
|
43
|
+
```
|
|
30
44
|
|
|
31
|
-
|
|
45
|
+
### 3. Validating the package
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
xezat validate foo.cygport
|
|
49
|
+
```
|
|
32
50
|
|
|
33
51
|
## Contributing
|
|
34
52
|
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/fd00/xezat.
|
|
53
|
+
Bug reports and pull requests are welcome on GitHub at [https://github.com/fd00/xezat](https://github.com/fd00/xezat).
|
|
54
|
+
|
|
55
|
+
This project utilizes Google Gemini for development assistance.
|
|
36
56
|
|
|
37
57
|
## License
|
|
38
58
|
|
|
39
|
-
The gem is available as open source under the terms of the [MIT License](
|
|
59
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/exe/xezat
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'bashvar'
|
|
4
|
+
require 'open3'
|
|
5
|
+
require 'xezat'
|
|
6
|
+
|
|
7
|
+
module Xezat
|
|
8
|
+
def bashvar(cygport)
|
|
9
|
+
command = ['bash', File.expand_path(File.join(DATA_DIR, 'bashvar.sh')), cygport]
|
|
10
|
+
result, error, status = Open3.capture3(command.join(' '))
|
|
11
|
+
raise CygportProcessError, error unless status.success?
|
|
12
|
+
|
|
13
|
+
BashVar.parse(result, symbolize_names: true)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -15,7 +15,7 @@ module Xezat
|
|
|
15
15
|
File.dirname(file)
|
|
16
16
|
end.sort.uniq.join(':')
|
|
17
17
|
Xezat.logger.debug(" Additional PATH = #{additional_path.gsub(Regexp.new(variables[:D]), '')}")
|
|
18
|
-
command = ['bash', File.expand_path(File.join(DATA_DIR, '
|
|
18
|
+
command = ['bash', File.expand_path(File.join(DATA_DIR, 'cygport.sh')), cygport, 'dep']
|
|
19
19
|
result, error, status = Open3.capture3({ 'PATH' => "#{additional_path}:#{ENV.fetch('PATH')}" }, command.join(' '))
|
|
20
20
|
Xezat.logger.warn(" Stderr = #{error}") unless error.empty?
|
|
21
21
|
raise CygportProcessError, error unless status.success?
|
|
@@ -26,11 +26,11 @@ module Xezat
|
|
|
26
26
|
|
|
27
27
|
def resolve_pseudo(pkg, pkgs)
|
|
28
28
|
case pkg
|
|
29
|
-
when
|
|
29
|
+
when /^python3\s*/
|
|
30
30
|
pkgs[:python39]
|
|
31
|
-
when
|
|
31
|
+
when /^perl5_0\d{2}$/
|
|
32
32
|
pkgs[:perl_base]
|
|
33
|
-
when
|
|
33
|
+
when /^ruby_\d{2}$/
|
|
34
34
|
pkgs[:ruby]
|
|
35
35
|
else
|
|
36
36
|
pkg
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
require 'xezat'
|
|
5
|
+
require 'xezat/config'
|
|
6
|
+
require 'xezat/variables'
|
|
7
|
+
|
|
8
|
+
module Xezat
|
|
9
|
+
class NoDistDirectoryError < StandardError
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module Command
|
|
13
|
+
class Dist
|
|
14
|
+
include Xezat
|
|
15
|
+
|
|
16
|
+
def initialize(options, cygport)
|
|
17
|
+
@options = options
|
|
18
|
+
@cygport = cygport
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def execute
|
|
22
|
+
Xezat.logger.debug('Start distributing')
|
|
23
|
+
vars = variables(@cygport)
|
|
24
|
+
|
|
25
|
+
noop = @options[:noop]
|
|
26
|
+
verbose = @options[:noop] || @options[:verbose]
|
|
27
|
+
|
|
28
|
+
arch = vars[:ARCH]
|
|
29
|
+
release_dir = File.expand_path(File.join(get_dist_directory(@options), arch, 'release'))
|
|
30
|
+
pkg_dir = File.expand_path(File.join(release_dir, vars[:PN]))
|
|
31
|
+
dist_dir = File.expand_path(File.join(vars[:distdir], vars[:PN]))
|
|
32
|
+
|
|
33
|
+
if Dir.exist?(pkg_dir)
|
|
34
|
+
Xezat.logger.warn(" Package directory already exists : #{pkg_dir} (skip)")
|
|
35
|
+
else
|
|
36
|
+
Xezat.logger.debug(" Copy package to release directory : #{pkg_dir}")
|
|
37
|
+
FileUtils.cp_r(dist_dir, release_dir, noop:, verbose:)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
Xezat.logger.debug('End distributing')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def get_dist_directory(options)
|
|
44
|
+
conf = config(options[:config])
|
|
45
|
+
dist_dir = conf['xezat']['distdir'] || options[:distdir]
|
|
46
|
+
raise NoDistDirectoryError if dist_dir.nil?
|
|
47
|
+
|
|
48
|
+
Xezat.logger.debug(" Dist directory: #{dist_dir}")
|
|
49
|
+
dist_dir
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
require 'open3'
|
|
5
|
+
require 'xezat'
|
|
6
|
+
require 'xezat/variables'
|
|
7
|
+
|
|
8
|
+
module Xezat
|
|
9
|
+
module Command
|
|
10
|
+
class Prep
|
|
11
|
+
include Xezat
|
|
12
|
+
|
|
13
|
+
def initialize(options, cygport)
|
|
14
|
+
@options = options
|
|
15
|
+
@cygport = cygport
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def execute
|
|
19
|
+
Xezat.logger.debug('Start prep')
|
|
20
|
+
invoke_cygport_command('fetch')
|
|
21
|
+
invoke_cygport_command('prep')
|
|
22
|
+
copy_readme_if_exists
|
|
23
|
+
Xezat.logger.debug('End prep')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def invoke_cygport_command(command)
|
|
29
|
+
Xezat.logger.debug(" Execute cygport #{command}")
|
|
30
|
+
script = File.expand_path(File.join(DATA_DIR, 'cygport.sh'))
|
|
31
|
+
output = +''
|
|
32
|
+
Open3.popen2e("bash #{script} #{@cygport} #{command}") do |_stdin, stdout_err, wait_thr|
|
|
33
|
+
stdout_err.each_line do |line|
|
|
34
|
+
$stdout.print(line)
|
|
35
|
+
$stdout.flush
|
|
36
|
+
output << line
|
|
37
|
+
end
|
|
38
|
+
raise CygportProcessError, output unless wait_thr.value.success?
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def copy_readme_if_exists
|
|
43
|
+
vars = variables(@cygport)
|
|
44
|
+
cygport_dir = File.dirname(File.expand_path(@cygport))
|
|
45
|
+
readme_source = File.expand_path('README', cygport_dir)
|
|
46
|
+
readme_dest = File.expand_path('README', vars[:C])
|
|
47
|
+
|
|
48
|
+
return unless File.exist?(readme_source)
|
|
49
|
+
|
|
50
|
+
Xezat.logger.debug(" Copy README from #{readme_source} to #{readme_dest}")
|
|
51
|
+
FileUtils.cp(readme_source, readme_dest)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'xezat'
|
|
4
|
+
|
|
5
|
+
module Xezat
|
|
6
|
+
module Command
|
|
7
|
+
class Validate
|
|
8
|
+
def validate_appstream_path(variables)
|
|
9
|
+
legacy_dir = File.join(variables[:D], '/usr/share/appdata')
|
|
10
|
+
Dir.glob('*', base: legacy_dir).each do |file|
|
|
11
|
+
Xezat.logger.error(" #{file} is in the legacy AppStream path /usr/share/appdata, move it to /usr/share/metainfo")
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -30,10 +30,23 @@ module Xezat
|
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
EXECUTABLE_TIMEOUT = 5
|
|
34
|
+
|
|
33
35
|
private
|
|
34
36
|
|
|
35
37
|
def executable?(config)
|
|
36
|
-
Open3.
|
|
38
|
+
Open3.popen3(config.to_s) do |stdin, stdout, stderr, wait_thr|
|
|
39
|
+
stdin.close
|
|
40
|
+
out_reader = Thread.new { stdout.read }
|
|
41
|
+
err_reader = Thread.new { stderr.read }
|
|
42
|
+
unless wait_thr.join(EXECUTABLE_TIMEOUT)
|
|
43
|
+
Process.kill(:KILL, wait_thr.pid)
|
|
44
|
+
wait_thr.join
|
|
45
|
+
raise "#{config} timed out after #{EXECUTABLE_TIMEOUT}s"
|
|
46
|
+
end
|
|
47
|
+
out_reader.join
|
|
48
|
+
err_reader.join
|
|
49
|
+
end
|
|
37
50
|
rescue StandardError => e
|
|
38
51
|
Xezat.logger.warn(" #{config} not executable: #{e}")
|
|
39
52
|
raise e
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'net/http'
|
|
4
4
|
require 'uri'
|
|
5
|
+
require 'xezat/command/validate/appstream'
|
|
5
6
|
require 'xezat/command/validate/config'
|
|
6
7
|
require 'xezat/command/validate/license'
|
|
7
8
|
require 'xezat/command/validate/pkgconfig'
|
|
@@ -47,6 +48,9 @@ module Xezat
|
|
|
47
48
|
Xezat.logger.debug(' Validate *-config')
|
|
48
49
|
validate_config(vars, gcc_version)
|
|
49
50
|
|
|
51
|
+
Xezat.logger.debug(' Validate AppStream path')
|
|
52
|
+
validate_appstream_path(vars)
|
|
53
|
+
|
|
50
54
|
Xezat.logger.debug('End validating')
|
|
51
55
|
end
|
|
52
56
|
|
|
@@ -58,8 +62,10 @@ module Xezat
|
|
|
58
62
|
|
|
59
63
|
def validate_category(category)
|
|
60
64
|
categories_file = File.expand_path(File.join(DATA_DIR, 'categories.yaml'))
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
valid_categories = YAML.safe_load(File.open(categories_file), symbolize_names: true, permitted_classes: [Symbol])
|
|
66
|
+
category.split.each do |cat|
|
|
67
|
+
Xezat.logger.error(" Category is invalid : #{cat}") unless valid_categories.include?(cat.downcase)
|
|
68
|
+
end
|
|
63
69
|
end
|
|
64
70
|
|
|
65
71
|
def validate_homepage(homepage)
|
data/lib/xezat/detectors.rb
CHANGED
|
@@ -31,6 +31,10 @@ module Xezat
|
|
|
31
31
|
Xezat.logger.debug(' Remove python27 because of detecting python3x')
|
|
32
32
|
tools.delete(:python27)
|
|
33
33
|
end
|
|
34
|
+
if tools.include?(:libtool) && tools.include?(:cmake)
|
|
35
|
+
Xezat.logger.debug(' Remove libtool because of detecting cmake')
|
|
36
|
+
tools.delete(:libtool)
|
|
37
|
+
end
|
|
34
38
|
tools
|
|
35
39
|
end
|
|
36
40
|
end
|
data/lib/xezat/main.rb
CHANGED
|
@@ -62,6 +62,15 @@ module Xezat
|
|
|
62
62
|
Command::Port.new(options, cygport).execute
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
+
desc 'dist cygport', 'Copy dist directory to release directory'
|
|
66
|
+
option :noop, type: :boolean, aliases: '-n', desc: 'dry run'
|
|
67
|
+
option :distdir, type: :string, aliases: '-d', desc: 'specify dist directory'
|
|
68
|
+
|
|
69
|
+
def dist(cygport)
|
|
70
|
+
require 'xezat/command/dist'
|
|
71
|
+
Command::Dist.new(options, cygport).execute
|
|
72
|
+
end
|
|
73
|
+
|
|
65
74
|
desc 'validate cygport', 'Validate files'
|
|
66
75
|
option :ignore, type: :boolean, aliases: '-i', desc: 'ignore error'
|
|
67
76
|
|
|
@@ -76,5 +85,12 @@ module Xezat
|
|
|
76
85
|
require 'xezat/command/announce'
|
|
77
86
|
Command::Announce.new(nil, cygport).execute
|
|
78
87
|
end
|
|
88
|
+
|
|
89
|
+
desc 'prep cygport', 'Fetch and prepare sources'
|
|
90
|
+
|
|
91
|
+
def prep(cygport)
|
|
92
|
+
require 'xezat/command/prep'
|
|
93
|
+
Command::Prep.new(options, cygport).execute
|
|
94
|
+
end
|
|
79
95
|
end
|
|
80
96
|
end
|
data/lib/xezat/variables.rb
CHANGED
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
require 'English'
|
|
4
4
|
require 'etc'
|
|
5
5
|
require 'facets/file/atomic_write'
|
|
6
|
-
require 'facets/string/word_wrap'
|
|
7
|
-
require 'open3'
|
|
8
|
-
require 'uri'
|
|
9
6
|
require 'yaml'
|
|
10
7
|
require 'xezat'
|
|
8
|
+
require 'xezat/bashvar'
|
|
11
9
|
|
|
12
10
|
module Xezat
|
|
13
|
-
def variables(cygport
|
|
11
|
+
def variables(cygport)
|
|
14
12
|
cygport_dir = File.dirname(File.absolute_path(cygport))
|
|
15
13
|
cache_file = File.expand_path(File.join(cygport_dir, "#{File.basename(cygport, '.cygport')}.#{Etc.uname[:machine]}.yml"))
|
|
16
14
|
|
|
@@ -23,48 +21,13 @@ module Xezat
|
|
|
23
21
|
end
|
|
24
22
|
end
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
var2yaml_fetcher.call(cygport)
|
|
28
|
-
else
|
|
29
|
-
execute_var2yaml(cygport)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
result.gsub!(/^.*\*\*\*.*$/, '')
|
|
33
|
-
|
|
34
|
-
begin
|
|
35
|
-
variables = YAML.safe_load(result, symbolize_names: true, permitted_classes: [Symbol]).each_value do |v|
|
|
36
|
-
v.strip! if v.respond_to?(:strip)
|
|
37
|
-
end
|
|
38
|
-
rescue Psych::SyntaxError => e
|
|
39
|
-
print_yaml(result)
|
|
40
|
-
raise e
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
variables[:DESCRIPTION].word_wrap!(79)
|
|
24
|
+
vars = bashvar(cygport)
|
|
44
25
|
|
|
45
26
|
File.atomic_write(cache_file) do |f|
|
|
46
27
|
Xezat.logger.debug(' Write cache for variables')
|
|
47
|
-
f.write(YAML.dump(
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
variables
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def print_yaml(result)
|
|
54
|
-
lineno = 1
|
|
55
|
-
result.split($INPUT_RECORD_SEPARATOR).each do |line|
|
|
56
|
-
printf '%<lineno>5d | %<line>s%<ls>s', lineno:, line:, ls: $INPUT_RECORD_SEPARATOR
|
|
57
|
-
lineno += 1
|
|
28
|
+
f.write(YAML.dump(vars))
|
|
58
29
|
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
private
|
|
62
|
-
|
|
63
|
-
def execute_var2yaml(cygport)
|
|
64
|
-
command = ['bash', File.expand_path(File.join(DATA_DIR, 'var2yaml.sh')), cygport]
|
|
65
|
-
result, error, status = Open3.capture3(command.join(' '))
|
|
66
|
-
raise CygportProcessError, error unless status.success?
|
|
67
30
|
|
|
68
|
-
|
|
31
|
+
vars
|
|
69
32
|
end
|
|
70
33
|
end
|
data/lib/xezat/version.rb
CHANGED
data/share/xezat/categories.yaml
CHANGED
data/xezat.gemspec
CHANGED
|
@@ -40,11 +40,13 @@ Gem::Specification.new do |spec|
|
|
|
40
40
|
spec.bindir = 'exe'
|
|
41
41
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
42
42
|
spec.require_paths = ['lib']
|
|
43
|
-
spec.required_ruby_version = '>=
|
|
43
|
+
spec.required_ruby_version = '>= 4.0.5'
|
|
44
44
|
|
|
45
|
+
spec.add_dependency 'bashvar', '>= 0.1.1'
|
|
45
46
|
spec.add_dependency 'colorize', '>= 1.1.0'
|
|
46
47
|
spec.add_dependency 'facets', '>= 3.1.0'
|
|
47
48
|
spec.add_dependency 'github-linguist', '>= 9.1.0'
|
|
49
|
+
spec.add_dependency 'logger', '>= 1.6.0'
|
|
48
50
|
spec.add_dependency 'pkg-config', '>= 1.6.1'
|
|
49
51
|
spec.add_dependency 'spdx', '>= 4.1.5'
|
|
50
52
|
spec.add_dependency 'thor', '>= 1.2.2'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xezat
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daisuke Fujimura (fd0)
|
|
@@ -9,6 +9,20 @@ bindir: exe
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: bashvar
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 0.1.1
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 0.1.1
|
|
12
26
|
- !ruby/object:Gem::Dependency
|
|
13
27
|
name: colorize
|
|
14
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -51,6 +65,20 @@ dependencies:
|
|
|
51
65
|
- - ">="
|
|
52
66
|
- !ruby/object:Gem::Version
|
|
53
67
|
version: 9.1.0
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: logger
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.6.0
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.6.0
|
|
54
82
|
- !ruby/object:Gem::Dependency
|
|
55
83
|
name: pkg-config
|
|
56
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -217,6 +245,7 @@ files:
|
|
|
217
245
|
- README.md
|
|
218
246
|
- exe/xezat
|
|
219
247
|
- lib/xezat.rb
|
|
248
|
+
- lib/xezat/bashvar.rb
|
|
220
249
|
- lib/xezat/command/announce.rb
|
|
221
250
|
- lib/xezat/command/bump.rb
|
|
222
251
|
- lib/xezat/command/bump/changelog.rb
|
|
@@ -229,11 +258,14 @@ files:
|
|
|
229
258
|
- lib/xezat/command/bump/src_uri.rb
|
|
230
259
|
- lib/xezat/command/bump/tool.rb
|
|
231
260
|
- lib/xezat/command/debug.rb
|
|
261
|
+
- lib/xezat/command/dist.rb
|
|
232
262
|
- lib/xezat/command/doctor.rb
|
|
233
263
|
- lib/xezat/command/generate.rb
|
|
234
264
|
- lib/xezat/command/init.rb
|
|
235
265
|
- lib/xezat/command/port.rb
|
|
266
|
+
- lib/xezat/command/prep.rb
|
|
236
267
|
- lib/xezat/command/validate.rb
|
|
268
|
+
- lib/xezat/command/validate/appstream.rb
|
|
237
269
|
- lib/xezat/command/validate/config.rb
|
|
238
270
|
- lib/xezat/command/validate/license.rb
|
|
239
271
|
- lib/xezat/command/validate/pkgconfig.rb
|
|
@@ -253,6 +285,7 @@ files:
|
|
|
253
285
|
- lib/xezat/detector/font-util.rb
|
|
254
286
|
- lib/xezat/detector/gengetopt.rb
|
|
255
287
|
- lib/xezat/detector/gettext-devel.rb
|
|
288
|
+
- lib/xezat/detector/gnome-common.rb
|
|
256
289
|
- lib/xezat/detector/gnulib.rb
|
|
257
290
|
- lib/xezat/detector/gobject-introspection.rb
|
|
258
291
|
- lib/xezat/detector/halibut.rb
|
|
@@ -282,9 +315,10 @@ files:
|
|
|
282
315
|
- lib/xezat/variables.rb
|
|
283
316
|
- lib/xezat/version.rb
|
|
284
317
|
- share/xezat/autoconf-archive.yml
|
|
318
|
+
- share/xezat/bashvar.sh
|
|
285
319
|
- share/xezat/categories.yaml
|
|
286
320
|
- share/xezat/compilers.yaml
|
|
287
|
-
- share/xezat/
|
|
321
|
+
- share/xezat/cygport.sh
|
|
288
322
|
- share/xezat/languages.yaml
|
|
289
323
|
- share/xezat/repository/bitbucket.yaml
|
|
290
324
|
- share/xezat/repository/github.yaml
|
|
@@ -298,7 +332,6 @@ files:
|
|
|
298
332
|
- share/xezat/template/pkgconfig/Makefile.am
|
|
299
333
|
- share/xezat/template/pkgconfig/cmake.erb
|
|
300
334
|
- share/xezat/template/pkgconfig/pkgconfig.erb
|
|
301
|
-
- share/xezat/var2yaml.sh
|
|
302
335
|
- xezat.gemspec
|
|
303
336
|
homepage: https://github.com/fd00/xezat
|
|
304
337
|
licenses:
|
|
@@ -312,14 +345,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
312
345
|
requirements:
|
|
313
346
|
- - ">="
|
|
314
347
|
- !ruby/object:Gem::Version
|
|
315
|
-
version:
|
|
348
|
+
version: 4.0.5
|
|
316
349
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
317
350
|
requirements:
|
|
318
351
|
- - ">="
|
|
319
352
|
- !ruby/object:Gem::Version
|
|
320
353
|
version: '0'
|
|
321
354
|
requirements: []
|
|
322
|
-
rubygems_version:
|
|
355
|
+
rubygems_version: 4.0.10
|
|
323
356
|
specification_version: 4
|
|
324
357
|
summary: xezat helps you win at cygport.
|
|
325
358
|
test_files: []
|
data/share/xezat/cygport_dep.sh
DELETED
data/share/xezat/var2yaml.sh
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
var2yaml()
|
|
4
|
-
{
|
|
5
|
-
for var in `compgen -A variable`
|
|
6
|
-
do
|
|
7
|
-
[ $var = 'BASH_COMMAND' ] && continue
|
|
8
|
-
[ $var = 'COMP_WORDBREAKS' ] && continue
|
|
9
|
-
[ $var = 'HOMEPATH' ] && continue
|
|
10
|
-
[ $var = 'PERL_MB_OPT' ] && continue
|
|
11
|
-
[ $var = 'PSModulePath' ] && continue
|
|
12
|
-
[ $var = '_cygport_orig_env' ] && continue
|
|
13
|
-
[[ ${!var} =~ ^[A-Za-z]:.* ]] && continue
|
|
14
|
-
|
|
15
|
-
echo -n :$var:
|
|
16
|
-
if [[ `declare -p $var` =~ "declare -a" ]]
|
|
17
|
-
then
|
|
18
|
-
echo
|
|
19
|
-
x=`printf '${!%s[@]}' $var`
|
|
20
|
-
eval "keys=$x"
|
|
21
|
-
for key in $keys
|
|
22
|
-
do
|
|
23
|
-
x=`printf '${%s[%s]}' $var $key`
|
|
24
|
-
eval "value=$x"
|
|
25
|
-
echo " -" '"'$value'"'
|
|
26
|
-
done
|
|
27
|
-
else
|
|
28
|
-
echo ' "'`echo "${!var}" | sed -e "s/\\n/ /g"`'"'
|
|
29
|
-
fi
|
|
30
|
-
done
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
source ${CYGPORT:-/usr/bin/cygport} $* var2yaml
|