tengqm commented on code in PR #5627:
URL: https://github.com/apache/gravitino/pull/5627#discussion_r1851414479


##########
clients/gvfs-fuse/check_rust_env.sh:
##########
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+set -e
+
+#!/bin/bash
+
+if ! command -v cargo &> /dev/null; then
+    echo "Rust is not installed. Installing Rust..."
+
+    if command -v curl &> /dev/null; then
+        curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+    elif command -v wget &> /dev/null; then
+        wget -qO- https://sh.rustup.rs | sh -s -- -y
+    else
+        echo "Error: Neither curl nor wget is available. Please install one of 
them to proceed."
+        exit 1
+    fi
+
+    export PATH="$HOME/.cargo/bin:$PATH"

Review Comment:
   What if I run this script several times?



##########
clients/gvfs-fuse/check_rust_env.sh:
##########
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+set -e
+
+#!/bin/bash
+
+if ! command -v cargo &> /dev/null; then
+    echo "Rust is not installed. Installing Rust..."
+
+    if command -v curl &> /dev/null; then
+        curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+    elif command -v wget &> /dev/null; then
+        wget -qO- https://sh.rustup.rs | sh -s -- -y
+    else
+        echo "Error: Neither curl nor wget is available. Please install one of 
them to proceed."
+        exit 1
+    fi
+
+    export PATH="$HOME/.cargo/bin:$PATH"
+    echo "Rust has been installed successfully."
+else
+    echo "Rust is already installed: $(cargo --version)"
+fi
+
+if command -v cargo &> /dev/null; then

Review Comment:
   right ... this logic doesn't flow well.



##########
clients/gvfs-fuse/build.gradle.kts:
##########
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.gradle.api.tasks.Exec
+
+val envFile = System.getenv("HOME") + "/.cargo/env"
+
+val checkRustEnvironment by tasks.registering(Exec::class) {
+  description = "Check if Rust environment is properly set up using an 
external script"
+  group = "verification"
+  commandLine("bash", "$projectDir/check_rust_env.sh")
+  isIgnoreExitValue = false
+}
+
+val compileRust by tasks.registering(Exec::class) {
+  dependsOn(checkRustEnvironment)
+  description = "Compile the Rust project"
+  workingDir = file("$projectDir")
+  commandLine("bash", "-c", ". $envFile && cargo build --release")
+}
+
+val testRust by tasks.registering(Exec::class) {
+  dependsOn(checkRustEnvironment)
+  description = "Run tests in the Rust project"
+  group = "verification"
+  workingDir = file("$projectDir")
+  commandLine("bash", "-c", ". $envFile && cargo test --release")
+
+  standardOutput = System.out
+  errorOutput = System.err
+}
+
+tasks.named("build") {
+  dependsOn(compileRust)
+}
+tasks.named("test") {
+  dependsOn("testRust")

Review Comment:
   I'm not familiar with this 'tks' thing, but why we have quotes on line 53, 
but not on 50?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@gravitino.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to