Skip to content

Commit e8a5272

Browse files
committed
fix(dev_env_setup): use relative packages everywhere
1 parent 4153e4d commit e8a5272

File tree

1 file changed

+56
-126
lines changed

1 file changed

+56
-126
lines changed

dev_env_setup.sh

Lines changed: 56 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -12,145 +12,75 @@ cd "$SCRIPT_DIR"
1212
echo "Running 'yarn install' in the root directory..."
1313
yarn install
1414

15-
# Step 2: Run yarn build in the root directory
16-
echo "Running 'yarn build' in the root directory..."
17-
yarn build
18-
19-
# Step 3: Run yarn build in packages/cubejs-playground
20-
echo "Running 'yarn build' in packages/cubejs-playground..."
21-
cd packages/cubejs-playground
22-
yarn build
23-
cd ../..
24-
25-
# Step 4: Run yarn tsc for the first time
26-
echo "Running 'yarn tsc --build'..."
27-
yarn tsc
28-
29-
# Step 5: List available drivers and ask user to select
30-
echo "Listing available drivers..."
31-
available_drivers=$(ls packages | grep "driver")
32-
33-
PS3='Please select the drivers you want to use (enter number, then press Enter): '
15+
# Step 2: Build all packages in packages directory
16+
echo "Building all packages..."
17+
for package in packages/*; do
18+
if [ -d "$package" ]; then
19+
echo "Building $package..."
20+
cd "$package"
21+
if ! yarn build; then
22+
echo "yarn build failed for $package, trying yarn tsc..."
23+
yarn tsc || true # Continue even if tsc fails
24+
fi
25+
cd "$SCRIPT_DIR"
26+
fi
27+
done
3428

35-
# Display drivers without the prefix "cubejs-"
36-
select selected_driver in $(echo "$available_drivers" | sed 's/cubejs-//') "Finish selection"
37-
do
38-
if [[ "$selected_driver" == "Finish selection" ]]; then
39-
break
29+
# Step 3: Link all packages
30+
echo "Linking all packages..."
31+
for package in packages/*; do
32+
if [ -d "$package" ]; then
33+
echo "Linking $package..."
34+
cd "$package"
35+
yarn link
36+
cd "$SCRIPT_DIR"
4037
fi
41-
selected_drivers+=("$selected_driver")
42-
echo "Selected drivers: ${selected_drivers[*]}"
4338
done
4439

45-
# Step 6-7: Run yarn link and yarn install in packages/cubejs-<pkg>
46-
for driver in "${selected_drivers[@]}"
47-
do
48-
echo "Linking and installing dependencies for $driver..."
49-
cd "packages/cubejs-$driver"
50-
yarn link
51-
yarn install
52-
cd ../..
40+
# Step 4: Ask for application name and database type
41+
read -p "Enter the application name: " APP_NAME
42+
43+
# Get available database types from packages directory
44+
db_types=()
45+
for package in packages/cubejs-*-driver; do
46+
if [ -d "$package" ]; then
47+
db_name=$(basename "$package" | sed 's/cubejs-\(.*\)-driver/\1/')
48+
db_types+=("$db_name")
49+
fi
5350
done
5451

55-
# Step 8: Run yarn link @cubejs-backend/<pkg> in packages/cubejs-server-core
56-
cd packages/cubejs-server-core
57-
for driver in "${selected_drivers[@]}"
52+
echo "Available database types:"
53+
PS3='Please select the database type: '
54+
select DB_TYPE in "${db_types[@]}"
5855
do
59-
echo "Linking @cubejs-backend/$driver in packages/cubejs-server-core..."
60-
yarn link @cubejs-backend/"$driver"
56+
if [[ -n "$DB_TYPE" ]]; then
57+
break
58+
else
59+
echo "Invalid selection. Please try again."
60+
fi
6161
done
62-
cd ../..
63-
64-
# Step 9: Run yarn link in packages/cubejs-server-core
65-
echo "Running 'yarn link' in packages/cubejs-server-core..."
66-
cd packages/cubejs-server-core
67-
yarn link
68-
cd ../..
6962

7063
# Change back to the original directory
7164
cd "$CURRENT_DIR"
7265

73-
# Step 10: Ask user if they want to create a new test project
74-
read -p "Do you want to create a new test project? (yes/no, default: yes): " CREATE_PROJECT
75-
CREATE_PROJECT=${CREATE_PROJECT:-yes}
76-
77-
if [[ "$CREATE_PROJECT" == "yes" || "$CREATE_PROJECT" == "y" ]]; then
78-
read -p "Enter the application name: " APP_NAME
79-
80-
# List of available database types (hardcoded for now as of https://cube.dev/docs/reference/cli)
81-
db_types=("postgres" "mysql" "athena" "mongodb" "bigquery" "redshift" "mssql" "clickhouse" "snowflake" "presto" "druid")
82-
83-
echo "Listing available database types..."
84-
PS3='Please select the database type: '
85-
select DB_TYPE in "${db_types[@]}"
86-
do
87-
if [[ -n "$DB_TYPE" ]]; then
88-
break
89-
else
90-
echo "Invalid selection. Please try again."
91-
fi
92-
done
93-
94-
# Create new project using cubejs-cli
95-
echo "Creating new project with name $APP_NAME and database type $DB_TYPE..."
96-
npx cubejs-cli create "$APP_NAME" -d "$DB_TYPE"
97-
98-
# Step 11: Run yarn link @cubejs-backend/server-core in your project directory
99-
echo "Linking @cubejs-backend/server-core in the project directory..."
100-
cd "$APP_NAME"
101-
yarn link @cubejs-backend/server-core
102-
cd ../
103-
else
104-
echo "Ok. No problem!"
105-
echo "You need to run 'yarn link @cubejs-backend/server-core' in your project directory manually"
106-
fi
107-
108-
# Step 11: Ask user if they plan to make changes to Rust code
109-
read -p "Do you plan to make changes to Rust code? (yes/no, default: no): " RUST_CHANGES
110-
RUST_CHANGES=${RUST_CHANGES:-no}
66+
# Create new project using cubejs-cli
67+
echo "Creating new project with name $APP_NAME and database type $DB_TYPE..."
68+
node "$SCRIPT_DIR/packages/cubejs-cli/dist/src/index.js" create "$APP_NAME" -d "$DB_TYPE"
11169

112-
if [[ "$RUST_CHANGES" == "yes" || "$RUST_CHANGES" == "y" ]]; then
113-
# Run yarn link:dev in the script directory
114-
cd "$SCRIPT_DIR"
115-
echo "Running 'yarn link:dev' in the root directory..."
116-
yarn link:dev
70+
# Step 5: Link all packages in the new project
71+
echo "Linking packages in the new project..."
72+
cd "$APP_NAME"
11773

118-
if [[ "$CREATE_PROJECT" == "yes" || "$CREATE_PROJECT" == "y" ]]; then
119-
dev_pkgs=("@cubejs-backend/shared"
120-
"@cubejs-backend/cloud"
121-
"@cubejs-backend/native"
122-
"@cubejs-backend/server"
123-
"@cubejs-backend/server-core"
124-
"@cubejs-backend/api-gateway"
125-
"@cubejs-backend/schema-compiler"
126-
"@cubejs-backend/query-orchestrator"
127-
"@cubejs-backend/athena-driver"
128-
"@cubejs-backend/duckdb-driver"
129-
"@cubejs-backend/bigquery-driver"
130-
"@cubejs-backend/postgres-driver"
131-
"@cubejs-backend/databricks-jdbc-driver"
132-
"@cubejs-backend/mssql-driver"
133-
"@cubejs-backend/clickhouse-driver"
134-
"@cubejs-backend/snowflake-driver"
135-
"@cubejs-backend/cubestore-driver"
136-
"@cubejs-backend/templates"
137-
"@cubejs-client/core"
138-
"@cubejs-client/ws-transport"
139-
"@cubejs-client/playground"
140-
)
141-
142-
cd "$CURRENT_DIR/$APP_NAME"
143-
echo "Linking dev packages in $APP_NAME project..."
144-
145-
for pkg in "${dev_pkgs[@]}"
146-
do
147-
echo "Linking $pkg..."
148-
yarn link "$pkg"
149-
done
150-
else
151-
echo "Don't forget to link packages that you plan to modify inside your project!"
74+
for package in "$SCRIPT_DIR"/packages/*; do
75+
if [ -d "$package" ]; then
76+
package_name=$(node -p "require('$package/package.json').name")
77+
echo "Linking $package_name..."
78+
yarn link "$package_name"
15279
fi
153-
fi
80+
done
15481

155-
echo "All steps completed successfully!"
156-
echo "Run 'yarn dev' to start your testing project and verify changes."
82+
echo "Project setup completed!"
83+
echo "You can now run 'yarn dev' in the $APP_NAME directory to start your project."
84+
85+
# Change back to the original directory
86+
cd "$CURRENT_DIR"

0 commit comments

Comments
 (0)