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 +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
|