1
+ #! /bin/bash
2
+
1
3
echo " Passing arguments: $* "
2
- npx concurrently --raw \
3
- " pnpm --dir packages/core dev -- $* " \
4
- " pnpm --dir client dev -- $* " \
5
- " pnpm --dir packages/client-telegram dev -- $* " \
6
- " pnpm --dir packages/client-discord dev -- $* " \
7
- " pnpm --dir packages/client-twitter dev -- $* " \
8
- " pnpm --dir packages/client-direct dev -- $* " \
9
- " pnpm --dir packages/plugin-bootstrap dev -- $* " \
10
- " pnpm --dir packages/plugin-node dev -- $* " \
11
- " pnpm --dir packages/adapter-sqlite dev -- $* " \
12
- " pnpm --dir packages/adapter-postgres dev -- $* " \
13
- " pnpm --dir packages/plugin-buttplug dev -- $* " \
14
- " node -e \" setTimeout(() => process.exit(0), 5000)\" && pnpm --dir agent dev -- $* "
4
+
5
+ # Base packages directory
6
+ PACKAGES_DIR=" ./packages"
7
+
8
+ # Check if the packages directory exists
9
+ if [ ! -d " $PACKAGES_DIR " ]; then
10
+ echo " Error: Directory $PACKAGES_DIR does not exist."
11
+ exit 1
12
+ fi
13
+
14
+ # Function to check if an item is in an array
15
+ is_in_array () {
16
+ local item=" $1 "
17
+ shift
18
+ for element; do
19
+ if [[ " $element " == " $item " ]]; then
20
+ return 0
21
+ fi
22
+ done
23
+ return 1
24
+ }
25
+
26
+ # Initialize an array to hold package-specific commands
27
+ COMMANDS=()
28
+
29
+ # Ensure "core" package runs first
30
+ if [ -d " $PACKAGES_DIR /core" ]; then
31
+ COMMANDS+=(" pnpm --dir $PACKAGES_DIR /core dev -- $* " )
32
+ else
33
+ echo " Warning: 'core' package not found in $PACKAGES_DIR ."
34
+ fi
35
+
36
+ # List of folders to exclude
37
+ EXCLUDED_FOLDERS=(" create-eliza-app" " debug_audio" " content_cache" )
38
+
39
+ # Iterate over all other subdirectories in the packages folder
40
+ for PACKAGE in " $PACKAGES_DIR " /* ; do
41
+ PACKAGE_NAME=$( basename " $PACKAGE " )
42
+
43
+ # Skip excluded folders and "core"
44
+ if [ -d " $PACKAGE " ] && ! is_in_array " $PACKAGE_NAME " " ${EXCLUDED_FOLDERS[@]} " && [ " $PACKAGE_NAME " != " core" ]; then
45
+ COMMANDS+=(" pnpm --dir $PACKAGE dev -- $* " )
46
+ fi
47
+ done
48
+
49
+ # Add specific commands for other directories or cases
50
+ if [ -d " ./client" ]; then
51
+ COMMANDS+=(" pnpm --dir client dev -- $* " )
52
+ else
53
+ echo " Warning: 'client' directory not found."
54
+ fi
55
+
56
+ if [ -d " ./agent" ]; then
57
+ COMMANDS+=(" node -e \" setTimeout(() => process.exit(0), 5000)\" && pnpm --dir agent dev -- $* " )
58
+ else
59
+ echo " Warning: 'agent' directory not found."
60
+ fi
61
+
62
+ # Run build command first
63
+ if ! pnpm dev:build; then
64
+ echo " Build failed. Exiting."
65
+ exit 1
66
+ fi
67
+
68
+ # Run all commands concurrently
69
+ if [ ${# COMMANDS[@]} -gt 0 ]; then
70
+ npx concurrently --raw " ${COMMANDS[@]} "
71
+ else
72
+ echo " No valid packages to run."
73
+ fi
0 commit comments