lyp 1.2.1 → 1.3.0
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/README.md +195 -5
- data/bin/install_release.sh +10 -1
- data/lib/lyp.rb +16 -15
- data/lib/lyp/cli.rb +214 -148
- data/lib/lyp/lilypond.rb +6 -0
- data/lib/lyp/version.rb +1 -1
- metadata +16 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: fdcd618c84a8c0ec5925b02d2e05fb62ee438f63
         | 
| 4 | 
            +
              data.tar.gz: dda515b6fb0fc79f7ee868100323ff19a40d9742
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 52a2954b3b7456fcda5e1d4e729e235c6c7aca2505b3f82d55e3ff467332b3a2094792db66783fd0d7fb4cefe28f02c21848c45ce2466d22dba057bc1e42232f
         | 
| 7 | 
            +
              data.tar.gz: c9c533504e0a696bf0b7dfc6bbf5cbb2eabe9345a35ece672385340b9c0dea2c9840e15c3259a9370f84cfc371689c4f2e620aaffb312c1428f3cd30223979b2
         | 
    
        data/README.md
    CHANGED
    
    | @@ -38,27 +38,46 @@ __No hassle Lilypond installation__: With lyp you can also install any version o | |
| 38 38 | 
             
              - [Testing packages](#testing-packages)
         | 
| 39 39 | 
             
              - [Publishing packages](#publishing-packages)
         | 
| 40 40 | 
             
            - [Installing and Using Lilypond](#installing-and-using-lilypond)
         | 
| 41 | 
            -
              - [Installing/uninstalling a version of Lilypond](# | 
| 41 | 
            +
              - [Installing/uninstalling a version of Lilypond](#installinguninstalling-a-version-of-lilypond)
         | 
| 42 42 | 
             
              - [Showing the list of installed Lilypond versions](#showing-the-list-of-installed-lilypond-versions)
         | 
| 43 43 | 
             
              - [Showing available Lilypond versions](#Showing-available-lilypond-versions)
         | 
| 44 44 | 
             
              - [Switching between Lilypond versions](#switching-between-lilypond-versions)
         | 
| 45 45 | 
             
              - [Running Lilypond](#running-lilypond)
         | 
| 46 | 
            +
            - [Command Reference](#command-reference)
         | 
| 47 | 
            +
              - [lyp accelerate](#lyp-accelerate) - rewrite gem binaries for faster execution
         | 
| 48 | 
            +
              - [lyp benchmark](#lyp-benchmark) - benchmark installed versions of Lilypnd
         | 
| 49 | 
            +
              - [lyp cleanup](#lyp-cleanup) - cleanup temporary files
         | 
| 50 | 
            +
              - [lyp compile](#lyp-compile) - compile Lilypond source files
         | 
| 51 | 
            +
              - [lyp deps](#lyp-deps) - show dependencies for a given source file
         | 
| 52 | 
            +
              - [lyp exec](#lyp-exec) - execute a Lilypond script
         | 
| 53 | 
            +
              - [lyp flatten](#lyp-flatten) - flatten a Lilypond project by inlining includes
         | 
| 54 | 
            +
              - [lyp install](#lyp-install) - install package or Lilypond
         | 
| 55 | 
            +
              - [lyp list](#lyp-list) - list installed packages or Lilyponds
         | 
| 56 | 
            +
              - [lyp resolve](#lyp-resolve) - resolve and install dependencies for a given source file
         | 
| 57 | 
            +
              - [lyp search](#lyp-search) - search for packages or Lilyponds
         | 
| 58 | 
            +
              - [lyp test](#lyp-test) - run Lilypond test files
         | 
| 59 | 
            +
              - [lyp uninstall](#lyp-uninstall) - uninstall packages or Lilyponds
         | 
| 60 | 
            +
              - [lyp update](#lyp-update) - update packages
         | 
| 61 | 
            +
              - [lyp use](#lyp-use) - switch between installed Lilyponds
         | 
| 62 | 
            +
              - [lyp version](#lyp-version) - show lyp version
         | 
| 63 | 
            +
              - [lyp watch](#lyp-watch) - watch files and directories and recompile on change
         | 
| 64 | 
            +
              - [lyp which](#lyp-which) - show location of packages or Lilyponds
         | 
| 46 65 | 
             
            - [Contributing](#contributing)
         | 
| 47 66 |  | 
| 48 67 | 
             
            ## Installation
         | 
| 49 68 |  | 
| 50 69 | 
             
            ### System requirements
         | 
| 51 70 |  | 
| 52 | 
            -
            Lyp is tested to work on Linux,  | 
| 71 | 
            +
            Lyp is tested to work on Linux, macOS and Windows 7+.
         | 
| 53 72 |  | 
| 54 73 | 
             
            ### Installing lyp as a Ruby gem
         | 
| 55 74 |  | 
| 56 | 
            -
            _Note_: A recent version of Ruby (2.0.0 or later) is included in  | 
| 75 | 
            +
            _Note_: A recent version of Ruby (2.0.0 or later) is included in macOS 10.9.0 or later.
         | 
| 57 76 |  | 
| 58 77 | 
             
            If you have a recent (>=1.9.3) version of Ruby on your machine, you can install lyp as a gem.
         | 
| 59 78 |  | 
| 60 79 | 
             
            ```bash
         | 
| 61 | 
            -
            # Linux/ | 
| 80 | 
            +
            # Linux/macOS:
         | 
| 62 81 | 
             
            $ gem install lyp
         | 
| 63 82 |  | 
| 64 83 | 
             
            # Windows:
         | 
| @@ -88,7 +107,7 @@ Windows users can simply download the latest Windows [release](https://github.co | |
| 88 107 |  | 
| 89 108 | 
             
            ### Manually installing releases
         | 
| 90 109 |  | 
| 91 | 
            -
            (This section is for Linux /  | 
| 110 | 
            +
            (This section is for Linux / macOS users.)
         | 
| 92 111 |  | 
| 93 112 | 
             
            If you feel uneasy about piping curl output to bash, you can install lyp yourself by downloading a [release](https://github.com/noteflakes/lyp/releases), untarring it, and running `lyp install self`:
         | 
| 94 113 |  | 
| @@ -575,6 +594,177 @@ Once one or more versions of Lilypond are installed, the Lilypond command may be | |
| 575 594 | 
             
              $ lilypond --ulatest myfile.ly
         | 
| 576 595 | 
             
              ```
         | 
| 577 596 |  | 
| 597 | 
            +
            ## Command Reference
         | 
| 598 | 
            +
             | 
| 599 | 
            +
            ### lyp accelerate
         | 
| 600 | 
            +
             | 
| 601 | 
            +
            Synopsis: `lyp accelerate`
         | 
| 602 | 
            +
             | 
| 603 | 
            +
            __Power users__: rewrite gem binaries for faster execution. When lyp is installed as a gem, the Rubygems system creates wrapper script files for `lyp` and `lilypond` which incur a performance penalty that adds up to 200msecs per invocation. Use this command to rewrite the gem binaries so as to improve their running time.
         | 
| 604 | 
            +
             | 
| 605 | 
            +
            ### lyp benchmark
         | 
| 606 | 
            +
             | 
| 607 | 
            +
            Synopsis: `lyp benchmark FILE`
         | 
| 608 | 
            +
             | 
| 609 | 
            +
            __Power users__: benchmark the running time of all installed versions of Lilypond using the given source file. This command accepts all Lilypond command line switches.
         | 
| 610 | 
            +
             | 
| 611 | 
            +
            ### lyp cleanup
         | 
| 612 | 
            +
             | 
| 613 | 
            +
            Synopsis: `lyp cleanup`
         | 
| 614 | 
            +
             | 
| 615 | 
            +
            Cleanup temporary files. lyp keeps a bunch of temporary directories and files under the system temporary directory, usually at `/tmp/lyp`. These include wrapper files, git repositories for installed packages, Lilypond archive files etc. These will normally be cleaned up by the OS after a period of time, but you can use this command to delete the entire content of this directory if you need the disk space.
         | 
| 616 | 
            +
             | 
| 617 | 
            +
            ### lyp compile
         | 
| 618 | 
            +
             | 
| 619 | 
            +
            Synopsis: `lyp compile ... FILE`
         | 
| 620 | 
            +
             | 
| 621 | 
            +
            Shorthand: `lyp c`
         | 
| 622 | 
            +
             | 
| 623 | 
            +
            Compiles Lilypond source files. This command is synonymous to running `lilypond`. You can pass along any switches accepted by Lilypond. In addition, lyp adds a few options to provide additional functionality:
         | 
| 624 | 
            +
             | 
| 625 | 
            +
            - `--auto-install-deps`/`-a`: install any missing dependencies
         | 
| 626 | 
            +
            - `--cropped`/`-c`: crop output (requires setting 0 margins)
         | 
| 627 | 
            +
            - `--env`/`-E`: use the Lilypond version specified in the `LILYPOND_VERSION` environment variable:
         | 
| 628 | 
            +
             | 
| 629 | 
            +
              ```bash
         | 
| 630 | 
            +
              $ LILYPOND_VERSION=2.19.50 lyp c mysuperscore.ly
         | 
| 631 | 
            +
              ```
         | 
| 632 | 
            +
             | 
| 633 | 
            +
            - `--force-version`/`-F`: use Lilypond version specified in user file
         | 
| 634 | 
            +
            - `--install`/`-n`: install version of Lilypond if not found (if the required version was overriden using any of `--env`, `--force-version` or `--use`)
         | 
| 635 | 
            +
            - `--open`/`-O`: open output file after compilation
         | 
| 636 | 
            +
            - `--raw`/`-R`: run Lilypond "raw" (no pre-processing of dependencies)
         | 
| 637 | 
            +
            - `--require=PACKAGE`/`-rPACKAGE`: preload the specified package
         | 
| 638 | 
            +
             | 
| 639 | 
            +
              ```bash
         | 
| 640 | 
            +
              $ lyp -rassert mytests.ly
         | 
| 641 | 
            +
              ```
         | 
| 642 | 
            +
             | 
| 643 | 
            +
            - `--snippet`/`-S`: produce png cropped images at 600dpi (equivalent to `--cropped --png -dresolution=600`)
         | 
| 644 | 
            +
            - `--use=VERSION`/`-uVERSION`: use the given version of Lilypond:
         | 
| 645 | 
            +
              
         | 
| 646 | 
            +
              ```bash
         | 
| 647 | 
            +
              $ lyp c -u2.19.53 myfile.ly
         | 
| 648 | 
            +
              # automatically install given version of Lilypond
         | 
| 649 | 
            +
              $ lyp c -nu2.19.53 myfile.ly
         | 
| 650 | 
            +
              ```
         | 
| 651 | 
            +
             | 
| 652 | 
            +
            ### lyp deps
         | 
| 653 | 
            +
             | 
| 654 | 
            +
            Synopsis: `lyp deps FILE`
         | 
| 655 | 
            +
             | 
| 656 | 
            +
            Shows dependencies for a given source file.
         | 
| 657 | 
            +
             | 
| 658 | 
            +
            ### lyp exec
         | 
| 659 | 
            +
             | 
| 660 | 
            +
            Synopsis: `lyp exec SCRIPT ...`
         | 
| 661 | 
            +
             | 
| 662 | 
            +
            Shorthand: `lyp x`
         | 
| 663 | 
            +
             | 
| 664 | 
            +
            Runs a Lilypond script (using the currently selected version of Lilypond).
         | 
| 665 | 
            +
             | 
| 666 | 
            +
            ### lyp flatten
         | 
| 667 | 
            +
             | 
| 668 | 
            +
            Synopsis: `lyp flatten FILE`
         | 
| 669 | 
            +
             | 
| 670 | 
            +
            Flattens a source file and all included files into a single file.
         | 
| 671 | 
            +
             | 
| 672 | 
            +
            ### lyp install
         | 
| 673 | 
            +
             | 
| 674 | 
            +
            Synopsis: `lyp install PACKAGE|lilypond@VERSION`
         | 
| 675 | 
            +
             | 
| 676 | 
            +
            Shorthand: `lyp i`
         | 
| 677 | 
            +
             | 
| 678 | 
            +
            Installs a package or a Lilypond. See [installing packages](#installing-packages) and [installing versions of Lilypond](#installing-and-using-lilypond) above.
         | 
| 679 | 
            +
             | 
| 680 | 
            +
            ### lyp list
         | 
| 681 | 
            +
             | 
| 682 | 
            +
            Synopsis: `lyp list [PACKAGE|lilypond]`
         | 
| 683 | 
            +
             | 
| 684 | 
            +
            Shorthand: `lyp l`
         | 
| 685 | 
            +
             | 
| 686 | 
            +
            Lists installed packages or Lilyponds.
         | 
| 687 | 
            +
             | 
| 688 | 
            +
            ### lyp resolve
         | 
| 689 | 
            +
             | 
| 690 | 
            +
            Synopsis: `lyp resolve FILE``
         | 
| 691 | 
            +
             | 
| 692 | 
            +
            Resolves and optionally installs all dependencies for a given source file. To install required dependencies use the `--all`/`-a` switch:
         | 
| 693 | 
            +
             | 
| 694 | 
            +
            ```bash
         | 
| 695 | 
            +
            $ lyp resolve -a myfile.ly
         | 
| 696 | 
            +
            ```
         | 
| 697 | 
            +
             | 
| 698 | 
            +
            ### lyp search
         | 
| 699 | 
            +
             | 
| 700 | 
            +
            Synopsis: `lyp search PACKAGE|lilypond``
         | 
| 701 | 
            +
             | 
| 702 | 
            +
            Shorthand: `lyp s`
         | 
| 703 | 
            +
             | 
| 704 | 
            +
            Searches for packages or versions of Lilypond.
         | 
| 705 | 
            +
             | 
| 706 | 
            +
            ### lyp test
         | 
| 707 | 
            +
             | 
| 708 | 
            +
            Synopsis: `lyp test DIRECTORY`
         | 
| 709 | 
            +
             | 
| 710 | 
            +
            Shorthand: `lyp t`
         | 
| 711 | 
            +
             | 
| 712 | 
            +
            Runs Lilypond tests by compiling all files in the given directory matching the pattern `*-test.ly`.
         | 
| 713 | 
            +
             | 
| 714 | 
            +
            ### lyp uninstall
         | 
| 715 | 
            +
             | 
| 716 | 
            +
            Synopsis: `lyp uninstall PACKAGE|lilypond@VERSION`
         | 
| 717 | 
            +
             | 
| 718 | 
            +
            Shorthand: `lyp u`
         | 
| 719 | 
            +
             | 
| 720 | 
            +
            Uninstalls a package or a Lilypond.
         | 
| 721 | 
            +
             | 
| 722 | 
            +
            ### lyp update
         | 
| 723 | 
            +
             | 
| 724 | 
            +
            Synopsis: `lyp update PACKAGE`
         | 
| 725 | 
            +
             | 
| 726 | 
            +
            Updates an installed package to its latest available version.
         | 
| 727 | 
            +
             | 
| 728 | 
            +
            ### lyp use
         | 
| 729 | 
            +
             | 
| 730 | 
            +
            Synopsis: `lyp use VERSION``
         | 
| 731 | 
            +
             | 
| 732 | 
            +
            Shorthand: `lyp U`
         | 
| 733 | 
            +
             | 
| 734 | 
            +
            Switches to a different version of Lilypond. To set the default version, use the `--default` switch:
         | 
| 735 | 
            +
             | 
| 736 | 
            +
            ```bash
         | 
| 737 | 
            +
            $ lyp use --default 2.19.52
         | 
| 738 | 
            +
            ```
         | 
| 739 | 
            +
             | 
| 740 | 
            +
            ### lyp version
         | 
| 741 | 
            +
             | 
| 742 | 
            +
            Synopsis: `lyp version``
         | 
| 743 | 
            +
             | 
| 744 | 
            +
            Shorthand: `lyp -v``
         | 
| 745 | 
            +
             | 
| 746 | 
            +
            Displays the version of lyp.
         | 
| 747 | 
            +
             | 
| 748 | 
            +
            ### lyp watch
         | 
| 749 | 
            +
             | 
| 750 | 
            +
            Synopsis: `lyp watch DIRECTORY|FILE...``
         | 
| 751 | 
            +
             | 
| 752 | 
            +
            Shorthand: `lyp w`
         | 
| 753 | 
            +
             | 
| 754 | 
            +
            Watches one or more directories or files and recompiles any files that have been modified. To watch a directory of include files and always recompile the same project file, use the `--target`/`-t` switch:
         | 
| 755 | 
            +
             | 
| 756 | 
            +
            ```bash
         | 
| 757 | 
            +
            $ lyp watch bwv35 --target bwv35/score.ly
         | 
| 758 | 
            +
            ```
         | 
| 759 | 
            +
             | 
| 760 | 
            +
            This command accepts all Lilypond command line switches.
         | 
| 761 | 
            +
             | 
| 762 | 
            +
            ### lyp which
         | 
| 763 | 
            +
             | 
| 764 | 
            +
            Synopsis: `lyp which PACKAGE|lilypond`
         | 
| 765 | 
            +
             | 
| 766 | 
            +
            Shows the location of the given package or the currently selected Lilypond.
         | 
| 767 | 
            +
             | 
| 578 768 | 
             
            ## Contributing
         | 
| 579 769 |  | 
| 580 770 | 
             
            Lyp is written in Ruby, and its code is [available on github](https://github.com/noteflakes/lyp). To hack on it, simply clone the repository. To run the specs:
         | 
    
        data/bin/install_release.sh
    CHANGED
    
    | @@ -1,6 +1,15 @@ | |
| 1 1 | 
             
            #!/usr/bin/env bash
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            echo "Detecting latest lyp version..."
         | 
| 4 | 
            +
            LATEST_RELEASE=`curl -s https://github.com/noteflakes/lyp/releases/latest`
         | 
| 5 | 
            +
            VERSION_REGEX="tag/v([0-9\.]+)"
         | 
| 6 | 
            +
            if [[ $LATEST_RELEASE =~ $VERSION_REGEX ]]
         | 
| 7 | 
            +
            then
         | 
| 8 | 
            +
              LYP_VERSION="${BASH_REMATCH[1]}"
         | 
| 9 | 
            +
            else
         | 
| 10 | 
            +
              echo "Could not get latest version from GitHub."
         | 
| 11 | 
            +
            fi
         | 
| 12 | 
            +
             | 
| 4 13 | 
             
            WORKDIR="/tmp/lyp-release-installer"
         | 
| 5 14 | 
             
            URL_BASE="https://github.com/noteflakes/lyp/releases/download/v$LYP_VERSION"
         | 
| 6 15 |  | 
    
        data/lib/lyp.rb
    CHANGED
    
    | @@ -1,23 +1,24 @@ | |
| 1 | 
            -
            def req_int(f)
         | 
| 2 | 
            -
              require File.expand_path("lyp/#{f}", File.dirname(__FILE__))
         | 
| 3 | 
            -
            end
         | 
| 4 | 
            -
             | 
| 5 1 | 
             
            module Kernel
         | 
| 6 2 | 
             
              @@ext_requires = {}
         | 
| 7 3 | 
             
              def req_ext(l)
         | 
| 8 4 | 
             
                @@ext_requires[l] ||= require(l)
         | 
| 9 5 | 
             
              end
         | 
| 10 | 
            -
            end 
         | 
| 11 6 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
            req_int | 
| 14 | 
            -
             | 
| 7 | 
            +
              LYP_RB_DIR = File.expand_path("lyp", File.dirname(__FILE__))
         | 
| 8 | 
            +
              def req_int(f)
         | 
| 9 | 
            +
                require File.join(LYP_RB_DIR, f)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
            end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            Kernel.req_int 'base'
         | 
| 14 | 
            +
            Kernel.req_int 'system'
         | 
| 15 | 
            +
            Kernel.req_int 'settings'
         | 
| 15 16 |  | 
| 16 | 
            -
            req_int 'template'
         | 
| 17 | 
            -
            req_int 'resolver'
         | 
| 18 | 
            -
            req_int 'wrapper'
         | 
| 19 | 
            -
            req_int 'package'
         | 
| 20 | 
            -
            req_int 'lilypond'
         | 
| 21 | 
            -
            req_int 'transform'
         | 
| 17 | 
            +
            Kernel.req_int 'template'
         | 
| 18 | 
            +
            Kernel.req_int 'resolver'
         | 
| 19 | 
            +
            Kernel.req_int 'wrapper'
         | 
| 20 | 
            +
            Kernel.req_int 'package'
         | 
| 21 | 
            +
            Kernel.req_int 'lilypond'
         | 
| 22 | 
            +
            Kernel.req_int 'transform'
         | 
| 22 23 |  | 
| 23 | 
            -
            req_int 'windows' if Lyp::WINDOWS
         | 
| 24 | 
            +
            Kernel.req_int 'windows' if Lyp::WINDOWS
         | 
    
        data/lib/lyp/cli.rb
    CHANGED
    
    | @@ -43,29 +43,20 @@ $cmd_options = {} | |
| 43 43 |  | 
| 44 44 | 
             
            class Lyp::CLI < Thor
         | 
| 45 45 | 
             
              package_name "lyp"
         | 
| 46 | 
            -
              map "-v" => :version
         | 
| 47 | 
            -
             | 
| 46 | 
            +
              map "-v" => :version,
         | 
| 47 | 
            +
                  "c" => :compile,
         | 
| 48 | 
            +
                  "i" => :install,
         | 
| 49 | 
            +
                  "l" => :list,
         | 
| 50 | 
            +
                  "s" => :search,
         | 
| 51 | 
            +
                  "t" => :test,
         | 
| 52 | 
            +
                  "u" => :uninstall,
         | 
| 53 | 
            +
                  "U" => :use,
         | 
| 54 | 
            +
                  "w" => :watch,
         | 
| 55 | 
            +
                  "x" => :exec
         | 
| 56 | 
            +
             | 
| 57 | 
            +
              check_unknown_options! :except => [:compile, :watch, :benchmark]
         | 
| 48 58 | 
             
              class_option :verbose, aliases: '-V', :type => :boolean, desc: 'show verbose output'
         | 
| 49 59 |  | 
| 50 | 
            -
              desc "version", "show Lyp version"
         | 
| 51 | 
            -
              def version
         | 
| 52 | 
            -
                $stderr.puts "Lyp #{Lyp::VERSION}"
         | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
              desc "search [PATTERN|lilypond]", "List available packages matching PATTERN or versions of lilypond"
         | 
| 56 | 
            -
              def search(pattern = '')
         | 
| 57 | 
            -
                $cmd_options = options
         | 
| 58 | 
            -
             | 
| 59 | 
            -
                pattern =~ Lyp::PACKAGE_RE
         | 
| 60 | 
            -
                package, version = $1, $2
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                if package == 'lilypond'
         | 
| 63 | 
            -
                  search_lilypond(version)
         | 
| 64 | 
            -
                else
         | 
| 65 | 
            -
                  search_package(pattern)
         | 
| 66 | 
            -
                end
         | 
| 67 | 
            -
              end
         | 
| 68 | 
            -
             | 
| 69 60 | 
             
              no_commands do
         | 
| 70 61 | 
             
                def search_lilypond(version)
         | 
| 71 62 | 
             
                  versions = Lyp::Lilypond.search(version)
         | 
| @@ -99,17 +90,68 @@ class Lyp::CLI < Thor | |
| 99 90 | 
             
                end
         | 
| 100 91 | 
             
              end
         | 
| 101 92 |  | 
| 102 | 
            -
              desc " | 
| 93 | 
            +
              desc "accelerate", "Rewrite gem binaries to make lyp faster"
         | 
| 94 | 
            +
              def accelerate
         | 
| 95 | 
            +
                unless Lyp::System.is_gem?
         | 
| 96 | 
            +
                  puts "Lyp is not installed as a gem."
         | 
| 97 | 
            +
                  exit 1
         | 
| 98 | 
            +
                end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                Lyp::System.rewrite_gem_scripts
         | 
| 101 | 
            +
              end
         | 
| 102 | 
            +
             | 
| 103 | 
            +
              desc "benchmark FILE", "Benchmark all installed versions of Lilypond"
         | 
| 104 | 
            +
              def benchmark(*argv)
         | 
| 105 | 
            +
                list = Lyp::Lilypond.list
         | 
| 106 | 
            +
                if list.empty?
         | 
| 107 | 
            +
                  puts Lyp::LILYPOND_NOT_FOUND_MSG
         | 
| 108 | 
            +
                else
         | 
| 109 | 
            +
                  list.each do |info|
         | 
| 110 | 
            +
                    Lyp::Lilypond.force_version!(info[:version])
         | 
| 111 | 
            +
                    t1 = Time.now
         | 
| 112 | 
            +
                    compile("--invoke-quiet", *argv)
         | 
| 113 | 
            +
                    t2 = Time.now
         | 
| 114 | 
            +
                    puts "%-7s: %.3gs" % [info[:version], t2-t1]
         | 
| 115 | 
            +
                  end
         | 
| 116 | 
            +
                end
         | 
| 117 | 
            +
              end
         | 
| 118 | 
            +
             | 
| 119 | 
            +
              desc "cleanup", "Cleanup temporary files"
         | 
| 120 | 
            +
              def cleanup
         | 
| 121 | 
            +
                $stderr.puts "Lyp #{Lyp::VERSION}"
         | 
| 122 | 
            +
                Dir["#{Lyp::TMP_ROOT}/*"].each do |fn|
         | 
| 123 | 
            +
                  puts "Cleaning up #{fn}"
         | 
| 124 | 
            +
                  FileUtils.rm_rf(fn)
         | 
| 125 | 
            +
                end
         | 
| 126 | 
            +
              end
         | 
| 127 | 
            +
             | 
| 128 | 
            +
              desc "compile [<option>...] <FILE>", "compile given file Lilypond source file"
         | 
| 103 129 | 
             
              def compile(*argv)
         | 
| 104 130 | 
             
                opts, argv = Lyp::Lilypond.preprocess_argv(argv)
         | 
| 105 131 |  | 
| 106 132 | 
             
                lilypond_path = Lyp::Lilypond.select_lilypond_version(opts, argv.last)
         | 
| 107 133 |  | 
| 108 | 
            -
                $stderr.puts "Lyp #{Lyp::VERSION}"
         | 
| 134 | 
            +
                $stderr.puts "Lyp #{Lyp::VERSION}" unless opts[:mode] == :quiet
         | 
| 109 135 | 
             
                Lyp::System.test_installed_status!
         | 
| 110 136 | 
             
                Lyp::Lilypond.compile(argv, opts)
         | 
| 111 137 | 
             
              end
         | 
| 112 138 |  | 
| 139 | 
            +
              desc "deps FILE", "List dependencies found in user's files"
         | 
| 140 | 
            +
              def deps(fn)
         | 
| 141 | 
            +
                $cmd_options = options
         | 
| 142 | 
            +
             | 
| 143 | 
            +
                resolver = Lyp::DependencyResolver.new(fn)
         | 
| 144 | 
            +
                tree = resolver.compile_dependency_tree(ignore_missing: true)
         | 
| 145 | 
            +
                tree.dependencies.each do |package, spec|
         | 
| 146 | 
            +
                  versions = spec.versions.keys.map {|k| k =~ Lyp::PACKAGE_RE; $2 }.sort
         | 
| 147 | 
            +
                  if versions.empty?
         | 
| 148 | 
            +
                    puts "   #{spec.clause} => (no local version found)"
         | 
| 149 | 
            +
                  else
         | 
| 150 | 
            +
                    puts "   #{spec.clause} => #{versions.join(', ')}"
         | 
| 151 | 
            +
                  end
         | 
| 152 | 
            +
                end
         | 
| 153 | 
            +
              end
         | 
| 154 | 
            +
             | 
| 113 155 | 
             
              desc "exec <CMD> [<options>...]", "Execute a lilypond script"
         | 
| 114 156 | 
             
              def exec(*argv)
         | 
| 115 157 | 
             
                $stderr.puts "Lyp #{Lyp::VERSION}"
         | 
| @@ -117,38 +159,15 @@ class Lyp::CLI < Thor | |
| 117 159 | 
             
                Lyp::Lilypond.invoke_script(argv, {})
         | 
| 118 160 | 
             
              end
         | 
| 119 161 |  | 
| 120 | 
            -
              desc " | 
| 121 | 
            -
               | 
| 122 | 
            -
             | 
| 123 | 
            -
             | 
| 124 | 
            -
             | 
| 125 | 
            -
                 | 
| 126 | 
            -
             | 
| 127 | 
            -
             | 
| 128 | 
            -
                if test_opts[:env]
         | 
| 129 | 
            -
                  unless ENV['LILYPOND_VERSION']
         | 
| 130 | 
            -
                    STDERR.puts "$LILYPOND_VERSION not set"
         | 
| 131 | 
            -
                    exit 1
         | 
| 132 | 
            -
                  end
         | 
| 133 | 
            -
                  test_opts[:use] = ENV['LILYPOND_VERSION']
         | 
| 134 | 
            -
                end
         | 
| 135 | 
            -
             | 
| 136 | 
            -
                if test_opts[:use]
         | 
| 137 | 
            -
                  if test_opts[:install]
         | 
| 138 | 
            -
                    Lyp::Lilypond.install_if_missing(test_opts[:use], no_version_test: true)
         | 
| 139 | 
            -
                  end
         | 
| 140 | 
            -
                  Lyp::Lilypond.force_version!(test_opts[:use])
         | 
| 141 | 
            -
                end
         | 
| 142 | 
            -
             | 
| 143 | 
            -
                # check lilypond default / current settings
         | 
| 144 | 
            -
                Lyp::Lilypond.check_lilypond!
         | 
| 145 | 
            -
             | 
| 146 | 
            -
                $stderr.puts "Lyp #{Lyp::VERSION}"
         | 
| 147 | 
            -
                case args
         | 
| 148 | 
            -
                when ['.']
         | 
| 149 | 
            -
                  Lyp::Package.run_local_tests('.')
         | 
| 162 | 
            +
              desc "flatten FILE", "Flatten a file and included files into a single output file"
         | 
| 163 | 
            +
              def flatten(input_path, output_path = nil)
         | 
| 164 | 
            +
                input_path = File.expand_path(input_path)
         | 
| 165 | 
            +
                output_path = File.expand_path(output_path) if output_path
         | 
| 166 | 
            +
                flat = Lyp::Transform.flatten(input_path)
         | 
| 167 | 
            +
                if output_path
         | 
| 168 | 
            +
                  File.open(output_path, 'w+') {|f| f << flat}
         | 
| 150 169 | 
             
                else
         | 
| 151 | 
            -
                   | 
| 170 | 
            +
                  puts flat
         | 
| 152 171 | 
             
                end
         | 
| 153 172 | 
             
              end
         | 
| 154 173 |  | 
| @@ -184,50 +203,6 @@ class Lyp::CLI < Thor | |
| 184 203 | 
             
                end
         | 
| 185 204 | 
             
              end
         | 
| 186 205 |  | 
| 187 | 
            -
              desc "update <PACKAGE>...", "Install a package after removing all previous versions"
         | 
| 188 | 
            -
              method_option :default, aliases: '-d', type: :boolean, desc: 'Set default Lilypond version'
         | 
| 189 | 
            -
              method_option :test, aliases: '-t', type: :boolean, desc: 'Run package tests after installation'
         | 
| 190 | 
            -
              def update(*args)
         | 
| 191 | 
            -
                invoke 'install', args, options.merge(update: true)
         | 
| 192 | 
            -
              end
         | 
| 193 | 
            -
             | 
| 194 | 
            -
              desc "uninstall <PACKAGE|lilypond|self>...", "Uninstall a package or a version of Lilypond. When 'uninstall self' is invoked, lyp uninstalls itself from ~/.lyp."
         | 
| 195 | 
            -
              method_option :all, aliases: '-a', type: :boolean, desc: 'Uninstall all versions'
         | 
| 196 | 
            -
              def uninstall(*args)
         | 
| 197 | 
            -
                $cmd_options = options
         | 
| 198 | 
            -
             | 
| 199 | 
            -
                Lyp::System.test_installed_status!
         | 
| 200 | 
            -
             | 
| 201 | 
            -
                raise "No package specified" if args.empty?
         | 
| 202 | 
            -
                args.each do |package|
         | 
| 203 | 
            -
                  case package
         | 
| 204 | 
            -
                  when 'self'
         | 
| 205 | 
            -
                    Lyp::System.uninstall!
         | 
| 206 | 
            -
                  when Lyp::LILYPOND_RE
         | 
| 207 | 
            -
                    Lyp::System.test_installed_status!
         | 
| 208 | 
            -
                    Lyp::Lilypond.uninstall($1, options)
         | 
| 209 | 
            -
                  else
         | 
| 210 | 
            -
                    Lyp::System.test_installed_status!
         | 
| 211 | 
            -
                    Lyp::Package.uninstall(package, options)
         | 
| 212 | 
            -
                  end
         | 
| 213 | 
            -
                end
         | 
| 214 | 
            -
              end
         | 
| 215 | 
            -
             | 
| 216 | 
            -
              desc "use [lilypond@]<VERSION>", "Switch version of Lilypond"
         | 
| 217 | 
            -
              method_option :default, aliases: '-d', type: :boolean, desc: 'Set default Lilypond version'
         | 
| 218 | 
            -
              def use(version)
         | 
| 219 | 
            -
                $cmd_options = options
         | 
| 220 | 
            -
             | 
| 221 | 
            -
                Lyp::System.test_installed_status!
         | 
| 222 | 
            -
             | 
| 223 | 
            -
                if version =~ Lyp::LILYPOND_RE
         | 
| 224 | 
            -
                  version = $1
         | 
| 225 | 
            -
                end
         | 
| 226 | 
            -
             | 
| 227 | 
            -
                lilypond = Lyp::Lilypond.use(version, options)
         | 
| 228 | 
            -
                puts "Using Lilypond version #{lilypond[:version]}"
         | 
| 229 | 
            -
              end
         | 
| 230 | 
            -
             | 
| 231 206 | 
             
              desc "list [PATTERN|lilypond]", "List installed packages matching PATTERN or versions of Lilypond"
         | 
| 232 207 | 
             
              def list(pattern = nil)
         | 
| 233 208 | 
             
                $cmd_options = options
         | 
| @@ -265,83 +240,174 @@ class Lyp::CLI < Thor | |
| 265 240 | 
             
                end
         | 
| 266 241 | 
             
              end
         | 
| 267 242 |  | 
| 268 | 
            -
              desc " | 
| 269 | 
            -
               | 
| 243 | 
            +
              desc "resolve FILE", "Resolve and install missing dependencies found in user's files"
         | 
| 244 | 
            +
              method_option :all, aliases: '-a', type: :boolean, desc: 'Install all found dependencies'
         | 
| 245 | 
            +
              def resolve(fn)
         | 
| 270 246 | 
             
                $cmd_options = options
         | 
| 271 247 |  | 
| 272 | 
            -
                Lyp:: | 
| 248 | 
            +
                resolver = Lyp::DependencyResolver.new(fn)
         | 
| 249 | 
            +
                tree = resolver.compile_dependency_tree(ignore_missing: true)
         | 
| 250 | 
            +
                tree.dependencies.each do |package, spec|
         | 
| 251 | 
            +
                  if options[:all] || spec.versions.empty?
         | 
| 252 | 
            +
                    Lyp::Package.install(spec.clause)
         | 
| 253 | 
            +
                  end
         | 
| 254 | 
            +
                end
         | 
| 255 | 
            +
              end
         | 
| 273 256 |  | 
| 274 | 
            -
             | 
| 275 | 
            -
             | 
| 276 | 
            -
             | 
| 277 | 
            -
             | 
| 278 | 
            -
             | 
| 279 | 
            -
             | 
| 257 | 
            +
              desc "search [PATTERN|lilypond]", "List available packages matching PATTERN or versions of lilypond"
         | 
| 258 | 
            +
              def search(pattern = '')
         | 
| 259 | 
            +
                $cmd_options = options
         | 
| 260 | 
            +
             | 
| 261 | 
            +
                pattern =~ Lyp::PACKAGE_RE
         | 
| 262 | 
            +
                package, version = $1, $2
         | 
| 263 | 
            +
             | 
| 264 | 
            +
                if package == 'lilypond'
         | 
| 265 | 
            +
                  search_lilypond(version)
         | 
| 266 | 
            +
                else
         | 
| 267 | 
            +
                  search_package(pattern)
         | 
| 268 | 
            +
                end
         | 
| 269 | 
            +
              end
         | 
| 270 | 
            +
             | 
| 271 | 
            +
              desc "test [<option>...] [.|PATTERN]", "Run package tests on installed packages or local directory"
         | 
| 272 | 
            +
              method_option :install, aliases: '-n', type: :boolean, desc: 'Install the requested version of Lilypond if not present'
         | 
| 273 | 
            +
              method_option :env, aliases: '-E', type: :boolean, desc: 'Use version set by LILYPOND_VERSION environment variable'
         | 
| 274 | 
            +
              method_option :use, aliases: '-u', type: :string, desc: 'Use specified version'
         | 
| 275 | 
            +
              def test(*args)
         | 
| 276 | 
            +
                $cmd_options = options
         | 
| 277 | 
            +
                test_opts = options.dup
         | 
| 278 | 
            +
             | 
| 279 | 
            +
                if test_opts[:env]
         | 
| 280 | 
            +
                  unless ENV['LILYPOND_VERSION']
         | 
| 281 | 
            +
                    STDERR.puts "$LILYPOND_VERSION not set"
         | 
| 282 | 
            +
                    exit 1
         | 
| 280 283 | 
             
                  end
         | 
| 284 | 
            +
                  test_opts[:use] = ENV['LILYPOND_VERSION']
         | 
| 285 | 
            +
                end
         | 
| 286 | 
            +
             | 
| 287 | 
            +
                if test_opts[:use]
         | 
| 288 | 
            +
                  if test_opts[:install]
         | 
| 289 | 
            +
                    Lyp::Lilypond.install_if_missing(test_opts[:use], no_version_test: true)
         | 
| 290 | 
            +
                  end
         | 
| 291 | 
            +
                  Lyp::Lilypond.force_version!(test_opts[:use])
         | 
| 292 | 
            +
                end
         | 
| 293 | 
            +
             | 
| 294 | 
            +
                # check lilypond default / current settings
         | 
| 295 | 
            +
                Lyp::Lilypond.check_lilypond!
         | 
| 296 | 
            +
             | 
| 297 | 
            +
                $stderr.puts "Lyp #{Lyp::VERSION}"
         | 
| 298 | 
            +
                case args
         | 
| 299 | 
            +
                when ['.']
         | 
| 300 | 
            +
                  Lyp::Package.run_local_tests('.')
         | 
| 281 301 | 
             
                else
         | 
| 282 | 
            -
                  Lyp::Package. | 
| 302 | 
            +
                  Lyp::Package.run_package_tests(args)
         | 
| 283 303 | 
             
                end
         | 
| 284 304 | 
             
              end
         | 
| 285 305 |  | 
| 286 | 
            -
              desc " | 
| 287 | 
            -
               | 
| 306 | 
            +
              desc "uninstall <PACKAGE|lilypond|self>...", "Uninstall a package or a version of Lilypond. When 'uninstall self' is invoked, lyp uninstalls itself from ~/.lyp."
         | 
| 307 | 
            +
              method_option :all, aliases: '-a', type: :boolean, desc: 'Uninstall all versions'
         | 
| 308 | 
            +
              def uninstall(*args)
         | 
| 288 309 | 
             
                $cmd_options = options
         | 
| 289 310 |  | 
| 290 | 
            -
                 | 
| 291 | 
            -
             | 
| 292 | 
            -
                 | 
| 293 | 
            -
             | 
| 294 | 
            -
                   | 
| 295 | 
            -
             | 
| 311 | 
            +
                Lyp::System.test_installed_status!
         | 
| 312 | 
            +
             | 
| 313 | 
            +
                raise "No package specified" if args.empty?
         | 
| 314 | 
            +
                args.each do |package|
         | 
| 315 | 
            +
                  case package
         | 
| 316 | 
            +
                  when 'self'
         | 
| 317 | 
            +
                    Lyp::System.uninstall!
         | 
| 318 | 
            +
                  when Lyp::LILYPOND_RE
         | 
| 319 | 
            +
                    Lyp::System.test_installed_status!
         | 
| 320 | 
            +
                    Lyp::Lilypond.uninstall($1, options)
         | 
| 296 321 | 
             
                  else
         | 
| 297 | 
            -
                     | 
| 322 | 
            +
                    Lyp::System.test_installed_status!
         | 
| 323 | 
            +
                    Lyp::Package.uninstall(package, options)
         | 
| 298 324 | 
             
                  end
         | 
| 299 325 | 
             
                end
         | 
| 300 326 | 
             
              end
         | 
| 301 327 |  | 
| 302 | 
            -
              desc " | 
| 303 | 
            -
              method_option : | 
| 304 | 
            -
               | 
| 328 | 
            +
              desc "update <PACKAGE>...", "Install a package after removing all previous versions"
         | 
| 329 | 
            +
              method_option :default, aliases: '-d', type: :boolean, desc: 'Set default Lilypond version'
         | 
| 330 | 
            +
              method_option :test, aliases: '-t', type: :boolean, desc: 'Run package tests after installation'
         | 
| 331 | 
            +
              def update(*args)
         | 
| 332 | 
            +
                invoke 'install', args, options.merge(update: true)
         | 
| 333 | 
            +
              end
         | 
| 334 | 
            +
             | 
| 335 | 
            +
              desc "use [lilypond@]<VERSION>", "Switch version of Lilypond"
         | 
| 336 | 
            +
              method_option :default, aliases: '-d', type: :boolean, desc: 'Set default Lilypond version'
         | 
| 337 | 
            +
              def use(version)
         | 
| 305 338 | 
             
                $cmd_options = options
         | 
| 306 339 |  | 
| 307 | 
            -
                 | 
| 308 | 
            -
             | 
| 309 | 
            -
                 | 
| 310 | 
            -
                   | 
| 311 | 
            -
                    Lyp::Package.install(spec.clause)
         | 
| 312 | 
            -
                  end
         | 
| 340 | 
            +
                Lyp::System.test_installed_status!
         | 
| 341 | 
            +
             | 
| 342 | 
            +
                if version =~ Lyp::LILYPOND_RE
         | 
| 343 | 
            +
                  version = $1
         | 
| 313 344 | 
             
                end
         | 
| 345 | 
            +
             | 
| 346 | 
            +
                lilypond = Lyp::Lilypond.use(version, options)
         | 
| 347 | 
            +
                puts "Using Lilypond version #{lilypond[:version]}"
         | 
| 314 348 | 
             
              end
         | 
| 315 349 |  | 
| 316 | 
            -
              desc " | 
| 317 | 
            -
              def  | 
| 350 | 
            +
              desc "version", "show Lyp version"
         | 
| 351 | 
            +
              def version
         | 
| 318 352 | 
             
                $stderr.puts "Lyp #{Lyp::VERSION}"
         | 
| 319 | 
            -
                Dir["#{Lyp::TMP_ROOT}/*"].each do |fn|
         | 
| 320 | 
            -
                  puts "Cleaning up #{fn}"
         | 
| 321 | 
            -
                  FileUtils.rm_rf(fn)
         | 
| 322 | 
            -
                end
         | 
| 323 353 | 
             
              end
         | 
| 324 354 |  | 
| 325 | 
            -
              desc " | 
| 326 | 
            -
               | 
| 327 | 
            -
             | 
| 328 | 
            -
                 | 
| 329 | 
            -
             | 
| 330 | 
            -
                 | 
| 331 | 
            -
                   | 
| 332 | 
            -
             | 
| 333 | 
            -
                  puts  | 
| 355 | 
            +
              desc "watch PATH...", "Watch files and directories and recompile when a file changes"
         | 
| 356 | 
            +
              method_option :target, aliases: '-t', type: :string, desc: 'Set compile target'
         | 
| 357 | 
            +
              def watch(*paths)
         | 
| 358 | 
            +
                req_ext "directory_watcher"
         | 
| 359 | 
            +
             | 
| 360 | 
            +
                recompile_proc = lambda do |path|
         | 
| 361 | 
            +
                  puts "#{path} changed"
         | 
| 362 | 
            +
                  path = options[:target] || path
         | 
| 363 | 
            +
                  puts "recompile #{path}"
         | 
| 364 | 
            +
                  if path =~ /\.(i?)ly$/
         | 
| 365 | 
            +
                    compile("--invoke-system", path)
         | 
| 366 | 
            +
                  end
         | 
| 334 367 | 
             
                end
         | 
| 335 | 
            -
              end
         | 
| 336 368 |  | 
| 337 | 
            -
             | 
| 338 | 
            -
             | 
| 339 | 
            -
                 | 
| 340 | 
            -
                   | 
| 341 | 
            -
             | 
| 369 | 
            +
                target = options[:target]
         | 
| 370 | 
            +
             | 
| 371 | 
            +
                watchers = paths.map do |path|
         | 
| 372 | 
            +
                  if File.directory?(path)
         | 
| 373 | 
            +
                    glob = ["**/*.ly", "**/*.ily", "**/*.scm"]
         | 
| 374 | 
            +
                  else
         | 
| 375 | 
            +
                    glob = [File.basename(path)]
         | 
| 376 | 
            +
                    path = File.dirname(path)
         | 
| 377 | 
            +
                  end
         | 
| 378 | 
            +
             | 
| 379 | 
            +
                  puts "Watching #{path}"
         | 
| 380 | 
            +
                  puts "glob: #{glob.inspect}"
         | 
| 381 | 
            +
                  w = DirectoryWatcher.new(path, glob: glob, pre_load: true).tap do |w|
         | 
| 382 | 
            +
                    w.interval = 0.1
         | 
| 383 | 
            +
                    w.add_observer do |*events|
         | 
| 384 | 
            +
                      events.each {|e| recompile_proc[e.path] if e.type == :modified}
         | 
| 385 | 
            +
                    end
         | 
| 386 | 
            +
                    w.start
         | 
| 387 | 
            +
                  end
         | 
| 342 388 | 
             
                end
         | 
| 343 389 |  | 
| 344 | 
            -
                 | 
| 390 | 
            +
                trap("INT") {watchers.each {|w| w.stop}; puts; exit}
         | 
| 391 | 
            +
                puts "Press ^C to exit"
         | 
| 392 | 
            +
                loop {sleep 1}
         | 
| 393 | 
            +
              end
         | 
| 394 | 
            +
             | 
| 395 | 
            +
              desc "which [PATTERN|lilypond]", "List locations of installed packages matching PATTERN or versions of Lilypond"
         | 
| 396 | 
            +
              def which(pattern = nil)
         | 
| 397 | 
            +
                $cmd_options = options
         | 
| 398 | 
            +
             | 
| 399 | 
            +
                Lyp::System.test_installed_status!
         | 
| 400 | 
            +
             | 
| 401 | 
            +
                if pattern == 'lilypond'
         | 
| 402 | 
            +
                  current = Lyp::Lilypond.current_lilypond
         | 
| 403 | 
            +
                  if current
         | 
| 404 | 
            +
                    puts Lyp::Lilypond.current_lilypond
         | 
| 405 | 
            +
                  else
         | 
| 406 | 
            +
                    puts Lyp::LILYPOND_NOT_FOUND_MSG
         | 
| 407 | 
            +
                  end
         | 
| 408 | 
            +
                else
         | 
| 409 | 
            +
                  Lyp::Package.which(args.first).each {|p| puts p}
         | 
| 410 | 
            +
                end
         | 
| 345 411 | 
             
              end
         | 
| 346 412 |  | 
| 347 413 | 
             
              def self.run
         | 
    
        data/lib/lyp/lilypond.rb
    CHANGED
    
    | @@ -52,6 +52,10 @@ module Lyp::Lilypond | |
| 52 52 | 
             
                    options[:use_version] = argv.shift
         | 
| 53 53 | 
             
                  when /^(?:\-u|\-\-use\=)"?([^\s]+)"?/
         | 
| 54 54 | 
             
                    options[:use_version] = $1
         | 
| 55 | 
            +
                  when '--invoke-system'
         | 
| 56 | 
            +
                    options[:mode] = :system
         | 
| 57 | 
            +
                  when '--invoke-quiet'
         | 
| 58 | 
            +
                    options[:mode] = :quiet
         | 
| 55 59 | 
             
                  else
         | 
| 56 60 | 
             
                    argv_clean << arg
         | 
| 57 61 | 
             
                  end
         | 
| @@ -108,6 +112,8 @@ module Lyp::Lilypond | |
| 108 112 | 
             
                  case opts[:mode]
         | 
| 109 113 | 
             
                  when :system
         | 
| 110 114 | 
             
                    system("#{lilypond} #{argv.join(" ")}")
         | 
| 115 | 
            +
                  when :quiet
         | 
| 116 | 
            +
                    `#{lilypond} #{argv.join(" ")} > /dev/null 2>&1`
         | 
| 111 117 | 
             
                  when :spawn
         | 
| 112 118 | 
             
                    pid = spawn(lilypond, *argv, opts[:spawn_opts] || {})
         | 
| 113 119 | 
             
                    Process.detach(pid)
         | 
    
        data/lib/lyp/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: lyp
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.3.0
         | 
| 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-12- | 
| 11 | 
            +
            date: 2016-12-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: httpclient
         | 
| @@ -84,6 +84,20 @@ dependencies: | |
| 84 84 | 
             
                - - '='
         | 
| 85 85 | 
             
                  - !ruby/object:Gem::Version
         | 
| 86 86 | 
             
                    version: 0.23.0
         | 
| 87 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 88 | 
            +
              name: directory_watcher
         | 
| 89 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 90 | 
            +
                requirements:
         | 
| 91 | 
            +
                - - '='
         | 
| 92 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 93 | 
            +
                    version: 1.5.1
         | 
| 94 | 
            +
              type: :runtime
         | 
| 95 | 
            +
              prerelease: false
         | 
| 96 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 97 | 
            +
                requirements:
         | 
| 98 | 
            +
                - - '='
         | 
| 99 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 100 | 
            +
                    version: 1.5.1
         | 
| 87 101 | 
             
            description: Lyp is a tool for managing lilypond versions and lilypond packages
         | 
| 88 102 | 
             
            email: ciconia@gmail.com
         | 
| 89 103 | 
             
            executables:
         |