Move the code over from private repository (#3)
This commit is contained in:
92
setup.sh
Executable file
92
setup.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Function to check if a command exists
|
||||
command_exists() {
|
||||
command -v "$1" &> /dev/null
|
||||
}
|
||||
|
||||
# Ensure required commands are available
|
||||
for cmd in poetry pre-commit brew python; do
|
||||
if ! command_exists "$cmd"; then
|
||||
echo "Error: $cmd is not installed." >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Function to remove Poetry environment
|
||||
remove_poetry_env() {
|
||||
local env_path
|
||||
env_path=$(poetry env info --path)
|
||||
if [ -d "$env_path" ]; then
|
||||
rm -rf "$env_path"
|
||||
echo "Removed the poetry environment at $env_path."
|
||||
else
|
||||
echo "No poetry environment found."
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to install dependencies
|
||||
install_dependencies() {
|
||||
poetry install
|
||||
pre-commit install
|
||||
}
|
||||
|
||||
activate_poetry_env() {
|
||||
source "$(poetry env info --path)/bin/activate"
|
||||
}
|
||||
|
||||
# Function to setup PostgreSQL
|
||||
setup_postgresql() {
|
||||
echo "Installing postgresql using brew"
|
||||
brew install postgresql@14
|
||||
brew services start postgresql@14
|
||||
|
||||
if psql skyvern-open-source -U skyvern-open-source -c '\q'; then
|
||||
echo "Connection successful. Database and user exist."
|
||||
else
|
||||
createuser skyvern-open-source
|
||||
createdb skyvern-open-source -O skyvern-open-source
|
||||
echo "Database and user created successfully."
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to run Alembic upgrade
|
||||
run_alembic_upgrade() {
|
||||
echo "Running Alembic upgrade..."
|
||||
alembic upgrade head
|
||||
}
|
||||
|
||||
# Function to create organization and API token
|
||||
create_organization() {
|
||||
echo "Creating organization and API token..."
|
||||
local org_output api_token
|
||||
org_output=$(python scripts/create_organization.py Skyvern-Open-Source)
|
||||
api_token=$(echo "$org_output" | awk '/token=/{gsub(/.*token='\''|'\''.*/, ""); print}')
|
||||
|
||||
# Ensure .streamlit directory exists
|
||||
mkdir -p .streamlit
|
||||
|
||||
# Check if secrets.toml exists and back it up
|
||||
if [ -f ".streamlit/secrets.toml" ]; then
|
||||
mv .streamlit/secrets.toml .streamlit/secrets.backup.toml
|
||||
echo "Existing secrets.toml file backed up as secrets.backup.toml"
|
||||
fi
|
||||
|
||||
# Update the secrets-open-source.toml file
|
||||
echo -e "[skyvern]\nconfigs = [\n {\"env\" = \"local\", \"host\" = \"http://0.0.0.0:8000/api/v1\", \"orgs\" = [{name=\"Skyvern-Open-Source\", cred=\"$api_token\"}]}\n]" > .streamlit/secrets.toml
|
||||
echo ".streamlit/secrets.toml file updated with organization details."
|
||||
}
|
||||
|
||||
# Main function
|
||||
main() {
|
||||
remove_poetry_env
|
||||
install_dependencies
|
||||
setup_postgresql
|
||||
activate_poetry_env
|
||||
run_alembic_upgrade
|
||||
create_organization
|
||||
echo "Setup completed successfully."
|
||||
}
|
||||
|
||||
# Execute main function
|
||||
main
|
||||
Reference in New Issue
Block a user