jenkins-bot has submitted this change and it was merged.

Change subject: Use default papersize when bundling.
......................................................................


Use default papersize when bundling.

We use the de facto convention established by `libpaper` on linux.
On other platforms, `/etc/papersize` probably doesn't exist, and so
we don't specify a papersize in the metabook.

An explicit papersize in the metabook json overrides the default.

Bug: 68836
Change-Id: If9657503522a95fc3c30867c71526415a3bc9d15
---
M bin/mw-ocg-bundler
1 file changed, 34 insertions(+), 0 deletions(-)

Approvals:
  Cscott: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/bin/mw-ocg-bundler b/bin/mw-ocg-bundler
index 7c6064a..68d09af 100755
--- a/bin/mw-ocg-bundler
+++ b/bin/mw-ocg-bundler
@@ -28,6 +28,8 @@
                        'Force collection to use the given default language', 
null)
        .option('-s, --size <max image size>',
                        'Force the given maximum image dimension (in pixels)', 
null)
+       .option('--papersize <letter|a4|auto>',
+                       'Set paper size', 'auto')
        .option('--title <title>',
                        'Set the title of the generated collection', null)
        // set this to true to emit deprecated file formats for better 
pediapress
@@ -138,6 +140,38 @@
        if (program.title) {
                metabook.title = program.title;
        }
+       if (!metabook.papersize) {
+               if (program.papersize === 'auto') {
+                       // use user's default papersize, as spec'ed by libpaper.
+                       // this may be a linuxism, but it's harmless if not 
present.
+                       if (process.env.PAPERSIZE) {
+                               metabook.papersize = process.env.PAPERSIZE;
+                               return metabook;
+                       }
+                       return P.call(fs.readFile, fs,
+                                                 process.env.PAPERCONF || 
'/etc/papersize', 'utf8').
+                               then(function(paperconf) {
+                                       // remove anything starting with # 
(comments)
+                                       // ignore whitespace, take the "first 
string"
+                                       // case-insensitive
+                                       paperconf = 
paperconf.replace(/#[^\r\n]*/g, '').trim().
+                                               replace(/\s[\s\S]*/, 
'').toLowerCase();
+                                       metabook.papersize = paperconf;
+                                       return metabook;
+                               }, function() {
+                                       // no such file; leave papersize 
unspecified.
+                                       return metabook;
+                               });
+               }
+               metabook.papersize = program.papersize;
+       }
+       return metabook;
+}).then(function(metabook) {
+       if (metabook.papersize !== undefined &&
+               !/^(letter|a4)$/.test(metabook.papersize)) {
+               log("WARN: unknown papersize:", metabook.papersize);
+               delete metabook.papersize;
+       }
        return bundler.bundle(metabook, {
                nozip: !!program.directory,
                output: program.directory || program.output,

-- 
To view, visit https://gerrit.wikimedia.org/r/160991
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If9657503522a95fc3c30867c71526415a3bc9d15
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator/bundler
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>
Gerrit-Reviewer: Arlolra <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>
Gerrit-Reviewer: Mwalker <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to