Skip to content

Commit

Permalink
[#5976] Improvement(bin):Add validation checks to the startup scripts…
Browse files Browse the repository at this point in the history
… to prevent incorrect usage (#5977)

### What changes were proposed in this pull request?

#5976

- Add file suffix ‘template’ to the following scripts:
    - bin/gravitino.sh
    - bin/common.sh
    - bin/gravitino-iceberg-rest-server.sh
- Add a validation check on `GRAVITINO_VERSION` in the script
bin/common.sh ( renamed to bin/common.sh.template ) with the followings
:
    
    ```bash
    GRAVITINO_VERSION=GRAVITINO_VERSION_PLACEHOLDER
    if [[ "$GRAVITINO_VERSION" == *_VERSION_PLACEHOLDER ]]; then
echo "GRAVITINO_VERSION is not set. Please make sure you are running the
script from the distribution/package/bin and before running the script,
run './gradle clean build -x test compileDistribution'"
      exit 1
    fi
    
    ```
    
- Update the following tasks in the root build.gradle.kts as described
below :
    - compileDistribution
    - compileIcebergRESTServer
    ```bash
     eachFile {
          if (name == "gravitino-env.sh" || name == "common.sh") {
            filter { line ->
              line.replace("GRAVITINO_VERSION_PLACEHOLDER", "$version")
            }
          }
        }
    ```

### Why are the changes needed?

To prevent incorrect usage with startup scripts

### Does this PR introduce _any_ user-facing change?

No

### How was this patch tested?
- The scripts below will exit with status 1 and print an error message
with the correct instructions
```bash

cd bin
gravitino.sh.template start    
gravitino-iceberg-rest-server.sh.template start
```

- correct way to run gravitino : 
```bash
./gradle clean build -x test compileDistribution

cd distribution/package/bin

./gravitino.sh start

./gravitino-iceberg-rest-server.sh start

```
  • Loading branch information
liuchunhao authored Jan 15, 2025
1 parent 3a48aba commit 39ad18a
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 2 deletions.
9 changes: 9 additions & 0 deletions bin/common.sh → bin/common.sh.template
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,15 @@ if [[ -f "${GRAVITINO_CONF_DIR}/gravitino-env.sh" ]]; then
. "${GRAVITINO_CONF_DIR}/gravitino-env.sh"
fi

if [[ -z "${GRAVITINO_VERSION}" ]]; then
echo -e "GRAVITINO_VERSION is not set, you may need to:\n" \
"1. Ensure that a compiled version of Gravitino is available at " \
"\${GRAVITINO_HOME}/distribution/package. You may need to compile it first, " \
"if you are installing the software from source code.\n" \
"2. Execute gravitino.sh in the \${GRAVITINO_HOME}/distribution/package/bin directory."
exit 1
fi

GRAVITINO_CLASSPATH+=":${GRAVITINO_CONF_DIR}"

JVM_VERSION=8
Expand Down
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,10 +176,10 @@ To use Gravitino locally on macOS or Linux, follow these similar steps:

Or, you can install Gravitino from scratch, follow [how-to-build](./how-to-build.md) and [how-to-install](./how-to-install.md).

3. Start Gravitino using the gravitino.sh script:
3. Start Gravitino using the gravitino.sh script in the binary release package or Docker image:

```shell
<path-to-gravitino>/bin/gravitino.sh start
${GRAVITINO_HOME}/bin/gravitino.sh start
```

## Installing Apache Hive on AWS or Google Cloud Platform
Expand Down

0 comments on commit 39ad18a

Please sign in to comment.