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 +4 -4
- data/README.md +0 -4
- data/lib/magma/app.rb +7 -0
- data/lib/magma/config/mlt.rb +1 -0
- data/lib/magma/reifier.rb +47 -0
- data/lib/magma/renderer.rb +0 -1
- data/lib/magma/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f54453a0409193e3367f3485d3d38f356eadb67a50c64737c601d36359ea9a5
|
4
|
+
data.tar.gz: a190cd3a8b77bf5ff4bc278e1466401b85cd2c69bb62833b4886e798bbfd0d2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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)
|
data/lib/magma/config/mlt.rb
CHANGED
@@ -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
|
data/lib/magma/renderer.rb
CHANGED
data/lib/magma/version.rb
CHANGED
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.
|
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-
|
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
|