qrpm 0.0.2 → 0.0.3

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: 1312be4795eb5a09f50e9d3813539fa2e9ab6d6f899bcdcaca0a0829a5bea4e5
4
- data.tar.gz: fa6761732ed85389d7b160fa886b48be3df6771c8c45694983235adac1c2bf24
3
+ metadata.gz: 84aec760efd4d34c3de41e77edeeb5cc925ee195bea84243dad283c2ec50005e
4
+ data.tar.gz: 99a8f384f3913952ce99ad80f0be8718d3cb4a91d882a5eb82675a5cc63b41b3
5
5
  SHA512:
6
- metadata.gz: 443bbfa4827a137a3825065596935ec8291e07b12f18a7081668a8e7f5aff625e7447dbfac3ca4b9f4d9af4e1a17777f4b0aea60478c7c92588964a6b33b6aad
7
- data.tar.gz: 85b1110925362970c3512e9e74cf63b61b99dc26cf61ae8a5bc8906e143f5116fb8e3ef6ba8b03565c4d0c7d87beaf90ba0be0faac44d5ee3f0afe23d895ee25
6
+ metadata.gz: 7416eba4e7747d1fb5603d62a985671e2b8ba40c90d95636c737dbd1c998a3431d2ffeba919e5cff1575efe8dd88b3f43173bddf48e22a3de7cae2e5c30ed868
7
+ data.tar.gz: 17108a42af16ffe022c72dda457d4d868e16e98a807e1e61296df1a9f2da02cf7a0ef3322334d04b30b85e782723587bad7b6bb15b537fc4d339fba1c14bc6ae
data/exe/qrpm CHANGED
@@ -12,6 +12,7 @@ require 'indented_io'
12
12
  # TODO
13
13
  # o Fix BuildRoot (contains absolute path)
14
14
  # o Enable escape of $
15
+ # o Separate standard variable from user-variables in dump
15
16
 
16
17
  begin
17
18
  SPEC = %(
@@ -76,9 +77,6 @@ begin
76
77
  file ||= Qrpm::QRPM_CONFIG_FILE
77
78
  ::File.exist?(file) or raise "Can't find '#{file}'"
78
79
 
79
- # Check if repository is clean
80
- opts.force? || `git status --porcelain 2>/dev/null` == "" or raise "Repository is dirty"
81
-
82
80
  # Load the qrpm configuration file
83
81
  yaml = YAML.load(IO.read(file).sub(/^__END__\s*$/m, ""))
84
82
 
@@ -90,6 +88,9 @@ begin
90
88
  exit
91
89
  end
92
90
 
91
+ # Check if repository is clean
92
+ opts.force? || `git status --porcelain 2>/dev/null` == "" or raise "Repository is dirty"
93
+
93
94
  target = (opts.spec? ? :spec : (opts.source? ? :srpm : :rpm))
94
95
  rpm.build(target: target, file: opts.spec)
95
96
 
data/lib/qrpm/parser.rb CHANGED
@@ -32,9 +32,15 @@ module Qrpm
32
32
  fields.key?(f) or raise "Missing mandatory variable: #{f}"
33
33
  }
34
34
 
35
+ # Get full name of user
36
+ fullname = Etc.getpwnam(ENV['USER'])&.gecos
37
+ if fullname.nil? || fullname == ""
38
+ fullname = ENV['USER']
39
+ end
40
+
35
41
  # Defaults for description and packager fields
36
42
  fields["description"] ||= fields["summary"]
37
- fields["packager"] ||= ENV['USER']
43
+ fields["packager"] ||= fullname
38
44
  fields["release"] ||= "0"
39
45
  fields["license"] ||= "GPL"
40
46
 
@@ -42,6 +48,10 @@ module Qrpm
42
48
  # of the variables
43
49
  expand_fields
44
50
 
51
+ # Expand variables in directory entries. The algorithm is simpler than in
52
+ # #expand_fields because no further variable defitinitions can happend
53
+ expand_dirs
54
+
45
55
  # Replace symbolic directory names
46
56
  @dirs = dirs.map { |dir, files|
47
57
  if DIRS.key?(dir)
@@ -122,7 +132,7 @@ module Qrpm
122
132
 
123
133
  # Expand variables in the given string
124
134
  #
125
- # The method takes case to substite left-to-rigth to avoid a variable expansion
135
+ # The method takes care to substite left-to-rigth to avoid a variable expansion
126
136
  # to infer with the name of an immediately preceding variable. Eg. $a$b; if $b
127
137
  # is resolved to 'c' then a search would otherwise be made for a variable named
128
138
  # '$ac'
data/lib/qrpm/rpm.rb CHANGED
@@ -11,8 +11,9 @@ module Qrpm
11
11
  # license License (defaults to GPL)
12
12
  # summary Short one-line description of package
13
13
  # description Description
14
- # packager Name of the packager (defaults to the value of the $USER
15
- # environment variable)
14
+ # packager Name of the packager (defaults to the name of the current
15
+ # user or the value of the $USER environment variable if not
16
+ # found)
16
17
  # require Array of required packages
17
18
  # make Controls the build process:
18
19
  # null Search the top-level directory for configure or
@@ -52,7 +53,6 @@ module Qrpm
52
53
 
53
54
  def build(target: :rpm, file: nil)
54
55
  Dir.mktmpdir { |rootdir|
55
- rootdir = "/home/clr/prj/qrpm/tmp"
56
56
  FileUtils.rm_rf(rootdir)
57
57
  FileUtils.mkdir_p(rootdir)
58
58
 
@@ -41,6 +41,7 @@ make
41
41
  <% end -%>
42
42
 
43
43
  %install
44
+ <% if !nodes.empty? -%>
44
45
  mkdir -p <%= nodes.map { |f| "%{buildroot}#{f.directory}" }.uniq.join(" ") %>
45
46
  <% for file in files -%>
46
47
  cp <%= file.file %> %{buildroot}<%= file.path %>
@@ -48,6 +49,7 @@ cp <%= file.file %> %{buildroot}<%= file.path %>
48
49
  <% for link in links -%>
49
50
  touch %{buildroot}<%= link.path %>
50
51
  <% end -%>
52
+ <% end -%>
51
53
 
52
54
  %files
53
55
  <% for file in files -%>
@@ -1,3 +1,4 @@
1
+ # QRPM configuration file. See https://github.com/clrgit/qrpm
1
2
 
2
3
  # Package information
3
4
  #
data/lib/qrpm/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Qrpm
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qrpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen