magma_cli 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
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