LilyPond-Ruby 0.0.2.1
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 +7 -0
- data/bin/abc2ly +10 -0
- data/bin/convert-ly +10 -0
- data/bin/etf2ly +10 -0
- data/bin/lilymidi +10 -0
- data/bin/lilypond +0 -0
- data/bin/lilypond-book +10 -0
- data/bin/lilypond-invoke-editor +10 -0
- data/bin/lilysong +10 -0
- data/bin/midi2ly +10 -0
- data/bin/musicxml2ly +10 -0
- data/lib/lilypond-ruby.rb +48 -0
- metadata +54 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a5c247479c72432681e120f021e8f7bc478fd98d1307e0258bd083f2f04fd604
|
4
|
+
data.tar.gz: 39f4325ab9da401e2856c68577ce5acc7159189ae3dc6ea8e4097779bd096d44
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: dae1def60d5a8d81ef598625f3067b644a58aadff548bea017ad8e90b02c589033739b687add9f0f26ecb5e0650fa38ff8350815efdde2409367c69543f90da7
|
7
|
+
data.tar.gz: 8cdf10c843a017db7f9b0d87cda082af7a329501f16f9b47250a8c5df473350667bdd19f2c1ba669af98051c0e97d03f4bd02df8e4f67a6c8bf5ebcab4ea48be
|
data/bin/abc2ly
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/abc2ly" "$@"
|
data/bin/convert-ly
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/convert-ly" "$@"
|
data/bin/etf2ly
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/etf2ly" "$@"
|
data/bin/lilymidi
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/lilymidi" "$@"
|
data/bin/lilypond
ADDED
Binary file
|
data/bin/lilypond-book
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/lilypond-book" "$@"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/lilypond-invoke-editor" "$@"
|
data/bin/lilysong
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/lilysong" "$@"
|
data/bin/midi2ly
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/midi2ly" "$@"
|
data/bin/musicxml2ly
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
script="$0"
|
3
|
+
if test -L "$script"; then
|
4
|
+
# readlink is not POSIX, but present on all platforms we care about.
|
5
|
+
# On macOS, it does not support the recursive following of symlinks,
|
6
|
+
# so we only resolve one link and hope for the best.
|
7
|
+
script="$(readlink -f "$script" 2>/dev/null || readlink "$script")"
|
8
|
+
fi
|
9
|
+
root="$(dirname "$script")/.."
|
10
|
+
exec "$root/libexec/python3.10" "$root/libexec/musicxml2ly" "$@"
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "open3"
|
2
|
+
|
3
|
+
class LilyPond
|
4
|
+
LYPATH = File.expand_path("../../bin/lilypond", __FILE__)
|
5
|
+
class << self
|
6
|
+
|
7
|
+
def version
|
8
|
+
output, error, status = Open3.capture3(LYPATH, "--version")
|
9
|
+
if status.success?
|
10
|
+
puts output
|
11
|
+
else
|
12
|
+
puts error
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def generate_pdf_with_lilypond(file_name, lilypond_code)
|
17
|
+
Open3.popen3(LYPATH, '--pdf', file_name) do |stdin, stdout, stderr, wait_thr|
|
18
|
+
# Write the Lilypond code to stdin
|
19
|
+
stdin.write(lilypond_code)
|
20
|
+
stdin.close
|
21
|
+
|
22
|
+
# Wait for the process to complete
|
23
|
+
Process.detach(wait_thr.pid)
|
24
|
+
|
25
|
+
# Read and process the output and error streams
|
26
|
+
loop do
|
27
|
+
# Wait for output to become available for reading
|
28
|
+
ready = IO.select([stdout, stderr])
|
29
|
+
next unless ready
|
30
|
+
|
31
|
+
# Read available data from the streams
|
32
|
+
ready[0].each do |stream|
|
33
|
+
data = stream.read_nonblock(1024)
|
34
|
+
puts data # or process the data as necessary
|
35
|
+
end
|
36
|
+
rescue IO::WaitReadable, IO::WaitWritable
|
37
|
+
# Continue waiting if the streams are not yet ready
|
38
|
+
IO.select([stdout, stderr])
|
39
|
+
retry
|
40
|
+
rescue EOFError
|
41
|
+
# Stop waiting if the streams have been closed
|
42
|
+
break
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end # end self
|
48
|
+
end # end LilyPond
|
metadata
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: LilyPond-Ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Lee Whittaker
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-03-03 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: This gem provides a library to access and control Lilypond from Ruby
|
14
|
+
email: whittakerlee81@gmail.com
|
15
|
+
executables:
|
16
|
+
- lilypond
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- bin/abc2ly
|
21
|
+
- bin/convert-ly
|
22
|
+
- bin/etf2ly
|
23
|
+
- bin/lilymidi
|
24
|
+
- bin/lilypond
|
25
|
+
- bin/lilypond-book
|
26
|
+
- bin/lilypond-invoke-editor
|
27
|
+
- bin/lilysong
|
28
|
+
- bin/midi2ly
|
29
|
+
- bin/musicxml2ly
|
30
|
+
- lib/lilypond-ruby.rb
|
31
|
+
homepage: https://github.com/Okomikeruko/LilyPond-Ruby
|
32
|
+
licenses:
|
33
|
+
- MIT
|
34
|
+
metadata: {}
|
35
|
+
post_install_message:
|
36
|
+
rdoc_options: []
|
37
|
+
require_paths:
|
38
|
+
- lib
|
39
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
requirements: []
|
50
|
+
rubygems_version: 3.1.6
|
51
|
+
signing_key:
|
52
|
+
specification_version: 4
|
53
|
+
summary: Access and control Lilypond from within Ruby
|
54
|
+
test_files: []
|