magma_cli 0.0.12 → 0.0.13

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: 1022a77d1cd723d71d31f7fe87fea0b6793f13d163db6d44b958f289d2a62965
4
- data.tar.gz: 6d1559734129448ba1121c678123ce517a476c3775ab51c4e5a318099fb2ccd9
3
+ metadata.gz: 7f54453a0409193e3367f3485d3d38f356eadb67a50c64737c601d36359ea9a5
4
+ data.tar.gz: a190cd3a8b77bf5ff4bc278e1466401b85cd2c69bb62833b4886e798bbfd0d2f
5
5
  SHA512:
6
- metadata.gz: a4139377f41a85ca1c60c7069fb70d83414c491555ec82025ad41a171bfe83149653f4babe0c67b98a4421dc5c856b4e2230d5939b503b5f407b09b113a3c88e
7
- data.tar.gz: 9be92e096d0ea750d38ba0ed52bb330dab4999be590c296c61c33e96a70e44010b10af14aa4a84e1c38fe8c4ae7ec489d88010bbde9b7df17fddc960b47b0245
6
+ metadata.gz: 0d77ab1c4511f9b533404b84d605c7f36fe0824cb3dd88296ba63addaa9e0d4fc485c33274a64d2bd65d08e38be09942a64f0a6c08af6378e7e5b1dcee21b882
7
+ data.tar.gz: e7a91ad2eef52e0320e18c859ea6ff9185274b94463253c6d2c0c263da07910aba18fb158303f174673b649b8ad57a8769cf61b78c493ab4670ad3c5edd2ad5f
data/README.md CHANGED
@@ -19,10 +19,6 @@ and the [MLT Framework](http://mltframework.org/).
19
19
  1. Run `make`
20
20
  2. Run `bin/dmagma [arguments]` (or just run `docker run ...` manually)
21
21
 
22
- > NOTE: for Linux hosts, the Docker daemon runs as the root user, so any files
23
- > created will be owned by root. You can run `chown` afterwards to transfer
24
- > ownership to your non-root user.
25
-
26
22
  ## Usage
27
23
 
28
24
  Run `magma help`.
data/lib/magma/app.rb CHANGED
@@ -4,6 +4,7 @@ require 'etc'
4
4
  require 'tempfile'
5
5
  require 'thor'
6
6
  require 'magma/preparer'
7
+ require 'magma/reifier'
7
8
  require 'magma/renderer'
8
9
  require 'magma/templater'
9
10
  require 'yaml'
@@ -28,6 +29,11 @@ module Magma
28
29
  puts config.to_yaml
29
30
  end
30
31
 
32
+ desc 'reify [manifest]', 'Reifies supporting assets'
33
+ def reify(data_file)
34
+ Reifier.call data_file, options
35
+ end
36
+
31
37
  desc 'render [outfile]', 'Renders an MLT into an HLS video'
32
38
  option :context, type: :hash, default: {}, aliases: 'c', desc: 'Render-time context'
33
39
  option :data_file, type: :string, aliases: 'D', desc: 'Static data file, accepts JSON or YML'
@@ -48,6 +54,7 @@ module Magma
48
54
  template = Tempfile.new [File.basename(outfile), '.mlt']
49
55
 
50
56
  begin
57
+ Reifier.call(options[:data_file]) if options[:data_file]
51
58
  Preparer.call options[:infile], options.merge(outfile: template)
52
59
  Templater.call template, options.merge(outfile: template)
53
60
  Renderer.call outfile, options.merge(infile: template.path)
@@ -5,6 +5,7 @@ module Magma::Config
5
5
  class MLT < ActiveSupport::HashWithIndifferentAccess
6
6
  VERSION = 1
7
7
  ALLOWED_KEYS = %w[
8
+ assets
8
9
  globals
9
10
  scopes
10
11
  type
@@ -0,0 +1,47 @@
1
+ require 'magma/utils'
2
+ require 'pry'
3
+
4
+ module Magma
5
+ class Reifier
6
+ include Magma::Common
7
+ include Magma::Utils
8
+
9
+ def initialize(data_file, options = {})
10
+ @data_file = data_file
11
+ @options = options
12
+ end
13
+
14
+ def call
15
+ data # Call once before any chdirs
16
+ puts render_slides!
17
+ end
18
+
19
+ private
20
+
21
+ def data
22
+ @data ||= YAML.safe_load(File.read(@data_file), [], [], true)
23
+ end
24
+
25
+ def render_slides!
26
+ bin = which('soffice') || raise('Is LibreOffice installed?')
27
+ format = 'png' # Only support PNG for now
28
+ Dir.chdir(File.dirname(@data_file)) do
29
+ (data.dig('assets', 'slides') || []).each do |slide|
30
+ # TODO: check for LFI vulnerability
31
+ raise "Cannot find: #{slide}" unless File.exist?(slide)
32
+
33
+ system [
34
+ bin,
35
+ '--headless',
36
+ "--convert-to #{format}",
37
+ slide,
38
+ ].join(' ')
39
+ end
40
+ end
41
+ end
42
+
43
+ def template!
44
+ # TODO: open up ODP XML and render Liquid templates
45
+ end
46
+ end
47
+ end
@@ -1,5 +1,4 @@
1
1
  require 'magma/utils'
2
- require 'pry'
3
2
 
4
3
  module Magma
5
4
  class Renderer
data/lib/magma/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Magma
2
- VERSION = '0.0.12'.freeze
2
+ VERSION = '0.0.13'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magma_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allan Reyes
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-08 00:00:00.000000000 Z
11
+ date: 2018-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -139,6 +139,7 @@ files:
139
139
  - lib/magma/config.rb
140
140
  - lib/magma/config/mlt.rb
141
141
  - lib/magma/preparer.rb
142
+ - lib/magma/reifier.rb
142
143
  - lib/magma/renderer.rb
143
144
  - lib/magma/templater.rb
144
145
  - lib/magma/utils.rb