kramdown-plantuml 1.0.4 → 1.1.3
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/.github/codecov.yml +2 -0
 - data/.github/dependabot.yml +23 -0
 - data/.github/mergify.yml +22 -0
 - data/.github/scripts/amend.sh +176 -0
 - data/.github/scripts/build-gem.sh +6 -0
 - data/.github/scripts/inspect-gem.sh +72 -0
 - data/.github/scripts/publish-gem.sh +121 -0
 - data/.github/scripts/test-gem.sh +170 -0
 - data/.github/scripts/variables.sh +72 -0
 - data/.github/workflows/amend.yml +19 -0
 - data/.github/workflows/no-java.yml +3 -6
 - data/.github/workflows/no-plantuml.yml +6 -9
 - data/.github/workflows/ruby.yml +135 -81
 - data/.github/workflows/shell.yml +11 -0
 - data/.gitignore +9 -0
 - data/.rubocop.yml +18 -0
 - data/Gemfile +4 -8
 - data/GitVersion.yml +5 -0
 - data/LICENSE +201 -21
 - data/README.md +130 -42
 - data/Rakefile +33 -3
 - data/bin/{plantuml.1.2020.5.jar → net/sourceforge/plantuml/plantuml/1.2021.8/plantuml-1.2021.8.jar} +0 -0
 - data/kramdown-plantuml.gemspec +32 -17
 - data/lib/kramdown-plantuml.rb +4 -6
 - data/lib/kramdown-plantuml/bool_env.rb +24 -0
 - data/lib/kramdown-plantuml/console_logger.rb +56 -0
 - data/lib/kramdown-plantuml/converter.rb +40 -33
 - data/lib/kramdown-plantuml/executor.rb +48 -0
 - data/lib/kramdown-plantuml/logger.rb +89 -0
 - data/lib/kramdown-plantuml/plantuml_error.rb +33 -0
 - data/lib/kramdown-plantuml/plantuml_result.rb +50 -0
 - data/lib/kramdown-plantuml/themer.rb +76 -0
 - data/lib/kramdown-plantuml/version.rb +3 -2
 - data/lib/kramdown_html.rb +21 -9
 - data/lib/which.rb +3 -0
 - data/pom.xml +16 -0
 - metadata +128 -10
 - data/bin/console +0 -14
 - data/bin/setup +0 -8
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 51cbb0be0b06278afe3b3d1eb572190a9f7a04fc869454b023854d5d8012e596
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 0e7cb4345aeab6972d3b0009b71ddc714f046f5b558ae1d37b334697af39575b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c18e9c35a4fef278f506106c1365839e7f58b0b45c8b352912187cd324df373b342400e56f51b9c13278ab199fd5fb6101c63cd02aa25ce9efef07722d7c517a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: d822db2c31c38db0f7ce0a5b92221ebf30a55be1f5d011141199d07d94a01b5ddba99a1ba127d13b88219f6135a384d90741315b6e00b88d0e72c20fa1220d2f
         
     | 
    
        data/.github/codecov.yml
    ADDED
    
    
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            version: 2
         
     | 
| 
      
 2 
     | 
    
         
            +
            updates:
         
     | 
| 
      
 3 
     | 
    
         
            +
            - package-ecosystem: bundler
         
     | 
| 
      
 4 
     | 
    
         
            +
              directory: "/"
         
     | 
| 
      
 5 
     | 
    
         
            +
              schedule:
         
     | 
| 
      
 6 
     | 
    
         
            +
                interval: daily
         
     | 
| 
      
 7 
     | 
    
         
            +
                time: "03:00"
         
     | 
| 
      
 8 
     | 
    
         
            +
                timezone: Europe/Oslo
         
     | 
| 
      
 9 
     | 
    
         
            +
              open-pull-requests-limit: 99
         
     | 
| 
      
 10 
     | 
    
         
            +
            - package-ecosystem: maven
         
     | 
| 
      
 11 
     | 
    
         
            +
              directory: "/"
         
     | 
| 
      
 12 
     | 
    
         
            +
              schedule:
         
     | 
| 
      
 13 
     | 
    
         
            +
                interval: daily
         
     | 
| 
      
 14 
     | 
    
         
            +
                time: "03:00"
         
     | 
| 
      
 15 
     | 
    
         
            +
                timezone: Europe/Oslo
         
     | 
| 
      
 16 
     | 
    
         
            +
              open-pull-requests-limit: 99
         
     | 
| 
      
 17 
     | 
    
         
            +
            - package-ecosystem: github-actions
         
     | 
| 
      
 18 
     | 
    
         
            +
              directory: "/"
         
     | 
| 
      
 19 
     | 
    
         
            +
              schedule:
         
     | 
| 
      
 20 
     | 
    
         
            +
                interval: daily
         
     | 
| 
      
 21 
     | 
    
         
            +
                time: "03:00"
         
     | 
| 
      
 22 
     | 
    
         
            +
                timezone: Europe/Oslo
         
     | 
| 
      
 23 
     | 
    
         
            +
              open-pull-requests-limit: 99
         
     | 
    
        data/.github/mergify.yml
    ADDED
    
    | 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            pull_request_rules:
         
     | 
| 
      
 2 
     | 
    
         
            +
              - name: Automatic approve on dependabot PR
         
     | 
| 
      
 3 
     | 
    
         
            +
                conditions:
         
     | 
| 
      
 4 
     | 
    
         
            +
                  - author~=^dependabot(|-preview)\[bot\]$
         
     | 
| 
      
 5 
     | 
    
         
            +
                actions:
         
     | 
| 
      
 6 
     | 
    
         
            +
                  review:
         
     | 
| 
      
 7 
     | 
    
         
            +
                    type: APPROVE
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              - name: Automatic merge on approval
         
     | 
| 
      
 10 
     | 
    
         
            +
                conditions:
         
     | 
| 
      
 11 
     | 
    
         
            +
                  - author~=^dependabot(|-preview)\[bot\]$
         
     | 
| 
      
 12 
     | 
    
         
            +
                actions:
         
     | 
| 
      
 13 
     | 
    
         
            +
                  merge:
         
     | 
| 
      
 14 
     | 
    
         
            +
                    method: merge
         
     | 
| 
      
 15 
     | 
    
         
            +
                    strict: smart
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              - name: Thank contributor
         
     | 
| 
      
 18 
     | 
    
         
            +
                conditions:
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - merged
         
     | 
| 
      
 20 
     | 
    
         
            +
                actions:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  comment:
         
     | 
| 
      
 22 
     | 
    
         
            +
                    message: "Thank you @{{author}} for your contribution!"
         
     | 
| 
         @@ -0,0 +1,176 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/bin/bash
         
     | 
| 
      
 2 
     | 
    
         
            +
            set -o errexit # Abort if any command fails
         
     | 
| 
      
 3 
     | 
    
         
            +
            me=$(basename "$0")
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            help_message="\
         
     | 
| 
      
 6 
     | 
    
         
            +
            Usage: echo $me --user <username>
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Checks out the pull request where an '/amend' comment is made and amends its
         
     | 
| 
      
 9 
     | 
    
         
            +
            latest commit with the credentials of the user who wrote the '/amend' comment.
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            Arguments:
         
     | 
| 
      
 12 
     | 
    
         
            +
              -u, --user      The user name to use when authenticating against the remote
         
     | 
| 
      
 13 
     | 
    
         
            +
                              Git repository.
         
     | 
| 
      
 14 
     | 
    
         
            +
              -h, --help      Displays this help screen.
         
     | 
| 
      
 15 
     | 
    
         
            +
              -v, --verbose   Increase verbosity. Useful for debugging.
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            Environment Variables:
         
     | 
| 
      
 18 
     | 
    
         
            +
              GITHUB_CONTEXT: An environment variable containing a JSON string of the GitHub
         
     | 
| 
      
 19 
     | 
    
         
            +
                              context object. Typically generated with \${{ toJson(github) }}.
         
     | 
| 
      
 20 
     | 
    
         
            +
              GITHUB_TOKEN:   The personal access token to use to authenticate against the
         
     | 
| 
      
 21 
     | 
    
         
            +
                              remote Git repository."
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            parse_args() {
         
     | 
| 
      
 24 
     | 
    
         
            +
                while : ; do
         
     | 
| 
      
 25 
     | 
    
         
            +
                    if [[ $1 = "-h" || $1 = "--help" ]]; then
         
     | 
| 
      
 26 
     | 
    
         
            +
                        echo "$help_message"
         
     | 
| 
      
 27 
     | 
    
         
            +
                        return 0
         
     | 
| 
      
 28 
     | 
    
         
            +
                    elif [[ $1 = "-v" || $1 = "--verbose" ]]; then
         
     | 
| 
      
 29 
     | 
    
         
            +
                        verbose=true
         
     | 
| 
      
 30 
     | 
    
         
            +
                        shift
         
     | 
| 
      
 31 
     | 
    
         
            +
                    elif [[ ( $1 = "-u" || $1 = "--user" ) && -n $2 ]]; then
         
     | 
| 
      
 32 
     | 
    
         
            +
                        auth_user=$2
         
     | 
| 
      
 33 
     | 
    
         
            +
                        shift 2
         
     | 
| 
      
 34 
     | 
    
         
            +
                    else
         
     | 
| 
      
 35 
     | 
    
         
            +
                        break
         
     | 
| 
      
 36 
     | 
    
         
            +
                    fi
         
     | 
| 
      
 37 
     | 
    
         
            +
                done
         
     | 
| 
      
 38 
     | 
    
         
            +
            }
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            parse_github_context() {
         
     | 
| 
      
 41 
     | 
    
         
            +
                github_context_json="$GITHUB_CONTEXT"
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                if [[ -z "$github_context_json" ]]; then
         
     | 
| 
      
 44 
     | 
    
         
            +
                    echo "Missing or empty GITHUB_CONTEXT environment variable." >&2
         
     | 
| 
      
 45 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 46 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 47 
     | 
    
         
            +
                fi
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                if [[ -z "$GITHUB_TOKEN" ]]; then
         
     | 
| 
      
 50 
     | 
    
         
            +
                    echo "Missing or empty GITHUB_TOKEN environment variable." >&2
         
     | 
| 
      
 51 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 52 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 53 
     | 
    
         
            +
                fi
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                if [[ -z "$auth_user" ]]; then
         
     | 
| 
      
 56 
     | 
    
         
            +
                    echo "Missing or empty 'auth_user' argument." >&2
         
     | 
| 
      
 57 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 58 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 59 
     | 
    
         
            +
                fi
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                sha=$(echo "$github_context_json" | jq --raw-output .sha)
         
     | 
| 
      
 62 
     | 
    
         
            +
                pr_url=$(echo "$github_context_json" | jq --raw-output .event.issue.pull_request.html_url)
         
     | 
| 
      
 63 
     | 
    
         
            +
                sender_login=$(echo "$github_context_json" | jq --raw-output .event.sender.login)
         
     | 
| 
      
 64 
     | 
    
         
            +
                sender_url=$(echo "$github_context_json" | jq --raw-output .event.sender.url)
         
     | 
| 
      
 65 
     | 
    
         
            +
                repo_url=$(echo "$github_context_json" | jq --raw-output .event.repository.html_url)
         
     | 
| 
      
 66 
     | 
    
         
            +
                repo_clone_url=$(echo "$github_context_json" | jq --raw-output .event.repository.clone_url)
         
     | 
| 
      
 67 
     | 
    
         
            +
                collaborators_url=$(echo "$github_context_json" | jq --raw-output .event.repository.collaborators_url)
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                if [[ -z "$sha" ]]; then
         
     | 
| 
      
 70 
     | 
    
         
            +
                    echo "No 'sha' found in the GitHub context." >&2
         
     | 
| 
      
 71 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 72 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 73 
     | 
    
         
            +
                fi
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                if [[ -z "$pr_url" ]]; then
         
     | 
| 
      
 76 
     | 
    
         
            +
                    echo "No 'event.issue.pull_request.html_url' found in the GitHub context." >&2
         
     | 
| 
      
 77 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 78 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 79 
     | 
    
         
            +
                fi
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                if [[ -z "$sender_login" ]]; then
         
     | 
| 
      
 82 
     | 
    
         
            +
                    echo "No 'event.sender.login' found in the GitHub context." >&2
         
     | 
| 
      
 83 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 84 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 85 
     | 
    
         
            +
                fi
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                if [[ -z "$sender_url" ]]; then
         
     | 
| 
      
 88 
     | 
    
         
            +
                    echo "No 'event.sender.url' found in the GitHub context." >&2
         
     | 
| 
      
 89 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 90 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 91 
     | 
    
         
            +
                fi
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                if [[ -z "$repo_url" ]]; then
         
     | 
| 
      
 94 
     | 
    
         
            +
                    echo "No 'event.repository.html_url' found in the GitHub context." >&2
         
     | 
| 
      
 95 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 96 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 97 
     | 
    
         
            +
                fi
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                if [[ -z "$repo_clone_url" ]]; then
         
     | 
| 
      
 100 
     | 
    
         
            +
                    echo "No 'event.repository.clone_url' found in the GitHub context." >&2
         
     | 
| 
      
 101 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 102 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 103 
     | 
    
         
            +
                fi
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                if [[ -z "$collaborators_url" ]]; then
         
     | 
| 
      
 106 
     | 
    
         
            +
                    echo "No 'event.repository.collaborators_url' found in the GitHub context." >&2
         
     | 
| 
      
 107 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 108 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 109 
     | 
    
         
            +
                fi
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
                user_json=$(gh api -X GET "$sender_url")
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                if [[ -z "$user_json" ]]; then
         
     | 
| 
      
 114 
     | 
    
         
            +
                    echo "The request for '$sender_url' failed." >&2
         
     | 
| 
      
 115 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 116 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 117 
     | 
    
         
            +
                fi
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                name=$(echo "$user_json" | jq --raw-output .name)
         
     | 
| 
      
 120 
     | 
    
         
            +
                email=$(echo "$user_json" | jq --raw-output .email)
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
                if [[ -z "$name" ]]; then
         
     | 
| 
      
 123 
     | 
    
         
            +
                    echo "No 'name' found in '$sender_url'." >&2
         
     | 
| 
      
 124 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 125 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 126 
     | 
    
         
            +
                fi
         
     | 
| 
      
 127 
     | 
    
         
            +
             
     | 
| 
      
 128 
     | 
    
         
            +
                if [[ -z "$email" ]]; then
         
     | 
| 
      
 129 
     | 
    
         
            +
                    echo "No 'email' found in '$sender_url'." >&2
         
     | 
| 
      
 130 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 131 
     | 
    
         
            +
                    exit 1
         
     | 
| 
      
 132 
     | 
    
         
            +
                fi
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                # Replace the template part of the URL with the sender_login (collaborator).
         
     | 
| 
      
 135 
     | 
    
         
            +
                # https://api.github.com/repos/asbjornu/test/collaborators{/collaborator}
         
     | 
| 
      
 136 
     | 
    
         
            +
                collaborator_url="${collaborators_url/\{\/collaborator\}//$sender_login}"
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
                # Add sender_login and password to the repository clone URL
         
     | 
| 
      
 139 
     | 
    
         
            +
                authenticated_repo_url="${repo_clone_url/github\.com/$auth_user:$GITHUB_TOKEN@github.com}"
         
     | 
| 
      
 140 
     | 
    
         
            +
            }
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
            # echo expanded commands as they are executed (for debugging)
         
     | 
| 
      
 143 
     | 
    
         
            +
            enable_expanded_output() {
         
     | 
| 
      
 144 
     | 
    
         
            +
                if [ $verbose ]; then
         
     | 
| 
      
 145 
     | 
    
         
            +
                    set -o xtrace
         
     | 
| 
      
 146 
     | 
    
         
            +
                    set +o verbose
         
     | 
| 
      
 147 
     | 
    
         
            +
                fi
         
     | 
| 
      
 148 
     | 
    
         
            +
            }
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
            amend() {
         
     | 
| 
      
 151 
     | 
    
         
            +
                gh pr checkout "$pr_url"
         
     | 
| 
      
 152 
     | 
    
         
            +
                gh pr comment --body "The commit $sha is being amended."
         
     | 
| 
      
 153 
     | 
    
         
            +
                git config --global user.name "$name"
         
     | 
| 
      
 154 
     | 
    
         
            +
                git config --global user.email "$email"
         
     | 
| 
      
 155 
     | 
    
         
            +
                git remote set-url origin "$authenticated_repo_url"
         
     | 
| 
      
 156 
     | 
    
         
            +
                git commit --amend --no-edit
         
     | 
| 
      
 157 
     | 
    
         
            +
                git push --force
         
     | 
| 
      
 158 
     | 
    
         
            +
            }
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
            main() {
         
     | 
| 
      
 161 
     | 
    
         
            +
                parse_args "$@"
         
     | 
| 
      
 162 
     | 
    
         
            +
                enable_expanded_output
         
     | 
| 
      
 163 
     | 
    
         
            +
                parse_github_context
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
                # If the request for </repos/{owner}/{repo}/collaborators/{sender_login}>
         
     | 
| 
      
 166 
     | 
    
         
            +
                # fails (404 not found), `gh` should return 1 and thus fail the entire
         
     | 
| 
      
 167 
     | 
    
         
            +
                # script. For more information, see:
         
     | 
| 
      
 168 
     | 
    
         
            +
                # https://docs.github.com/en/rest/reference/repos#check-if-a-user-is-a-repository-collaborator
         
     | 
| 
      
 169 
     | 
    
         
            +
                if gh api -X GET "$collaborator_url" > /dev/null; then
         
     | 
| 
      
 170 
     | 
    
         
            +
                    amend
         
     | 
| 
      
 171 
     | 
    
         
            +
                else
         
     | 
| 
      
 172 
     | 
    
         
            +
                    echo "'$sender_login' does not have access to the repository <$repo_url>."
         
     | 
| 
      
 173 
     | 
    
         
            +
                fi
         
     | 
| 
      
 174 
     | 
    
         
            +
            }
         
     | 
| 
      
 175 
     | 
    
         
            +
             
     | 
| 
      
 176 
     | 
    
         
            +
            main "$@"
         
     | 
| 
         @@ -0,0 +1,72 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env bash
         
     | 
| 
      
 2 
     | 
    
         
            +
            set -e # Abort if any command fails
         
     | 
| 
      
 3 
     | 
    
         
            +
            me=$(basename "$0")
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            help_message="\
         
     | 
| 
      
 6 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 7 
     | 
    
         
            +
              $me --gem <gem> [--verbose]
         
     | 
| 
      
 8 
     | 
    
         
            +
              $me --help
         
     | 
| 
      
 9 
     | 
    
         
            +
            Arguments:
         
     | 
| 
      
 10 
     | 
    
         
            +
              -g, --gem <gem>   The path to the Gem file to inspect.
         
     | 
| 
      
 11 
     | 
    
         
            +
              -h, --help        Displays this help screen.
         
     | 
| 
      
 12 
     | 
    
         
            +
              -v, --verbose     Increase verbosity. Useful for debugging."
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            parse_args() {
         
     | 
| 
      
 15 
     | 
    
         
            +
                while : ; do
         
     | 
| 
      
 16 
     | 
    
         
            +
                    if [[ $1 = "-h" || $1 = "--help" ]]; then
         
     | 
| 
      
 17 
     | 
    
         
            +
                        echo "$help_message"
         
     | 
| 
      
 18 
     | 
    
         
            +
                        return 0
         
     | 
| 
      
 19 
     | 
    
         
            +
                    elif [[ $1 = "-v" || $1 = "--verbose" ]]; then
         
     | 
| 
      
 20 
     | 
    
         
            +
                        verbose=true
         
     | 
| 
      
 21 
     | 
    
         
            +
                        shift
         
     | 
| 
      
 22 
     | 
    
         
            +
                    elif [[ $1 = "-g" || $1 = "--gem" ]]; then
         
     | 
| 
      
 23 
     | 
    
         
            +
                        gem=$2
         
     | 
| 
      
 24 
     | 
    
         
            +
                        shift 2
         
     | 
| 
      
 25 
     | 
    
         
            +
                    else
         
     | 
| 
      
 26 
     | 
    
         
            +
                        break
         
     | 
| 
      
 27 
     | 
    
         
            +
                    fi
         
     | 
| 
      
 28 
     | 
    
         
            +
                done
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                if [[ -z "$gem" ]]; then
         
     | 
| 
      
 31 
     | 
    
         
            +
                    echo "Missing required argument: --gem <gem>."
         
     | 
| 
      
 32 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 33 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 34 
     | 
    
         
            +
                fi
         
     | 
| 
      
 35 
     | 
    
         
            +
            }
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            # Echo expanded commands as they are executed (for debugging)
         
     | 
| 
      
 38 
     | 
    
         
            +
            enable_expanded_output() {
         
     | 
| 
      
 39 
     | 
    
         
            +
                if [ $verbose ]; then
         
     | 
| 
      
 40 
     | 
    
         
            +
                    echo "Verbose mode enabled."
         
     | 
| 
      
 41 
     | 
    
         
            +
                    set -o xtrace
         
     | 
| 
      
 42 
     | 
    
         
            +
                    set +o verbose
         
     | 
| 
      
 43 
     | 
    
         
            +
                fi
         
     | 
| 
      
 44 
     | 
    
         
            +
            }
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            inspect_gem() {
         
     | 
| 
      
 47 
     | 
    
         
            +
                gem unpack "$gem"
         
     | 
| 
      
 48 
     | 
    
         
            +
                gem_dir="${gem%.*}"
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                if [ $verbose ]; then
         
     | 
| 
      
 51 
     | 
    
         
            +
                    echo "Files in '$gem_dir':"
         
     | 
| 
      
 52 
     | 
    
         
            +
                    find "$gem_dir"
         
     | 
| 
      
 53 
     | 
    
         
            +
                fi
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                if [[ ! -d "$gem_dir/bin" ]]; then
         
     | 
| 
      
 56 
     | 
    
         
            +
                    echo "ERROR! 'bin' folder missing from '$gem'."
         
     | 
| 
      
 57 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 58 
     | 
    
         
            +
                fi
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                if ! (find "$gem_dir" -iname "plantuml*.jar" | grep -q .); then
         
     | 
| 
      
 61 
     | 
    
         
            +
                    echo "ERROR! 'plantuml.jar' missing from '$gem'."
         
     | 
| 
      
 62 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 63 
     | 
    
         
            +
                fi
         
     | 
| 
      
 64 
     | 
    
         
            +
            }
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            main() {
         
     | 
| 
      
 67 
     | 
    
         
            +
                parse_args "$@"
         
     | 
| 
      
 68 
     | 
    
         
            +
                enable_expanded_output
         
     | 
| 
      
 69 
     | 
    
         
            +
                inspect_gem
         
     | 
| 
      
 70 
     | 
    
         
            +
            }
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            main "$@"
         
     | 
| 
         @@ -0,0 +1,121 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env bash
         
     | 
| 
      
 2 
     | 
    
         
            +
            set -e # Abort if any command fails
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            me=$(basename "$0")
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            help_message="\
         
     | 
| 
      
 7 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 8 
     | 
    
         
            +
              $me --gem <gem-path> --token <token> [--owner <owner>] [--verbose]
         
     | 
| 
      
 9 
     | 
    
         
            +
              $me --help
         
     | 
| 
      
 10 
     | 
    
         
            +
            Arguments:
         
     | 
| 
      
 11 
     | 
    
         
            +
              -g, --gem <gem-path>      The path of the Gem to publish.
         
     | 
| 
      
 12 
     | 
    
         
            +
              -t, --token <token>       The access token to use for publishing the gem to
         
     | 
| 
      
 13 
     | 
    
         
            +
                                        the specified registry.
         
     | 
| 
      
 14 
     | 
    
         
            +
              -o, --owner <owner>       The owner to use when publishing to the GitHub
         
     | 
| 
      
 15 
     | 
    
         
            +
                                        Package Registry. If empty, will publish to
         
     | 
| 
      
 16 
     | 
    
         
            +
                                        RubyGems.org.
         
     | 
| 
      
 17 
     | 
    
         
            +
              -h, --help                Displays this help screen.
         
     | 
| 
      
 18 
     | 
    
         
            +
              -v, --verbose             Increase verbosity. Useful for debugging."
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            parse_args() {
         
     | 
| 
      
 21 
     | 
    
         
            +
                while : ; do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    if [[ $1 = "-h" || $1 = "--help" ]]; then
         
     | 
| 
      
 23 
     | 
    
         
            +
                        echo "$help_message"
         
     | 
| 
      
 24 
     | 
    
         
            +
                        return 0
         
     | 
| 
      
 25 
     | 
    
         
            +
                    elif [[ $1 = "-v" || $1 = "--verbose" ]]; then
         
     | 
| 
      
 26 
     | 
    
         
            +
                        verbose=true
         
     | 
| 
      
 27 
     | 
    
         
            +
                        shift
         
     | 
| 
      
 28 
     | 
    
         
            +
                    elif [[ $1 = "-g" || $1 = "--gem" ]]; then
         
     | 
| 
      
 29 
     | 
    
         
            +
                        gem=${2// }
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                        if [[ "$gem" = "--"* ]]; then
         
     | 
| 
      
 32 
     | 
    
         
            +
                            gem=""
         
     | 
| 
      
 33 
     | 
    
         
            +
                            shift 1
         
     | 
| 
      
 34 
     | 
    
         
            +
                        else
         
     | 
| 
      
 35 
     | 
    
         
            +
                            shift 2
         
     | 
| 
      
 36 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 37 
     | 
    
         
            +
                    elif [[ $1 = "-t" || $1 = "--token" ]]; then
         
     | 
| 
      
 38 
     | 
    
         
            +
                        token=${2// }
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                        if [[ "$token" = "--"* ]]; then
         
     | 
| 
      
 41 
     | 
    
         
            +
                            token=""
         
     | 
| 
      
 42 
     | 
    
         
            +
                            shift 1
         
     | 
| 
      
 43 
     | 
    
         
            +
                        else
         
     | 
| 
      
 44 
     | 
    
         
            +
                            shift 2
         
     | 
| 
      
 45 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 46 
     | 
    
         
            +
                    elif [[ $1 = "-o" || $1 = "--owner" ]]; then
         
     | 
| 
      
 47 
     | 
    
         
            +
                        owner=${2// }
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                        if [[ "$owner" = "--"* ]]; then
         
     | 
| 
      
 50 
     | 
    
         
            +
                            owner=""
         
     | 
| 
      
 51 
     | 
    
         
            +
                            shift 1
         
     | 
| 
      
 52 
     | 
    
         
            +
                        else
         
     | 
| 
      
 53 
     | 
    
         
            +
                            shift 2
         
     | 
| 
      
 54 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 55 
     | 
    
         
            +
                    else
         
     | 
| 
      
 56 
     | 
    
         
            +
                        break
         
     | 
| 
      
 57 
     | 
    
         
            +
                    fi
         
     | 
| 
      
 58 
     | 
    
         
            +
                done
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                if [[ -z "$gem" ]]; then
         
     | 
| 
      
 61 
     | 
    
         
            +
                    echo "Missing required argument: --gem <gem>."
         
     | 
| 
      
 62 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 63 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 64 
     | 
    
         
            +
                fi
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                if [[ -z "$token" ]]; then
         
     | 
| 
      
 67 
     | 
    
         
            +
                    echo "Missing required argument: --token <token>."
         
     | 
| 
      
 68 
     | 
    
         
            +
                    echo "$help_message"
         
     | 
| 
      
 69 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 70 
     | 
    
         
            +
                fi
         
     | 
| 
      
 71 
     | 
    
         
            +
            }
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            # Echo expanded commands as they are executed (for debugging)
         
     | 
| 
      
 74 
     | 
    
         
            +
            enable_expanded_output() {
         
     | 
| 
      
 75 
     | 
    
         
            +
                if [ $verbose ]; then
         
     | 
| 
      
 76 
     | 
    
         
            +
                    set -o xtrace
         
     | 
| 
      
 77 
     | 
    
         
            +
                    set +o verbose
         
     | 
| 
      
 78 
     | 
    
         
            +
                fi
         
     | 
| 
      
 79 
     | 
    
         
            +
            }
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            publish_gem() {
         
     | 
| 
      
 82 
     | 
    
         
            +
                gem_home="$HOME/.gem"
         
     | 
| 
      
 83 
     | 
    
         
            +
                credentials_file="$gem_home/credentials"
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                if [[ -n "$owner" ]]; then
         
     | 
| 
      
 86 
     | 
    
         
            +
                    auth_header="github: Bearer"
         
     | 
| 
      
 87 
     | 
    
         
            +
                    host="https://rubygems.pkg.github.com/$owner"
         
     | 
| 
      
 88 
     | 
    
         
            +
                else
         
     | 
| 
      
 89 
     | 
    
         
            +
                    auth_header="rubygems_api_key:"
         
     | 
| 
      
 90 
     | 
    
         
            +
                fi
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                mkdir -p "$gem_home"
         
     | 
| 
      
 93 
     | 
    
         
            +
                touch "$credentials_file"
         
     | 
| 
      
 94 
     | 
    
         
            +
                chmod 0600 "$credentials_file"
         
     | 
| 
      
 95 
     | 
    
         
            +
                printf -- "---\n:%s %s\n" "$auth_header" "$token" > "$credentials_file"
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                if [[ -n "$host" ]]; then
         
     | 
| 
      
 98 
     | 
    
         
            +
                    if ! result=$(gem push --KEY github --host "$host" "$gem"); then
         
     | 
| 
      
 99 
     | 
    
         
            +
                        echo "ERROR: gem push failed."
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                        if [[ $result == *"has already been pushed"* ]]; then
         
     | 
| 
      
 102 
     | 
    
         
            +
                            echo "ERROR: $gem has already been pushed."
         
     | 
| 
      
 103 
     | 
    
         
            +
                            # Silently ignore 'already been pushed' Gem errors.
         
     | 
| 
      
 104 
     | 
    
         
            +
                            return 0
         
     | 
| 
      
 105 
     | 
    
         
            +
                        else
         
     | 
| 
      
 106 
     | 
    
         
            +
                            echo "$result"
         
     | 
| 
      
 107 
     | 
    
         
            +
                            return 1
         
     | 
| 
      
 108 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 109 
     | 
    
         
            +
                    fi
         
     | 
| 
      
 110 
     | 
    
         
            +
                else
         
     | 
| 
      
 111 
     | 
    
         
            +
                    gem push "$gem"
         
     | 
| 
      
 112 
     | 
    
         
            +
                fi
         
     | 
| 
      
 113 
     | 
    
         
            +
            }
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
            main() {
         
     | 
| 
      
 116 
     | 
    
         
            +
                parse_args "$@"
         
     | 
| 
      
 117 
     | 
    
         
            +
                enable_expanded_output
         
     | 
| 
      
 118 
     | 
    
         
            +
                publish_gem
         
     | 
| 
      
 119 
     | 
    
         
            +
            }
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
            main "$@"
         
     | 
| 
         @@ -0,0 +1,170 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env bash
         
     | 
| 
      
 2 
     | 
    
         
            +
            # shellcheck disable=3000-SC4000
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            set -o errexit # Abort if any command fails
         
     | 
| 
      
 5 
     | 
    
         
            +
            me=$(basename "$0")
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            help_message="\
         
     | 
| 
      
 8 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 9 
     | 
    
         
            +
              ${me} --workdir <workdir> [--gemdir <gemdir> | --version <version> --token <token>] [--verbose]
         
     | 
| 
      
 10 
     | 
    
         
            +
              ${me} --help
         
     | 
| 
      
 11 
     | 
    
         
            +
            Arguments:
         
     | 
| 
      
 12 
     | 
    
         
            +
              -w, --workdir <workdir>       The path to the working directory.
         
     | 
| 
      
 13 
     | 
    
         
            +
              -g, --gemdir <gemdir>         The path to directory of the Gem file to test.
         
     | 
| 
      
 14 
     | 
    
         
            +
              -v, --version <version>       The version of the Gem to test.
         
     | 
| 
      
 15 
     | 
    
         
            +
              -t, --token <token>           The GitHub token to use for retrieving the gem
         
     | 
| 
      
 16 
     | 
    
         
            +
                                            from the GitHub Package Registry.
         
     | 
| 
      
 17 
     | 
    
         
            +
              -h, --help                    Displays this help screen.
         
     | 
| 
      
 18 
     | 
    
         
            +
              -v, --verbose                 Increase verbosity. Useful for debugging."
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            parse_args() {
         
     | 
| 
      
 21 
     | 
    
         
            +
                while : ; do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    if [[ $1 = "-h" || $1 = "--help" ]]; then
         
     | 
| 
      
 23 
     | 
    
         
            +
                        echo "${help_message}"
         
     | 
| 
      
 24 
     | 
    
         
            +
                        return 0
         
     | 
| 
      
 25 
     | 
    
         
            +
                    elif [[ $1 = "-v" || $1 = "--verbose" ]]; then
         
     | 
| 
      
 26 
     | 
    
         
            +
                        verbose=true
         
     | 
| 
      
 27 
     | 
    
         
            +
                        shift
         
     | 
| 
      
 28 
     | 
    
         
            +
                    elif [[ $1 = "-g" || $1 = "--gemdir" ]]; then
         
     | 
| 
      
 29 
     | 
    
         
            +
                        gemdir=${2// }
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                        if [[ "${gemdir}" = "--"* ]]; then
         
     | 
| 
      
 32 
     | 
    
         
            +
                            gemdir=""
         
     | 
| 
      
 33 
     | 
    
         
            +
                            shift 1
         
     | 
| 
      
 34 
     | 
    
         
            +
                        else
         
     | 
| 
      
 35 
     | 
    
         
            +
                            shift 2
         
     | 
| 
      
 36 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 37 
     | 
    
         
            +
                    elif [[ $1 = "-v" || $1 = "--version" ]]; then
         
     | 
| 
      
 38 
     | 
    
         
            +
                        version=${2// }
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                        if [[ "${version}" = "--"* ]]; then
         
     | 
| 
      
 41 
     | 
    
         
            +
                            version=""
         
     | 
| 
      
 42 
     | 
    
         
            +
                            shift 1
         
     | 
| 
      
 43 
     | 
    
         
            +
                        else
         
     | 
| 
      
 44 
     | 
    
         
            +
                            shift 2
         
     | 
| 
      
 45 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 46 
     | 
    
         
            +
                    elif [[ $1 = "-t" || $1 = "--token" ]]; then
         
     | 
| 
      
 47 
     | 
    
         
            +
                        token=${2// }
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                        if [[ "${token}" = "--"* ]]; then
         
     | 
| 
      
 50 
     | 
    
         
            +
                            token=""
         
     | 
| 
      
 51 
     | 
    
         
            +
                            shift 1
         
     | 
| 
      
 52 
     | 
    
         
            +
                        else
         
     | 
| 
      
 53 
     | 
    
         
            +
                            shift 2
         
     | 
| 
      
 54 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 55 
     | 
    
         
            +
                    elif [[ $1 = "-w" || $1 = "--workdir" ]]; then
         
     | 
| 
      
 56 
     | 
    
         
            +
                        workdir=${2// }
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                        if [[ "${workdir}" = "--"* ]]; then
         
     | 
| 
      
 59 
     | 
    
         
            +
                            workdir=""
         
     | 
| 
      
 60 
     | 
    
         
            +
                            shift 1
         
     | 
| 
      
 61 
     | 
    
         
            +
                        else
         
     | 
| 
      
 62 
     | 
    
         
            +
                            shift 2
         
     | 
| 
      
 63 
     | 
    
         
            +
                        fi
         
     | 
| 
      
 64 
     | 
    
         
            +
                    else
         
     | 
| 
      
 65 
     | 
    
         
            +
                        break
         
     | 
| 
      
 66 
     | 
    
         
            +
                    fi
         
     | 
| 
      
 67 
     | 
    
         
            +
                done
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                if [[ -z "${workdir}" ]]; then
         
     | 
| 
      
 70 
     | 
    
         
            +
                    echo "Missing required argument: --workdir <workdir>."
         
     | 
| 
      
 71 
     | 
    
         
            +
                    echo "${help_message}"
         
     | 
| 
      
 72 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 73 
     | 
    
         
            +
                fi
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                if [[ (-z "${gemdir}" && -z "${token}") || (-n "${gemdir}" && -n "${token}") ]]; then
         
     | 
| 
      
 76 
     | 
    
         
            +
                    echo "Missing or invalid required arguments: --gemdir <gem-path> or --token <token>."
         
     | 
| 
      
 77 
     | 
    
         
            +
                    echo "Either [--gemdir] or [--token] needs to be provided, but not both."
         
     | 
| 
      
 78 
     | 
    
         
            +
                    echo "${help_message}"
         
     | 
| 
      
 79 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 80 
     | 
    
         
            +
                fi
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                if [[ (-n "${version}" && -z "${token}") || (-z "${version}" && -n "${token}") ]]; then
         
     | 
| 
      
 83 
     | 
    
         
            +
                    echo "Missing or invalid required arguments: --version <gem-path> and --token <token>."
         
     | 
| 
      
 84 
     | 
    
         
            +
                    echo "When either argument is present, both must be."
         
     | 
| 
      
 85 
     | 
    
         
            +
                    echo "${help_message}"
         
     | 
| 
      
 86 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 87 
     | 
    
         
            +
                fi
         
     | 
| 
      
 88 
     | 
    
         
            +
            }
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            # Echo expanded commands as they are executed (for debugging)
         
     | 
| 
      
 91 
     | 
    
         
            +
            enable_expanded_output() {
         
     | 
| 
      
 92 
     | 
    
         
            +
                if [ "${verbose}" = true ]; then
         
     | 
| 
      
 93 
     | 
    
         
            +
                    set -o xtrace
         
     | 
| 
      
 94 
     | 
    
         
            +
                    set +o verbose
         
     | 
| 
      
 95 
     | 
    
         
            +
                    export VERBOSE=true
         
     | 
| 
      
 96 
     | 
    
         
            +
                fi
         
     | 
| 
      
 97 
     | 
    
         
            +
            }
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            test_gem() {
         
     | 
| 
      
 100 
     | 
    
         
            +
                local jekyll_build_args=()
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                cd "${workdir}"
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
                gem install bundler
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                if [[ -n "${token}" ]]; then
         
     | 
| 
      
 107 
     | 
    
         
            +
                    # A non-empty $token means we should install the Gem from GPR
         
     | 
| 
      
 108 
     | 
    
         
            +
                    repository="https://rubygems.pkg.github.com/swedbankpay"
         
     | 
| 
      
 109 
     | 
    
         
            +
                    bundle config "${repository}" "SwedbankPay:${token}"
         
     | 
| 
      
 110 
     | 
    
         
            +
                    printf "source '%s' do\n\tgem 'kramdown-plantuml', '%s'\nend" "${repository}" "${version}" >> Gemfile
         
     | 
| 
      
 111 
     | 
    
         
            +
                else
         
     | 
| 
      
 112 
     | 
    
         
            +
                    echo "gem 'kramdown-plantuml', path: '${gemdir}'" >> Gemfile
         
     | 
| 
      
 113 
     | 
    
         
            +
                fi
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                if [[ "${verbose}" = true ]]; then
         
     | 
| 
      
 116 
     | 
    
         
            +
                    cat Gemfile
         
     | 
| 
      
 117 
     | 
    
         
            +
                    jekyll_build_args+=(--verbose)
         
     | 
| 
      
 118 
     | 
    
         
            +
                fi
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
                bundle install
         
     | 
| 
      
 121 
     | 
    
         
            +
                bundle exec jekyll build "${jekyll_build_args[@]}"
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
                file="${workdir}/_site/index.html"
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
                file_contains "${file}" "class=\"plantuml theme-spacelab\""
         
     | 
| 
      
 126 
     | 
    
         
            +
                file_contains "${file}" "<svg"
         
     | 
| 
      
 127 
     | 
    
         
            +
                file_contains "${file}" "<ellipse"
         
     | 
| 
      
 128 
     | 
    
         
            +
                file_contains "${file}" "<polygon"
         
     | 
| 
      
 129 
     | 
    
         
            +
                file_contains "${file}" "<path"
         
     | 
| 
      
 130 
     | 
    
         
            +
            }
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
            file_contains() {
         
     | 
| 
      
 133 
     | 
    
         
            +
                file=$1
         
     | 
| 
      
 134 
     | 
    
         
            +
                contents=$2
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
                if [[ -z "${file}" ]]; then
         
     | 
| 
      
 137 
     | 
    
         
            +
                    echo "file_contains missing required argument <file>."
         
     | 
| 
      
 138 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 139 
     | 
    
         
            +
                fi
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
                if [[ -z "${contents}" ]]; then
         
     | 
| 
      
 142 
     | 
    
         
            +
                    echo "file_contains missing required argument <contents>."
         
     | 
| 
      
 143 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 144 
     | 
    
         
            +
                fi
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                if [[ ! -f "${file}" ]]; then
         
     | 
| 
      
 147 
     | 
    
         
            +
                    echo "file_contains <file> not found: '${file}'."
         
     | 
| 
      
 148 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 149 
     | 
    
         
            +
                fi
         
     | 
| 
      
 150 
     | 
    
         
            +
             
     | 
| 
      
 151 
     | 
    
         
            +
                if grep --quiet --fixed-strings "${contents}" "${file}"; then
         
     | 
| 
      
 152 
     | 
    
         
            +
                    echo "Success! '${contents}' found in '${file}'."
         
     | 
| 
      
 153 
     | 
    
         
            +
                else
         
     | 
| 
      
 154 
     | 
    
         
            +
                    echo "Failed! '${contents}' not found in '${file}'."
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
                    if [ "${verbose}" = true ]; then
         
     | 
| 
      
 157 
     | 
    
         
            +
                        cat "${file}"
         
     | 
| 
      
 158 
     | 
    
         
            +
                    fi
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                    return 1
         
     | 
| 
      
 161 
     | 
    
         
            +
                fi
         
     | 
| 
      
 162 
     | 
    
         
            +
            }
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
            main() {
         
     | 
| 
      
 165 
     | 
    
         
            +
                parse_args "$@"
         
     | 
| 
      
 166 
     | 
    
         
            +
                enable_expanded_output
         
     | 
| 
      
 167 
     | 
    
         
            +
                test_gem
         
     | 
| 
      
 168 
     | 
    
         
            +
            }
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
            main "$@"
         
     |