mirror of
https://github.com/placeholder-soft/asdf-sui.git
synced 2026-01-12 15:14:14 +08:00
feat: add sui script
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
tmp*
|
||||||
11
README.md
11
README.md
@@ -1,6 +1,6 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
# asdf-sui [](https://github.com/caoer/asdf-sui/actions/workflows/build.yml) [](https://github.com/caoer/asdf-sui/actions/workflows/lint.yml)
|
# asdf-sui [](https://github.com/placeholder-soft/asdf-sui/actions/workflows/build.yml) [](https://github.com/placeholder-soft/asdf-sui/actions/workflows/lint.yml)
|
||||||
|
|
||||||
[sui](https://github.com/placeholder-soft/asdf-sui) plugin for the [asdf version manager](https://asdf-vm.com).
|
[sui](https://github.com/placeholder-soft/asdf-sui) plugin for the [asdf version manager](https://asdf-vm.com).
|
||||||
|
|
||||||
@@ -15,10 +15,7 @@
|
|||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
|
||||||
**TODO: adapt this section**
|
|
||||||
|
|
||||||
- `bash`, `curl`, `tar`, and [POSIX utilities](https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html).
|
- `bash`, `curl`, `tar`, and [POSIX utilities](https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html).
|
||||||
- `SOME_ENV_VAR`: set this environment variable in your shell config to load the correct version of tool x.
|
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
|
|
||||||
@@ -27,7 +24,7 @@ Plugin:
|
|||||||
```shell
|
```shell
|
||||||
asdf plugin add sui
|
asdf plugin add sui
|
||||||
# or
|
# or
|
||||||
asdf plugin add sui https://github.com/caoer/asdf-sui.git
|
asdf plugin add sui https://github.com/placeholder-soft/asdf-sui.git
|
||||||
```
|
```
|
||||||
|
|
||||||
sui:
|
sui:
|
||||||
@@ -53,8 +50,8 @@ install & manage versions.
|
|||||||
|
|
||||||
Contributions of any kind welcome! See the [contributing guide](contributing.md).
|
Contributions of any kind welcome! See the [contributing guide](contributing.md).
|
||||||
|
|
||||||
[Thanks goes to these contributors](https://github.com/caoer/asdf-sui/graphs/contributors)!
|
[Thanks goes to these contributors](https://github.com/placeholder-soft/asdf-sui/graphs/contributors)!
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
See [LICENSE](LICENSE) © [Zitao Xiong](https://github.com/caoer/)
|
See [LICENSE](LICENSE) © [Zitao Xiong](https://github.com/placeholder-soft/)
|
||||||
|
|||||||
30
bin/download
30
bin/download
@@ -10,8 +10,7 @@ source "${plugin_dir}/lib/utils.bash"
|
|||||||
|
|
||||||
mkdir -p "$ASDF_DOWNLOAD_PATH"
|
mkdir -p "$ASDF_DOWNLOAD_PATH"
|
||||||
|
|
||||||
# TODO: Adapt this to proper extension and adapt extracting strategy.
|
release_file="$ASDF_DOWNLOAD_PATH/$TOOL_NAME-$ASDF_INSTALL_VERSION.tgz"
|
||||||
release_file="$ASDF_DOWNLOAD_PATH/$TOOL_NAME-$ASDF_INSTALL_VERSION.tar.gz"
|
|
||||||
|
|
||||||
# Download tar.gz file to the download directory
|
# Download tar.gz file to the download directory
|
||||||
download_release "$ASDF_INSTALL_VERSION" "$release_file"
|
download_release "$ASDF_INSTALL_VERSION" "$release_file"
|
||||||
@@ -19,5 +18,32 @@ download_release "$ASDF_INSTALL_VERSION" "$release_file"
|
|||||||
# Extract contents of tar.gz file into the download directory
|
# Extract contents of tar.gz file into the download directory
|
||||||
tar -xzf "$release_file" -C "$ASDF_DOWNLOAD_PATH" --strip-components=1 || fail "Could not extract $release_file"
|
tar -xzf "$release_file" -C "$ASDF_DOWNLOAD_PATH" --strip-components=1 || fail "Could not extract $release_file"
|
||||||
|
|
||||||
|
os="$(os_name)"
|
||||||
|
arch="$(arch_name)"
|
||||||
|
|
||||||
|
try_mv() {
|
||||||
|
if [ -f "$1" ]; then
|
||||||
|
mv "$1" "$2"
|
||||||
|
else
|
||||||
|
# echo "File $1 does not exist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
extract_path="$ASDF_DOWNLOAD_PATH"
|
||||||
|
mkdir -p $extract_path
|
||||||
|
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-bridge-$os-$arch $extract_path/sui-bridge
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-data-ingestion-$os-$arch $extract_path/sui-data-ingestion
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-faucet-$os-$arch $extract_path/sui-faucet
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-$os-$arch $extract_path/sui
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-node-$os-$arch $extract_path/sui-node
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-test-validator-$os-$arch $extract_path/sui-test-validator
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-tool-$os-$arch $extract_path/sui-tool
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/target/release/sui-indexer-$os-$arch $extract_path/sui-indexer
|
||||||
|
try_mv $ASDF_DOWNLOAD_PATH/external-crates/move/target/release/move-analyzer-$os-$arch $extract_path/move-analyzer
|
||||||
|
|
||||||
# Remove the tar.gz file since we don't need to keep it
|
# Remove the tar.gz file since we don't need to keep it
|
||||||
rm "$release_file"
|
rm "$release_file"
|
||||||
|
|
||||||
|
rm -rf "$ASDF_DOWNLOAD_PATH/external-crates"
|
||||||
|
rm -rf "$ASDF_DOWNLOAD_PATH/target"
|
||||||
|
|||||||
@@ -5,8 +5,7 @@ Testing Locally:
|
|||||||
```shell
|
```shell
|
||||||
asdf plugin test <plugin-name> <plugin-url> [--asdf-tool-version <version>] [--asdf-plugin-gitref <git-ref>] [test-command*]
|
asdf plugin test <plugin-name> <plugin-url> [--asdf-tool-version <version>] [--asdf-plugin-gitref <git-ref>] [test-command*]
|
||||||
|
|
||||||
# TODO: adapt this
|
asdf plugin test sui https://github.com/placeholdersoft/asdf-sui.git "sui --version"
|
||||||
asdf plugin test sui https://github.com/caoer/asdf-sui.git "sui --version"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Tests are automatically run in GitHub Actions on push and PR.
|
Tests are automatically run in GitHub Actions on push and PR.
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# TODO: Ensure this is the correct GitHub homepage where releases can be downloaded for sui.
|
GH_REPO="https://github.com/MystenLabs/sui"
|
||||||
GH_REPO="https://github.com/placeholder-soft/asdf-sui"
|
|
||||||
TOOL_NAME="sui"
|
TOOL_NAME="sui"
|
||||||
TOOL_TEST="sui --version"
|
TOOL_TEST="sui --version"
|
||||||
|
|
||||||
@@ -31,18 +30,35 @@ list_github_tags() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
list_all_versions() {
|
list_all_versions() {
|
||||||
# TODO: Adapt this. By default we simply list the tag names from GitHub releases.
|
|
||||||
# Change this function if sui has other means of determining installable versions.
|
|
||||||
list_github_tags
|
list_github_tags
|
||||||
}
|
}
|
||||||
|
|
||||||
|
os_name() {
|
||||||
|
case "$(uname -s)" in
|
||||||
|
Darwin) echo "macos" ;;
|
||||||
|
Linux) echo "ubuntu" ;;
|
||||||
|
*) echo "windows" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# arm64, x86_64
|
||||||
|
arch_name() {
|
||||||
|
case "$(uname -m)" in
|
||||||
|
arm64) echo "arm64" ;;
|
||||||
|
x86_64) echo "x86_64" ;;
|
||||||
|
*) echo "unknown" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
download_release() {
|
download_release() {
|
||||||
local version filename url
|
local version filename url
|
||||||
version="$1"
|
version="$1"
|
||||||
filename="$2"
|
filename="$2"
|
||||||
|
local os_name arch_name
|
||||||
|
os_name="$(os_name)"
|
||||||
|
arch_name="$(arch_name)"
|
||||||
|
|
||||||
# TODO: Adapt the release URL convention for sui
|
url="$GH_REPO/releases/download/${version}/sui-${version}-${os_name}-${arch_name}.tgz"
|
||||||
url="$GH_REPO/archive/v${version}.tar.gz"
|
|
||||||
|
|
||||||
echo "* Downloading $TOOL_NAME release $version..."
|
echo "* Downloading $TOOL_NAME release $version..."
|
||||||
curl "${curl_opts[@]}" -o "$filename" -C - "$url" || fail "Could not download $url"
|
curl "${curl_opts[@]}" -o "$filename" -C - "$url" || fail "Could not download $url"
|
||||||
@@ -61,7 +77,6 @@ install_version() {
|
|||||||
mkdir -p "$install_path"
|
mkdir -p "$install_path"
|
||||||
cp -r "$ASDF_DOWNLOAD_PATH"/* "$install_path"
|
cp -r "$ASDF_DOWNLOAD_PATH"/* "$install_path"
|
||||||
|
|
||||||
# TODO: Assert sui executable exists.
|
|
||||||
local tool_cmd
|
local tool_cmd
|
||||||
tool_cmd="$(echo "$TOOL_TEST" | cut -d' ' -f1)"
|
tool_cmd="$(echo "$TOOL_TEST" | cut -d' ' -f1)"
|
||||||
test -x "$install_path/$tool_cmd" || fail "Expected $install_path/$tool_cmd to be executable."
|
test -x "$install_path/$tool_cmd" || fail "Expected $install_path/$tool_cmd to be executable."
|
||||||
|
|||||||
Reference in New Issue
Block a user