magma_cli 0.0.11 → 0.0.12

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: 8d26498b3d1591c2612951f4c8b9726089f1024ed9f1fa7630105a8f14d93d28
4
- data.tar.gz: 2777a4ef69415a44dcf8ed8bcac260855c6ab8f00d3c0091ceb59a539d6f3343
3
+ metadata.gz: 1022a77d1cd723d71d31f7fe87fea0b6793f13d163db6d44b958f289d2a62965
4
+ data.tar.gz: 6d1559734129448ba1121c678123ce517a476c3775ab51c4e5a318099fb2ccd9
5
5
  SHA512:
6
- metadata.gz: 4bcb2096d539d095c6c853b95a43d77f7dc972d82893b525cf1548c95d5a60be7069fb80fe1b8317ef3358861bd7955b86b897f58dc16817a4c2dec5ce3cc1ba
7
- data.tar.gz: 2366dd4b7c986f072a8898d03455e1a2614629fa946b96d5527684647c5ebf9395b85511d446527ded1de46df58d3af070c3c7f6aedc0ec59fc1183d924e7a88
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'
@@ -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(MELT) || raise("#{MELT} not found. Is MLT installed?")
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
@@ -1,3 +1,3 @@
1
1
  module Magma
2
- VERSION = '0.0.11'.freeze
2
+ VERSION = '0.0.12'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magma_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allan Reyes