magma_cli 0.0.11 → 0.0.12
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/lib/magma/app.rb +12 -0
- data/lib/magma/renderer.rb +6 -2
- data/lib/magma/utils.rb +1 -0
- data/lib/magma/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1022a77d1cd723d71d31f7fe87fea0b6793f13d163db6d44b958f289d2a62965
|
4
|
+
data.tar.gz: 6d1559734129448ba1121c678123ce517a476c3775ab51c4e5a318099fb2ccd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4139377f41a85ca1c60c7069fb70d83414c491555ec82025ad41a171bfe83149653f4babe0c67b98a4421dc5c856b4e2230d5939b503b5f407b09b113a3c88e
|
7
|
+
data.tar.gz: 9be92e096d0ea750d38ba0ed52bb330dab4999be590c296c61c33e96a70e44010b10af14aa4a84e1c38fe8c4ae7ec489d88010bbde9b7df17fddc960b47b0245
|
data/lib/magma/app.rb
CHANGED
@@ -6,8 +6,12 @@ require 'thor'
|
|
6
6
|
require 'magma/preparer'
|
7
7
|
require 'magma/renderer'
|
8
8
|
require 'magma/templater'
|
9
|
+
require 'yaml'
|
9
10
|
|
10
11
|
module Magma
|
12
|
+
CONFIG_FILE = File.join(Dir.home, '.magmarc')
|
13
|
+
CONFIG = (File.exist?(CONFIG_FILE) ? (YAML.load_file(CONFIG_FILE) || {}) : {})
|
14
|
+
|
11
15
|
# The CLI application
|
12
16
|
class App < Thor
|
13
17
|
class << self
|
@@ -16,6 +20,14 @@ module Magma
|
|
16
20
|
end
|
17
21
|
end
|
18
22
|
|
23
|
+
desc 'config', 'Get or sets global configuration'
|
24
|
+
option :backend, type: :string, desc: 'Backend, e.g. melt or qmelt'
|
25
|
+
def config
|
26
|
+
config = CONFIG.merge(options)
|
27
|
+
File.open(CONFIG_FILE, 'w') { |f| f.write config.to_yaml }
|
28
|
+
puts config.to_yaml
|
29
|
+
end
|
30
|
+
|
19
31
|
desc 'render [outfile]', 'Renders an MLT into an HLS video'
|
20
32
|
option :context, type: :hash, default: {}, aliases: 'c', desc: 'Render-time context'
|
21
33
|
option :data_file, type: :string, aliases: 'D', desc: 'Static data file, accepts JSON or YML'
|
data/lib/magma/renderer.rb
CHANGED
@@ -4,7 +4,6 @@ require 'pry'
|
|
4
4
|
module Magma
|
5
5
|
class Renderer
|
6
6
|
SUPPORTED_FORMATS = %w[hls mp4].freeze
|
7
|
-
MELT = 'melt'.freeze
|
8
7
|
|
9
8
|
include Magma::Common
|
10
9
|
include Magma::Utils
|
@@ -30,6 +29,11 @@ module Magma
|
|
30
29
|
}.merge(options)
|
31
30
|
end
|
32
31
|
|
32
|
+
# Gets the melt backend
|
33
|
+
def backend
|
34
|
+
Magma::CONFIG['backend'] || 'melt'
|
35
|
+
end
|
36
|
+
|
33
37
|
# Formats keys to melt arguments
|
34
38
|
def format(options)
|
35
39
|
options.map do |key, value|
|
@@ -43,7 +47,7 @@ module Magma
|
|
43
47
|
|
44
48
|
# Finds and constructs a melt invocation string
|
45
49
|
def melt(args)
|
46
|
-
bin = which(
|
50
|
+
bin = which(backend) || raise("#{backend} not found. Install MLT or set a backend (magma config)")
|
47
51
|
"#{bin} #{args}"
|
48
52
|
end
|
49
53
|
|
data/lib/magma/utils.rb
CHANGED
@@ -44,6 +44,7 @@ module Magma
|
|
44
44
|
# Cross-platform way of finding an executable in the $PATH
|
45
45
|
# Reference: https://stackoverflow.com/a/5471032/3557448
|
46
46
|
def which(cmd)
|
47
|
+
return cmd if File.exist?(cmd) && File.executable?(cmd)
|
47
48
|
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
48
49
|
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
49
50
|
exts.each do |ext|
|
data/lib/magma/version.rb
CHANGED