lyp-win 0.3.2 → 0.3.3

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
  SHA1:
3
- metadata.gz: 92d7c8b45c2774b839d4e20d3726c5532879a05b
4
- data.tar.gz: 6cb8087783571a956f952e0f81a922d25397af83
3
+ metadata.gz: f7c493ee28fc66a7d21ed89d3cae1e75d77b7620
4
+ data.tar.gz: 5aa416050909fc3b7c628e799390f94a977609d0
5
5
  SHA512:
6
- metadata.gz: 0e6d13810fba7603cfc1640d1c752ad926f3e8ef4c679e252c6e4d8a1cb1a27d5a533f475e06df83f1d0825dead5e765ca941bb804f4ef4f444236551f5c881a
7
- data.tar.gz: 8a53bebf7bcbfbc40b8106a42614a8b756c7bd1504301eef54bc3ac202ac84adfb045f68c136a100987fcc75346307177f529b9baae273811870f1a38869fa45
6
+ metadata.gz: 4fead81c0513f4a8a5fdbaca6e3e240c5e56ea9d4e3a0ffcae556b91d52305fecdf2159133df4e7359dd08ee6422f6281bacdd318dc7250b3ee184843e487cb8
7
+ data.tar.gz: 5c7632c1626e763ac4463b0c3ad66cc78386eba95933511a213b8f3e7267924201514a3fcca2467656e47b53857f7e3e8652eacb0e294402d894bd0b9f364a7c
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- LYP_VERSION="0.3.2"
3
+ LYP_VERSION="0.3.3"
4
4
  WORKDIR="/tmp/lyp-release-installer"
5
5
  URL_BASE="https://github.com/noteflakes/lyp/releases/download/v$LYP_VERSION"
6
6
 
data/bin/lyp CHANGED
@@ -3,4 +3,7 @@
3
3
  $LOAD_PATH.unshift File.expand_path("../lib", File.dirname(__FILE__))
4
4
 
5
5
  require 'lyp'
6
- require 'lyp/cli'
6
+ require 'lyp/cli'
7
+
8
+ Lyp::Package.load_all_extensions
9
+ Lyp::CLI.run
data/lib/lyp/base.rb CHANGED
@@ -17,6 +17,7 @@ module Lyp
17
17
  LYP_DIRECTORY = File.expand_path('~/.lyp')
18
18
  LYP_BIN_DIRECTORY = File.join(LYP_DIRECTORY, 'bin')
19
19
  LYP_LIB_DIRECTORY = File.join(LYP_DIRECTORY, 'lib')
20
+ LYP_EXT_DIRECTORY = File.join(LYP_DIRECTORY, 'ext')
20
21
  DEFAULT_PACKAGE_DIRECTORY = File.join(LYP_DIRECTORY, 'packages')
21
22
  DEFAULT_LILYPONDS_DIRECTORY = File.join(LYP_DIRECTORY, 'lilyponds')
22
23
 
@@ -42,6 +43,10 @@ module Lyp
42
43
  def self.lilyponds_dir
43
44
  ensure_dir(DEFAULT_LILYPONDS_DIRECTORY)
44
45
  end
46
+
47
+ def self.ext_dir
48
+ ensure_dir(LYP_EXT_DIRECTORY)
49
+ end
45
50
 
46
51
  def self.settings_file
47
52
  ensure_dir(LYP_DIRECTORY)
data/lib/lyp/cli.rb CHANGED
@@ -64,7 +64,7 @@ class Lyp::CLI < Thor
64
64
  else
65
65
  search_package(pattern)
66
66
  end
67
- end
67
+ end
68
68
 
69
69
  no_commands do
70
70
  def search_lilypond(version)
@@ -303,12 +303,13 @@ class Lyp::CLI < Thor
303
303
  end
304
304
  end
305
305
  end
306
+
307
+ def self.run
308
+ start(ARGV)
309
+ rescue => e
310
+ puts e.message
311
+ puts e.backtrace.join("\n") if $cmd_options[:verbose]
312
+ exit(1)
313
+ end
306
314
  end
307
315
 
308
- begin
309
- Lyp::CLI.start(ARGV)
310
- rescue => e
311
- puts e.message
312
- puts e.backtrace.join("\n") if $cmd_options[:verbose]
313
- exit(1)
314
- end
data/lib/lyp/etc/lyp.ly CHANGED
@@ -1,6 +1,4 @@
1
1
  #(begin
2
- (display "\nlyp.ly\n")
3
-
4
2
  ; file/path procedures based on code from oll-core:
5
3
  ; https://github.com/openlilylib/oll-core/
6
4
 
@@ -103,51 +101,71 @@
103
101
  (set! lyp:last-this-file current-file)
104
102
  ))
105
103
 
106
- (define (lyp:include-ly-file path once-only?) (let* (
107
- (current-file (lyp:this-file))
108
- (current-dir (dirname current-file))
109
- (abs-path (if (lyp:absolute-path? path)
110
- path
111
- (lyp:expand-path (lyp:join-path current-dir path))))
112
- (included? (and once-only? (hash-ref lyp:file-included? abs-path)))
113
- )
114
- (ly:debug (format "lyp:include ~a\n" abs-path))
115
- (if (not (file-exists? abs-path))
116
- (throw 'lyp:failure "lyp:include-ly-file"
117
- (format "File not found ~a" abs-path) #f)
118
- )
119
- (if (not included?) (begin
120
- (hash-set! lyp:file-included? abs-path #t)
121
- (set! lyp:last-this-file abs-path)
122
- #{ \include #abs-path #}
123
- (set! lyp:last-this-file current-file)
124
- ))))
125
-
126
- (define (lyp:include path) (lyp:include-ly-file path #f))
127
- (define (lyp:include-once path) (lyp:include-ly-file path #t))
128
-
129
- (define (lyp:require ref) (let* (
130
- (name (lyp:ref->name ref))
131
- (package-dir (lyp:name->dir name))
132
- (entry-point-path (lyp:join-path package-dir "package.ly"))
133
- (loaded? (hash-ref lyp:package-loaded? name))
134
- (prev-package-dir lyp:current-package-dir)
135
- )
136
- (if (not loaded?) (begin
137
- (ly:debug "Loading package ~a at ~a" name package-dir)
138
- (set! lyp:current-package-dir package-dir)
139
- (hash-set! lyp:package-loaded? name #t)
140
- (lyp:include entry-point-path)
141
- (set! lyp:current-package-dir prev-package-dir)
142
- ))))
104
+ (define (lyp:do-include parser path)
105
+ (if (defined? '*parser*)
106
+ (ly:parser-parse-string (ly:parser-clone)
107
+ (format "\\include \"~a\"" path))
108
+ (ly:parser-parse-string (ly:parser-clone parser)
109
+ (format "\\include \"~a\"" path))))
143
110
  )
144
111
 
145
112
  % command form
146
- require = #(define-void-function (parser location ref)(string?)
147
- (lyp:require ref))
148
-
149
- pinclude = #(define-void-function (parser location ref)(string?)
150
- (lyp:include ref))
113
+ require = #(define-void-function (parser location ref)(string?) (let* (
114
+ (current-file (lyp:this-file))
115
+ (name (lyp:ref->name ref))
116
+ (package-dir (lyp:name->dir name))
117
+ (entry-point-path (lyp:join-path package-dir "package.ly"))
118
+ (loaded? (hash-ref lyp:package-loaded? name))
119
+ (prev-package-dir lyp:current-package-dir)
120
+ )
121
+ (if (not loaded?) (begin
122
+ (ly:debug "Loading package ~a at ~a" name package-dir)
123
+ (set! lyp:current-package-dir package-dir)
124
+ (hash-set! lyp:package-loaded? name #t)
125
+
126
+ (set! lyp:last-this-file entry-point-path)
127
+ (lyp:do-include parser entry-point-path)
128
+ (set! lyp:last-this-file current-file)
129
+
130
+ (set! lyp:current-package-dir prev-package-dir)
131
+ ))
132
+ ))
133
+
134
+ pinclude = #(define-void-function (parser location path)(string?) (let* (
135
+ (current-file (lyp:this-file))
136
+ (current-dir (dirname current-file))
137
+ (abs-path (if (lyp:absolute-path? path)
138
+ path
139
+ (lyp:expand-path (lyp:join-path current-dir path))))
140
+ )
141
+ (ly:debug (format "\\pinclude ~a\n" abs-path))
142
+ (if (not (file-exists? abs-path))
143
+ (throw 'lyp:failure "\\pinclude"
144
+ (format "File not found ~a" abs-path) #f))
145
+
146
+ (hash-set! lyp:file-included? abs-path #t)
147
+ (set! lyp:last-this-file abs-path)
148
+ (lyp:do-include parser abs-path)
149
+ (set! lyp:last-this-file current-file)
150
+ ))
151
+
152
+ pincludeOnce = #(define-void-function (parser location path)(string?) (let* (
153
+ (current-file (lyp:this-file))
154
+ (current-dir (dirname current-file))
155
+ (abs-path (if (lyp:absolute-path? path)
156
+ path
157
+ (lyp:expand-path (lyp:join-path current-dir path))))
158
+ (included? (hash-ref lyp:file-included? abs-path))
159
+ )
160
+ (if (not included?) (begin
161
+ (ly:debug (format "\\pincludeOnce ~a\n" abs-path))
162
+ (if (not (file-exists? abs-path))
163
+ (throw 'lyp:failure "\\pincludeOnce"
164
+ (format "File not found ~a" abs-path) #f))
151
165
 
152
- pincludeOnce = #(define-void-function (parser location ref)(string?)
153
- (lyp:include-once ref))
166
+ (hash-set! lyp:file-included? abs-path #t)
167
+ (set! lyp:last-this-file abs-path)
168
+ (lyp:do-include parser abs-path)
169
+ (set! lyp:last-this-file current-file)
170
+ )
171
+ )))
data/lib/lyp/package.rb CHANGED
@@ -72,7 +72,13 @@ module Lyp::Package
72
72
  install_package_fonts(info[:path], opts)
73
73
  end
74
74
 
75
- puts "\nInstalled #{package}@#{info[:version]}\n\n" unless opts[:silent]
75
+ unless opts[:silent]
76
+ if info[:local_path]
77
+ puts "\nInstalled #{package}@#{info[:version]} => #{info[:local_path]}\n\n"
78
+ else
79
+ puts "\nInstalled #{package}@#{info[:version]}\n\n"
80
+ end
81
+ end
76
82
 
77
83
  if opts[:test]
78
84
  FileUtils.cd(info[:path]) do
@@ -85,7 +91,7 @@ module Lyp::Package
85
91
  end
86
92
 
87
93
  LOCAL_PACKAGE_WRAPPER =
88
- "#(set! lyp:current-package-dir \"%s\")\n\\include \"%s\"\n"
94
+ "#(set! lyp:current-package-dir \"%s\")\n\\pinclude \"%s\"\n"
89
95
 
90
96
  def install_from_local_files(package, version, opts)
91
97
  version =~ /^([^\:]+)\:(.+)$/
@@ -118,7 +124,9 @@ module Lyp::Package
118
124
 
119
125
  prepare_local_package_fonts(local_path, package_path)
120
126
 
121
- {version: version, path: package_path}
127
+ load_package_ext_file("#{package}@#{version}", local_path)
128
+
129
+ {version: version, path: package_path, local_path: local_path}
122
130
  end
123
131
 
124
132
  def prepare_local_package_fonts(local_path, package_path)
@@ -145,9 +153,20 @@ module Lyp::Package
145
153
  FileUtils.rm_rf(package_path)
146
154
  FileUtils.cp_r(tmp_path, package_path)
147
155
 
156
+ load_package_ext_file("#{package}@#{version}", package_path)
157
+
148
158
  {version: version, path: package_path}
149
159
  end
150
160
 
161
+ def load_package_ext_file(package, path)
162
+ ext_path = File.join(path, 'ext.rb')
163
+ if File.file?(ext_path)
164
+ $installed_package = package
165
+ $installed_package_path = path
166
+ load_extension(ext_path)
167
+ end
168
+ end
169
+
151
170
  def uninstall(package, opts = {})
152
171
  unless package =~ Lyp::PACKAGE_RE
153
172
  raise "Invalid package specifier #{package}"
@@ -163,6 +182,10 @@ module Lyp::Package
163
182
  puts "Uninstalling #{name}" unless opts[:silent]
164
183
  FileUtils.rm_rf(path)
165
184
  end
185
+
186
+ Dir["#{Lyp.ext_dir}/#{File.basename(package_path)}*.rb"].each do |path|
187
+ FileUtils.rm_f(path)
188
+ end
166
189
  else
167
190
  if version
168
191
  package_path += "@#{version}"
@@ -187,6 +210,10 @@ module Lyp::Package
187
210
  name = package_path.gsub("#{Lyp.packages_dir}/", '')
188
211
  puts "Uninstalling #{name}" unless opts[:silent]
189
212
  FileUtils.rm_rf(package_path)
213
+
214
+ Dir["#{Lyp.ext_dir}/#{File.basename(package_path)}.rb"].each do |path|
215
+ FileUtils.rm_f(path)
216
+ end
190
217
  else
191
218
  raise "Could not find package #{package}"
192
219
  end
@@ -453,5 +480,25 @@ module Lyp::Package
453
480
  end
454
481
  end
455
482
  end
483
+
484
+ def load_all_extensions
485
+ Dir["#{Lyp.ext_dir}/*.rb"].each {|f| load_extension(f)}
486
+ end
487
+
488
+ def load_extension(path)
489
+ load(path)
490
+ rescue => e
491
+ STDERR.puts "Error while loading extension #{path}"
492
+ STDERR.puts " #{e.message}"
493
+ end
494
+ end
495
+ end
496
+
497
+ module Lyp
498
+ def self.install_extension(path)
499
+ # install extension only when installing the package
500
+ return unless $installed_package
501
+
502
+ FileUtils.cp(path, "#{Lyp.ext_dir}/#{$installed_package}.rb")
456
503
  end
457
504
  end
data/lib/lyp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lyp
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lyp-win
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-20 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient