qrpm 0.0.2 → 0.0.3

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 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