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 +4 -4
- data/exe/qrpm +4 -3
- data/lib/qrpm/parser.rb +12 -2
- data/lib/qrpm/rpm.rb +3 -3
- data/lib/qrpm/template.erb +2 -0
- data/lib/qrpm/template.yml +1 -0
- data/lib/qrpm/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 84aec760efd4d34c3de41e77edeeb5cc925ee195bea84243dad283c2ec50005e
         | 
| 4 | 
            +
              data.tar.gz: 99a8f384f3913952ce99ad80f0be8718d3cb4a91d882a5eb82675a5cc63b41b3
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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"] ||=  | 
| 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  | 
| 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  | 
| 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 |  | 
    
        data/lib/qrpm/template.erb
    CHANGED
    
    | @@ -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 -%>
         | 
    
        data/lib/qrpm/template.yml
    CHANGED
    
    
    
        data/lib/qrpm/version.rb
    CHANGED