summaryrefslogtreecommitdiff
path: root/lib/package.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/package.rb')
-rw-r--r--lib/package.rb49
1 files changed, 43 insertions, 6 deletions
diff --git a/lib/package.rb b/lib/package.rb
index cf6e629..739e18e 100644
--- a/lib/package.rb
+++ b/lib/package.rb
@@ -19,17 +19,54 @@ class Package
end
end
-def info_template(package, download, md5sum)
+class Download
+ attr_reader :download, :md5sum
+
+ def initialize(download, md5sum, is64: false)
+ @download = download
+ @md5sum = md5sum
+ @is64 = is64
+ end
+
+ def is64?
+ @is64
+ end
+end
+
+def info_template(package, downloads)
+ downloads64, downloads32 = downloads.partition(&:is64?)
+ download32, md5sum32, download64, md5sum64 = download_entries downloads64, downloads32
+
<<~INFO_FILE
PRGNAM="#{package.name}"
VERSION="#{package.version}"
HOMEPAGE="#{package.homepage}"
- DOWNLOAD="#{download * " \\\n "}"
- MD5SUM="#{md5sum * " \\\n "}"
- DOWNLOAD_x86_64=""
- MD5SUM_x86_64=""
- REQUIRES="#{package.requires.empty? ? '%README%' : package.requires * ' '}"
+ DOWNLOAD="#{download32}"
+ MD5SUM="#{md5sum32}"
+ DOWNLOAD_x86_64="#{download64}"
+ MD5SUM_x86_64="#{md5sum64}"
+ REQUIRES="#{requires_entry package.requires}"
MAINTAINER="Eugene Wissner"
EMAIL="belka@caraus.de"
INFO_FILE
end
+
+private
+
+def requires_entry(requires)
+ requires.empty? ? '%README%' : requires * ' '
+end
+
+def download_entries(downloads64, downloads32)
+ download32 =
+ if downloads32.empty? && !downloads64.empty?
+ 'UNSUPPORTED'
+ else
+ downloads32.map(&:download) * " \\\n "
+ end
+ md5sum32 = downloads32.map(&:md5sum) * " \\\n "
+ download64 = downloads64.map(&:download) * " \\\n "
+ md5sum64 = downloads64.map(&:md5sum) * " \\\n "
+
+ [download32, md5sum32, download64, md5sum64]
+end