Signed-off-by: Aaron Pham <contact@aarnphm.xyz>
This commit is contained in:
parent
a5726bd2bf
commit
24b66e08dc
12
README.md
12
README.md
@ -19,6 +19,9 @@ https://github.com/user-attachments/assets/86140bfd-08b4-483d-a887-1b701d9e37dd
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
For building binary if you wish to build from source, then `cargo` is required. Otherwise `curl` and `jq` will be used to get prebuilt binary from GitHub.
|
||||||
|
|
||||||
|
For prebuilt binary, one must set the following `GITHUB_TOKEN` in given shell (instruction for creating PAT is [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens))
|
||||||
|
|
||||||
<details open>
|
<details open>
|
||||||
|
|
||||||
@ -32,10 +35,9 @@ https://github.com/user-attachments/assets/86140bfd-08b4-483d-a887-1b701d9e37dd
|
|||||||
opts = {
|
opts = {
|
||||||
-- add any opts here
|
-- add any opts here
|
||||||
},
|
},
|
||||||
-- if you want to build from source, then pass source=true (requires cargo).
|
-- if you want to download pre-built binary, then pass source=false. Make sure to follow instruction above.
|
||||||
-- Also note that building from source will block startuptime since
|
-- Also note that downloading prebuilt binary is a lot faster comparing to compiling from source.
|
||||||
-- we are compiling bindings in Rust.
|
build = ":AvanteBuild source=false",
|
||||||
build = ":AvanteBuild",
|
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"stevearc/dressing.nvim",
|
"stevearc/dressing.nvim",
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
@ -117,7 +119,7 @@ add({
|
|||||||
'MunifTanjim/nui.nvim',
|
'MunifTanjim/nui.nvim',
|
||||||
'echasnovski/mini.icons'
|
'echasnovski/mini.icons'
|
||||||
},
|
},
|
||||||
hooks = { post_checkout = function() vim.cmd('AvanteBuild') end }
|
hooks = { post_checkout = function() vim.cmd('AvanteBuild source=false') end }
|
||||||
})
|
})
|
||||||
--- optional
|
--- optional
|
||||||
add({ source = 'zbirenbaum/copilot.lua' })
|
add({ source = 'zbirenbaum/copilot.lua' })
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
function avante#build(...) abort
|
function avante#build(...) abort
|
||||||
let l:source = get(a:, 1, v:false)
|
let l:source = get(a:, 1, v:true)
|
||||||
return join(luaeval("require('avante').build(_A)", l:source), "\n")
|
return join(luaeval("require('avante').build(_A)", l:source), "\n")
|
||||||
endfunction
|
endfunction
|
||||||
|
28
build.sh
28
build.sh
@ -2,6 +2,18 @@
|
|||||||
|
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
||||||
|
# Check if jq is installed
|
||||||
|
if ! command -v jq &>/dev/null; then
|
||||||
|
echo "Error: jq is not installed. Please install jq."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if GITHUB_TOKEN is set
|
||||||
|
if [ -z "$GITHUB_TOKEN" ]; then
|
||||||
|
echo "Error: GITHUB_TOKEN is not set. Please provide a valid GitHub token."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
REPO_OWNER="yetone"
|
REPO_OWNER="yetone"
|
||||||
REPO_NAME="avante.nvim"
|
REPO_NAME="avante.nvim"
|
||||||
|
|
||||||
@ -11,9 +23,10 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
|||||||
TARGET_DIR="${SCRIPT_DIR}/build"
|
TARGET_DIR="${SCRIPT_DIR}/build"
|
||||||
|
|
||||||
# Get the latest successful run ID of the workflow
|
# Get the latest successful run ID of the workflow
|
||||||
RUN_ID=$(curl -s -H "Accept: application/vnd.github+json" \
|
RUN_ID=$(curl -s \
|
||||||
"https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/workflows/build.yaml/runs?status=success&branch=main" |
|
-H "Accept: application/vnd.github+json" \
|
||||||
\grep -oP '(?<="id": )\d+' | head -1)
|
-H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||||
|
"https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/workflows/build.yaml/runs?status=success&branch=main&per_page=1" | jq ".workflow_runs[0].id")
|
||||||
|
|
||||||
# Get the artifact download URL based on the platform and Lua version
|
# Get the artifact download URL based on the platform and Lua version
|
||||||
case "$(uname -s)" in
|
case "$(uname -s)" in
|
||||||
@ -39,9 +52,12 @@ LUA_VERSION="${LUA_VERSION:-luajit}"
|
|||||||
ARTIFACT_NAME_PATTERN="avante_lib-$PLATFORM-latest-$LUA_VERSION"
|
ARTIFACT_NAME_PATTERN="avante_lib-$PLATFORM-latest-$LUA_VERSION"
|
||||||
|
|
||||||
# Get the artifact download URL
|
# Get the artifact download URL
|
||||||
ARTIFACT_URL=$(curl -s -H "Accept: application/vnd.github+json" \
|
ARTIFACT_URL=$(curl -s \
|
||||||
|
-H "Accept: application/vnd.github+json" \
|
||||||
|
-H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||||
"https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/runs/$RUN_ID/artifacts" |
|
"https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/actions/runs/$RUN_ID/artifacts" |
|
||||||
\grep -oP "(?<=\"archive_download_url\": \")https://[^\"]+/$ARTIFACT_NAME_PATTERN[^\"]+")
|
jq -r '.artifacts[] | select(.name | test("'"$ARTIFACT_NAME_PATTERN"'")) | .archive_download_url')
|
||||||
|
|
||||||
mkdir -p "$TARGET_DIR"
|
mkdir -p "$TARGET_DIR"
|
||||||
curl -L "$ARTIFACT_URL" | tar -xz -C "$TARGET_DIR" --strip-components=1
|
|
||||||
|
curl -L -H "Authorization: Bearer $GITHUB_TOKEN" "$ARTIFACT_URL" | tar -x -C "$TARGET_DIR"
|
||||||
|
@ -50,7 +50,7 @@ H.commands = function()
|
|||||||
local key, value = arg:match("(%w+)=(%w+)")
|
local key, value = arg:match("(%w+)=(%w+)")
|
||||||
if key and value then args[key] = value == "true" end
|
if key and value then args[key] = value == "true" end
|
||||||
end
|
end
|
||||||
if args.source == nil then args.source = Config.debug and true or false end
|
if args.source == nil then args.source = true end
|
||||||
|
|
||||||
require("avante.api").build(args)
|
require("avante.api").build(args)
|
||||||
end, {
|
end, {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user