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