devicely 2.1.7 → 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/lib/scriptLoader.js +2 -2
  2. package/lib/server.js +51 -17
  3. package/package.json +1 -1
  4. package/scripts/shell/android_device_control.enc +1 -0
  5. package/scripts/shell/connect_android_usb_multi_final.enc +1 -0
  6. package/scripts/shell/connect_android_wireless.enc +1 -0
  7. package/scripts/shell/connect_android_wireless_multi_final.enc +1 -0
  8. package/scripts/shell/connect_ios_usb_multi_final.enc +1 -0
  9. package/scripts/shell/connect_ios_wireless_multi_final.enc +1 -0
  10. package/scripts/shell/ios_device_control.enc +1 -0
  11. package/scripts/shell/android_device_control.sh +0 -848
  12. package/scripts/shell/connect_android_usb_multi_final.sh +0 -289
  13. package/scripts/shell/connect_android_wireless.sh +0 -58
  14. package/scripts/shell/connect_android_wireless_multi_final.sh +0 -476
  15. package/scripts/shell/connect_ios_usb_multi_final.sh +0 -4225
  16. package/scripts/shell/connect_ios_wireless_multi_final.sh +0 -4167
  17. package/scripts/shell/create_production_scripts.sh +0 -38
  18. package/scripts/shell/install_uiautomator2.sh +0 -93
  19. package/scripts/shell/ios_device_control.sh +0 -220
  20. package/scripts/shell/organize_project.sh +0 -59
  21. package/scripts/shell/pre-publish-check.sh +0 -238
  22. package/scripts/shell/publish-to-npm.sh +0 -366
  23. package/scripts/shell/publish.sh +0 -100
  24. package/scripts/shell/setup.sh +0 -121
  25. package/scripts/shell/start.sh +0 -59
  26. package/scripts/shell/sync-to-npm-package-final.sh +0 -60
  27. package/scripts/shell/test-local-package.sh +0 -95
  28. package/scripts/shell/verify-shell-protection.sh +0 -73
@@ -1,366 +0,0 @@
1
- #!/bin/bash
2
-
3
- ###############################################################################
4
- # NPM Publish Script
5
- # Handles version bumping and publishing to NPM with full build pipeline
6
- ###############################################################################
7
-
8
- set -e
9
-
10
- # Colors
11
- RED='\033[0;31m'
12
- GREEN='\033[0;32m'
13
- YELLOW='\033[1;33m'
14
- BLUE='\033[0;34m'
15
- CYAN='\033[0;36m'
16
- MAGENTA='\033[0;35m'
17
- NC='\033[0m' # No Color
18
-
19
- # Directories
20
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
21
- NPM_PKG_DIR="$SCRIPT_DIR/npm-package"
22
- DIST_DIR="$NPM_PKG_DIR/dist"
23
-
24
- # Banner
25
- echo -e "${CYAN}"
26
- cat << "EOF"
27
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
28
- ____ _ __
29
- / __ \___ __ __(_)____ / /_ __
30
- / / / / _ \ | | / / / ___/ / / / / /
31
- / /_/ / __/ | |/ / / / / / /_/ /
32
- \____/\___/ |___/_/_/ /_/\__, /
33
- /____/
34
-
35
- NPM PUBLISH AUTOMATION SCRIPT
36
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
37
- EOF
38
- echo -e "${NC}"
39
-
40
- # Function to show usage
41
- show_usage() {
42
- echo -e "${YELLOW}Usage:${NC}"
43
- echo " $0 [patch|minor|major] [--dry-run] [--skip-tests]"
44
- echo ""
45
- echo -e "${YELLOW}Version Types:${NC}"
46
- echo " patch - Bug fixes (1.0.0 -> 1.0.1)"
47
- echo " minor - New features (1.0.0 -> 1.1.0)"
48
- echo " major - Breaking changes (1.0.0 -> 2.0.0)"
49
- echo ""
50
- echo -e "${YELLOW}Options:${NC}"
51
- echo " --dry-run - Run without actually publishing"
52
- echo " --skip-tests - Skip test validation"
53
- echo ""
54
- echo -e "${YELLOW}Examples:${NC}"
55
- echo " $0 patch # Publish patch version"
56
- echo " $0 minor # Publish minor version"
57
- echo " $0 major # Publish major version"
58
- echo " $0 patch --dry-run # Test the process without publishing"
59
- exit 1
60
- }
61
-
62
- # Parse arguments
63
- VERSION_TYPE=""
64
- DRY_RUN=false
65
- SKIP_TESTS=false
66
-
67
- while [[ $# -gt 0 ]]; do
68
- case $1 in
69
- patch|minor|major)
70
- VERSION_TYPE="$1"
71
- shift
72
- ;;
73
- --dry-run)
74
- DRY_RUN=true
75
- shift
76
- ;;
77
- --skip-tests)
78
- SKIP_TESTS=true
79
- shift
80
- ;;
81
- -h|--help)
82
- show_usage
83
- ;;
84
- *)
85
- echo -e "${RED}❌ Unknown argument: $1${NC}"
86
- show_usage
87
- ;;
88
- esac
89
- done
90
-
91
- # Validate version type
92
- if [[ -z "$VERSION_TYPE" ]]; then
93
- echo -e "${RED}❌ Error: Version type is required${NC}\n"
94
- show_usage
95
- fi
96
-
97
- # Header
98
- echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
99
- echo -e "${CYAN}📦 Publishing Devicely to NPM${NC}"
100
- echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
101
- echo ""
102
- echo -e "${YELLOW}Version Type:${NC} $VERSION_TYPE"
103
- echo -e "${YELLOW}Dry Run:${NC} $DRY_RUN"
104
- echo -e "${YELLOW}Skip Tests:${NC} $SKIP_TESTS"
105
- echo ""
106
-
107
- # Function to run step
108
- run_step() {
109
- local step_num=$1
110
- local step_name=$2
111
- local step_desc=$3
112
-
113
- echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
114
- echo -e "${CYAN}Step $step_num: $step_name${NC}"
115
- echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
116
- [[ -n "$step_desc" ]] && echo -e "${YELLOW}$step_desc${NC}"
117
- }
118
-
119
- # Step 1: Pre-flight checks
120
- run_step 1 "Pre-flight Checks" "Verifying environment and dependencies"
121
-
122
- # Check if npm is installed
123
- if ! command -v npm &> /dev/null; then
124
- echo -e "${RED}❌ npm is not installed${NC}"
125
- exit 1
126
- fi
127
- echo -e "${GREEN}✅ npm found: $(npm --version)${NC}"
128
-
129
- # Check if node is installed
130
- if ! command -v node &> /dev/null; then
131
- echo -e "${RED}❌ node is not installed${NC}"
132
- exit 1
133
- fi
134
- echo -e "${GREEN}✅ node found: $(node --version)${NC}"
135
-
136
- # Check if git is clean
137
- if [[ -n $(git status --porcelain 2>/dev/null) ]]; then
138
- echo -e "${YELLOW}⚠️ Warning: You have uncommitted changes${NC}"
139
- read -p "Continue anyway? (y/N): " -n 1 -r
140
- echo
141
- if [[ ! $REPLY =~ ^[Yy]$ ]]; then
142
- echo -e "${RED}❌ Aborted${NC}"
143
- exit 1
144
- fi
145
- fi
146
-
147
- # Check NPM authentication
148
- echo -e "\n${CYAN}Checking NPM authentication...${NC}"
149
- if ! npm whoami &> /dev/null; then
150
- echo -e "${RED}❌ You are not logged in to NPM${NC}"
151
- echo -e "${YELLOW}Please run: npm login${NC}"
152
- exit 1
153
- fi
154
- echo -e "${GREEN}✅ Logged in as: $(npm whoami)${NC}"
155
-
156
- # Get current version
157
- CURRENT_VERSION=$(node -p "require('$NPM_PKG_DIR/package.json').version")
158
- echo -e "\n${CYAN}Current version:${NC} $CURRENT_VERSION"
159
-
160
- # Calculate new version
161
- case $VERSION_TYPE in
162
- patch)
163
- NEW_VERSION=$(npm version patch --no-git-tag-version --prefix "$NPM_PKG_DIR" 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' || echo "")
164
- ;;
165
- minor)
166
- NEW_VERSION=$(npm version minor --no-git-tag-version --prefix "$NPM_PKG_DIR" 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' || echo "")
167
- ;;
168
- major)
169
- NEW_VERSION=$(npm version major --no-git-tag-version --prefix "$NPM_PKG_DIR" 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' || echo "")
170
- ;;
171
- esac
172
-
173
- # If npm version failed, calculate manually
174
- if [[ -z "$NEW_VERSION" ]]; then
175
- IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION"
176
- case $VERSION_TYPE in
177
- patch)
178
- NEW_VERSION="${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.$((VERSION_PARTS[2] + 1))"
179
- ;;
180
- minor)
181
- NEW_VERSION="${VERSION_PARTS[0]}.$((VERSION_PARTS[1] + 1)).0"
182
- ;;
183
- major)
184
- NEW_VERSION="$((VERSION_PARTS[0] + 1)).0.0"
185
- ;;
186
- esac
187
- # Update package.json manually
188
- node -e "const pkg = require('$NPM_PKG_DIR/package.json'); pkg.version = '$NEW_VERSION'; require('fs').writeFileSync('$NPM_PKG_DIR/package.json', JSON.stringify(pkg, null, 2) + '\n');"
189
- fi
190
-
191
- echo -e "${GREEN}✅ New version:${NC} ${MAGENTA}$NEW_VERSION${NC}"
192
- echo ""
193
-
194
- # Confirmation
195
- if [[ "$DRY_RUN" == false ]]; then
196
- echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
197
- echo -e "${YELLOW}⚠️ You are about to publish:${NC}"
198
- echo -e "${YELLOW} Package: ${NC}${MAGENTA}devicely${NC}"
199
- echo -e "${YELLOW} Version: ${NC}${MAGENTA}$CURRENT_VERSION → $NEW_VERSION${NC}"
200
- echo -e "${YELLOW} Type: ${NC}${MAGENTA}$VERSION_TYPE${NC}"
201
- echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
202
- read -p "Continue? (y/N): " -n 1 -r
203
- echo
204
- if [[ ! $REPLY =~ ^[Yy]$ ]]; then
205
- echo -e "${RED}❌ Aborted${NC}"
206
- # Revert version change
207
- node -e "const pkg = require('$NPM_PKG_DIR/package.json'); pkg.version = '$CURRENT_VERSION'; require('fs').writeFileSync('$NPM_PKG_DIR/package.json', JSON.stringify(pkg, null, 2) + '\n');"
208
- exit 1
209
- fi
210
- fi
211
-
212
- # Step 2: Sync changes to npm-package
213
- run_step 2 "Sync Changes" "Syncing from main project to npm-package"
214
- cd "$SCRIPT_DIR"
215
- if [[ -f "./sync-to-npm-package.sh" ]]; then
216
- echo -e "${CYAN}Running sync script...${NC}"
217
- ./sync-to-npm-package.sh
218
- echo -e "${GREEN}✅ Sync complete${NC}"
219
- else
220
- echo -e "${YELLOW}⚠️ No sync script found, skipping...${NC}"
221
- fi
222
-
223
- # Update version in npm-package after sync (in case sync overwrote it)
224
- node -e "const pkg = require('$NPM_PKG_DIR/package.json'); pkg.version = '$NEW_VERSION'; require('fs').writeFileSync('$NPM_PKG_DIR/package.json', JSON.stringify(pkg, null, 2) + '\n');"
225
-
226
- # Step 3: Run tests
227
- if [[ "$SKIP_TESTS" == false ]]; then
228
- run_step 3 "Run Tests" "Validating functionality"
229
-
230
- # Check if test script exists
231
- if [[ -f "$SCRIPT_DIR/test_fixes.sh" ]]; then
232
- echo -e "${CYAN}Running tests...${NC}"
233
- cd "$SCRIPT_DIR"
234
- if ./test_fixes.sh > /dev/null 2>&1; then
235
- echo -e "${GREEN}✅ Tests passed${NC}"
236
- else
237
- echo -e "${YELLOW}⚠️ Some tests may have failed, but continuing...${NC}"
238
- fi
239
- else
240
- echo -e "${YELLOW}⚠️ No test script found, skipping...${NC}"
241
- fi
242
- else
243
- echo -e "${YELLOW}⚠️ Skipping tests as requested${NC}"
244
- fi
245
-
246
- # Step 4: Build obfuscated package
247
- run_step 4 "Build Package" "Building obfuscated distribution"
248
-
249
- cd "$NPM_PKG_DIR"
250
- echo -e "${CYAN}Running build:obfuscated...${NC}"
251
- npm run build:obfuscated
252
-
253
- if [[ ! -d "$DIST_DIR" ]]; then
254
- echo -e "${RED}❌ Build failed: dist directory not found${NC}"
255
- exit 1
256
- fi
257
- echo -e "${GREEN}✅ Build complete${NC}"
258
-
259
- # Verify compiled scripts
260
- SCRIPT_COUNT=$(ls -1 "$DIST_DIR/scripts/shell" 2>/dev/null | wc -l)
261
- echo -e "${GREEN}✅ Shell scripts compiled: $SCRIPT_COUNT files${NC}"
262
-
263
- # Step 5: Verify package contents
264
- run_step 5 "Verify Package" "Checking package contents"
265
-
266
- cd "$DIST_DIR"
267
- echo -e "${CYAN}Package contents:${NC}"
268
- echo " 📁 lib/ - $(find lib -type f | wc -l | tr -d ' ') files"
269
- echo " 📁 bin/ - $(find bin -type f | wc -l | tr -d ' ') files"
270
- echo " 📁 scripts/ - $(find scripts -type f | wc -l | tr -d ' ') files"
271
- echo " 📁 config/ - $(find config -type f | wc -l | tr -d ' ') files"
272
- echo " 📁 frontend/ - $(find frontend -type f | wc -l | tr -d ' ') files"
273
-
274
- # Verify version in dist
275
- DIST_VERSION=$(node -p "require('./package.json').version")
276
- if [[ "$DIST_VERSION" != "$NEW_VERSION" ]]; then
277
- echo -e "${YELLOW}⚠️ Version mismatch detected, fixing...${NC}"
278
- node -e "const pkg = require('./package.json'); pkg.version = '$NEW_VERSION'; require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\n');"
279
- echo -e "${GREEN}✅ Version fixed: $NEW_VERSION${NC}"
280
- else
281
- echo -e "${GREEN}✅ Version verified: $NEW_VERSION${NC}"
282
- fi
283
-
284
- # Step 6: Test local installation (dry run)
285
- run_step 6 "Test Installation" "Testing package locally"
286
-
287
- echo -e "${CYAN}Creating test installation...${NC}"
288
- TEST_DIR=$(mktemp -d)
289
- cd "$TEST_DIR"
290
-
291
- if npm pack "$DIST_DIR" > /dev/null 2>&1; then
292
- PACKAGE_FILE=$(ls devicely-*.tgz)
293
- echo -e "${GREEN}✅ Package created: $PACKAGE_FILE${NC}"
294
-
295
- # Verify package size
296
- SIZE=$(du -h "$PACKAGE_FILE" | cut -f1)
297
- echo -e "${GREEN}✅ Package size: $SIZE${NC}"
298
-
299
- # Clean up
300
- rm -rf "$TEST_DIR"
301
- else
302
- echo -e "${RED}❌ Package creation failed${NC}"
303
- rm -rf "$TEST_DIR"
304
- exit 1
305
- fi
306
-
307
- # Step 7: Publish to NPM
308
- if [[ "$DRY_RUN" == true ]]; then
309
- run_step 7 "Dry Run Complete" "No changes were published"
310
- echo -e "${GREEN}✅ Dry run completed successfully${NC}"
311
- echo -e "${YELLOW}To publish for real, run without --dry-run flag${NC}"
312
- else
313
- run_step 7 "Publish to NPM" "Publishing package to registry"
314
-
315
- cd "$DIST_DIR"
316
- echo -e "${CYAN}Publishing to NPM...${NC}"
317
-
318
- if npm publish --access public; then
319
- echo -e "${GREEN}✅ Published successfully!${NC}"
320
-
321
- # Step 8: Git tag and commit
322
- run_step 8 "Git Operations" "Tagging and committing changes"
323
-
324
- cd "$SCRIPT_DIR"
325
-
326
- # Commit version change
327
- git add "$NPM_PKG_DIR/package.json"
328
- git commit -m "chore: bump version to $NEW_VERSION" || echo "No changes to commit"
329
-
330
- # Create git tag
331
- git tag -a "v$NEW_VERSION" -m "Release version $NEW_VERSION"
332
- echo -e "${GREEN}✅ Created git tag: v$NEW_VERSION${NC}"
333
-
334
- echo -e "\n${YELLOW}Don't forget to push:${NC}"
335
- echo " git push origin main"
336
- echo " git push origin v$NEW_VERSION"
337
-
338
- # Step 9: Success summary
339
- echo ""
340
- echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
341
- echo -e "${GREEN}🎉 SUCCESS!${NC}"
342
- echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
343
- echo ""
344
- echo -e "${CYAN}Package published:${NC} ${MAGENTA}devicely@$NEW_VERSION${NC}"
345
- echo -e "${CYAN}Registry:${NC} https://www.npmjs.com/package/devicely"
346
- echo ""
347
- echo -e "${YELLOW}Next steps:${NC}"
348
- echo " 1. Push changes: git push origin main"
349
- echo " 2. Push tag: git push origin v$NEW_VERSION"
350
- echo " 3. Test installation: npm install -g devicely"
351
- echo " 4. Verify: devicely --version"
352
- echo " 5. Create GitHub release: https://github.com/sureshkumarm8/Devicely/releases/new"
353
- echo ""
354
- echo -e "${CYAN}Installation:${NC}"
355
- echo " npm install -g devicely"
356
- echo ""
357
-
358
- else
359
- echo -e "${RED}❌ Publish failed${NC}"
360
- exit 1
361
- fi
362
- fi
363
-
364
- echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
365
- echo -e "${GREEN}✨ All done!${NC}"
366
- echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
@@ -1,100 +0,0 @@
1
- #!/bin/bash
2
-
3
- ###############################################################################
4
- # QUICK PUBLISH HELPER
5
- # Interactive wrapper for publish-to-npm.sh
6
- ###############################################################################
7
-
8
- set -e
9
-
10
- # Colors
11
- RED='\033[0;31m'
12
- GREEN='\033[0;32m'
13
- YELLOW='\033[1;33m'
14
- BLUE='\033[0;34m'
15
- CYAN='\033[0;36m'
16
- MAGENTA='\033[0;35m'
17
- NC='\033[0m'
18
-
19
- clear
20
-
21
- echo -e "${CYAN}"
22
- cat << "EOF"
23
- ╔════════════════════════════════════════════════╗
24
- ║ ║
25
- ║ 📦 NPM PUBLISH HELPER 📦 ║
26
- ║ ║
27
- ║ Quick Publish Menu ║
28
- ║ ║
29
- ╚════════════════════════════════════════════════╝
30
- EOF
31
- echo -e "${NC}"
32
-
33
- # Get current version
34
- CURRENT_VERSION=$(node -p "require('./npm-package/package.json').version" 2>/dev/null || echo "unknown")
35
- echo -e "${YELLOW}Current Version:${NC} ${MAGENTA}$CURRENT_VERSION${NC}\n"
36
-
37
- # Calculate potential versions
38
- if [[ "$CURRENT_VERSION" != "unknown" ]]; then
39
- IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION"
40
- PATCH_VERSION="${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.$((VERSION_PARTS[2] + 1))"
41
- MINOR_VERSION="${VERSION_PARTS[0]}.$((VERSION_PARTS[1] + 1)).0"
42
- MAJOR_VERSION="$((VERSION_PARTS[0] + 1)).0.0"
43
- fi
44
-
45
- echo -e "${CYAN}What type of release?${NC}\n"
46
- echo -e "${GREEN}1)${NC} Patch - Bug fixes ${MAGENTA}($CURRENT_VERSION → $PATCH_VERSION)${NC}"
47
- echo -e "${GREEN}2)${NC} Minor - New features ${MAGENTA}($CURRENT_VERSION → $MINOR_VERSION)${NC}"
48
- echo -e "${GREEN}3)${NC} Major - Breaking changes ${MAGENTA}($CURRENT_VERSION → $MAJOR_VERSION)${NC}"
49
- echo ""
50
- echo -e "${YELLOW}4)${NC} Dry Run - Test without publishing"
51
- echo -e "${RED}5)${NC} Cancel"
52
- echo ""
53
-
54
- read -p "Enter choice [1-5]: " choice
55
-
56
- case $choice in
57
- 1)
58
- echo -e "\n${CYAN}Publishing patch version...${NC}\n"
59
- ./publish-to-npm.sh patch
60
- ;;
61
- 2)
62
- echo -e "\n${CYAN}Publishing minor version...${NC}\n"
63
- ./publish-to-npm.sh minor
64
- ;;
65
- 3)
66
- echo -e "\n${RED}⚠️ Major version! This indicates breaking changes.${NC}"
67
- read -p "Are you sure? (yes/no): " confirm
68
- if [[ "$confirm" == "yes" ]]; then
69
- echo -e "\n${CYAN}Publishing major version...${NC}\n"
70
- ./publish-to-npm.sh major
71
- else
72
- echo -e "${YELLOW}Cancelled${NC}"
73
- fi
74
- ;;
75
- 4)
76
- echo -e "\n${CYAN}Choose version type for dry run:${NC}\n"
77
- echo "1) Patch"
78
- echo "2) Minor"
79
- echo "3) Major"
80
- read -p "Enter choice [1-3]: " dry_choice
81
-
82
- case $dry_choice in
83
- 1) VERSION_TYPE="patch" ;;
84
- 2) VERSION_TYPE="minor" ;;
85
- 3) VERSION_TYPE="major" ;;
86
- *) echo -e "${RED}Invalid choice${NC}"; exit 1 ;;
87
- esac
88
-
89
- echo -e "\n${CYAN}Running dry run with $VERSION_TYPE...${NC}\n"
90
- ./publish-to-npm.sh $VERSION_TYPE --dry-run
91
- ;;
92
- 5)
93
- echo -e "${YELLOW}Cancelled${NC}"
94
- exit 0
95
- ;;
96
- *)
97
- echo -e "${RED}Invalid choice${NC}"
98
- exit 1
99
- ;;
100
- esac
@@ -1,121 +0,0 @@
1
- #!/bin/bash
2
-
3
- # iOS Device Mind Control - Setup Script
4
- # This script sets up the web application for the first time
5
-
6
- set -e
7
-
8
- echo "🚀 iOS Device Mind Control - Setup"
9
- echo "===================================="
10
- echo ""
11
-
12
- # Colors
13
- GREEN='\033[0;32m'
14
- YELLOW='\033[1;33m'
15
- RED='\033[0;31m'
16
- NC='\033[0m'
17
-
18
- # Check if Node.js is installed
19
- if ! command -v node &> /dev/null; then
20
- echo -e "${RED}❌ Node.js is not installed${NC}"
21
- echo "Please install Node.js from https://nodejs.org/"
22
- exit 1
23
- fi
24
-
25
- echo -e "${GREEN}✅ Node.js found: $(node --version)${NC}"
26
- echo -e "${GREEN}✅ npm found: $(npm --version)${NC}"
27
- echo ""
28
-
29
- # Check if devices.conf exists
30
- if [ ! -f "devices.conf" ]; then
31
- echo -e "${YELLOW}⚠️ devices.conf not found${NC}"
32
- echo "Creating example configuration..."
33
- cat > devices.conf << 'EOF'
34
- # Device Configuration
35
- # Format: device_name,udid,ip_address
36
- # Example:
37
- # iphone16p,00008140-001C24361E41801C,10.173.221.204
38
- # ipad,00008132-000A24C022FB801C,10.173.221.66
39
- EOF
40
- echo -e "${GREEN}✅ Created devices.conf - please edit with your device details${NC}"
41
- fi
42
-
43
- # Check if apps_presets.conf exists
44
- if [ ! -f "apps_presets.conf" ]; then
45
- echo -e "${YELLOW}⚠️ apps_presets.conf not found${NC}"
46
- echo "Creating default app presets..."
47
- cat > apps_presets.conf << 'EOF'
48
- safari,com.apple.mobilesafari
49
- settings,com.apple.Preferences
50
- messages,com.apple.MobileSMS
51
- camera,com.apple.camera
52
- photos,com.apple.mobileslideshow
53
- notes,com.apple.mobilenotes
54
- mail,com.apple.mobilemail
55
- EOF
56
- echo -e "${GREEN}✅ Created apps_presets.conf${NC}"
57
- fi
58
-
59
- echo ""
60
- echo "📦 Installing Backend Dependencies..."
61
- cd webapp/backend
62
- if [ ! -d "node_modules" ]; then
63
- npm install
64
- echo -e "${GREEN}✅ Backend dependencies installed${NC}"
65
- else
66
- echo -e "${YELLOW}Backend dependencies already installed${NC}"
67
- fi
68
-
69
- # Setup .env file
70
- if [ ! -f ".env" ]; then
71
- echo ""
72
- echo "🔑 Setting up environment configuration..."
73
- cp .env.example .env
74
- echo -e "${GREEN}✅ Created .env file${NC}"
75
- echo -e "${YELLOW}⚠️ Please edit webapp/backend/.env and add your OpenAI API key${NC}"
76
- echo " OpenAI API key is optional but required for AI command conversion"
77
- echo " Get your key from: https://platform.openai.com/api-keys"
78
- else
79
- echo -e "${YELLOW}⚠️ .env already exists${NC}"
80
- fi
81
-
82
- echo ""
83
- echo "📦 Installing Frontend Dependencies..."
84
- cd ../frontend
85
- if [ ! -d "node_modules" ]; then
86
- npm install
87
- echo -e "${GREEN}✅ Frontend dependencies installed${NC}"
88
- else
89
- echo -e "${YELLOW}Frontend dependencies already installed${NC}"
90
- fi
91
-
92
- cd ../..
93
-
94
- echo ""
95
- echo "============================================"
96
- echo -e "${GREEN}✅ Setup Complete!${NC}"
97
- echo "============================================"
98
- echo ""
99
- echo "📋 Next Steps:"
100
- echo ""
101
- echo "1. Configure your devices:"
102
- echo " Edit: devices.conf"
103
- echo " Format: device_name,udid,ip_address"
104
- echo ""
105
- echo "2. (Optional) Add OpenAI API key for AI features:"
106
- echo " Edit: webapp/backend/.env"
107
- echo " Add: OPENAI_API_KEY=your_key_here"
108
- echo ""
109
- echo "3. Start the backend server:"
110
- echo " cd webapp/backend"
111
- echo " npm start"
112
- echo ""
113
- echo "4. Start the frontend (in a new terminal):"
114
- echo " cd webapp/frontend"
115
- echo " npm start"
116
- echo ""
117
- echo "5. Open your browser:"
118
- echo " http://localhost:3000"
119
- echo ""
120
- echo "🎉 Enjoy iOS Device Mind Control!"
121
- echo ""
@@ -1,59 +0,0 @@
1
- #!/bin/bash
2
-
3
- # iOS Device Mind Control - Start Script
4
- # Starts backend server only (uses production build for frontend)
5
-
6
- set -e
7
-
8
- echo "🚀 Starting iOS Device Mind Control"
9
- echo "===================================="
10
-
11
- # Colors
12
- GREEN='\033[0;32m'
13
- YELLOW='\033[1;33m'
14
- BLUE='\033[0;34m'
15
- NC='\033[0m'
16
-
17
- # Function to cleanup on exit
18
- cleanup() {
19
- echo ""
20
- echo -e "${YELLOW}Stopping servers...${NC}"
21
- kill $BACKEND_PID 2>/dev/null || true
22
- exit 0
23
- }
24
-
25
- trap cleanup SIGINT SIGTERM
26
-
27
- # Check if setup was run
28
- if [ ! -d "webapp/backend/node_modules" ]; then
29
- echo -e "${YELLOW}⚠️ Backend dependencies not installed. Running setup...${NC}"
30
- cd webapp/backend && npm install && cd ../..
31
- fi
32
-
33
- # Check if frontend build exists
34
- if [ ! -d "webapp/frontend/build" ]; then
35
- echo -e "${YELLOW}⚠️ Frontend not built. Building production version...${NC}"
36
- cd webapp/frontend && npm install && npm run build && cd ../..
37
- fi
38
-
39
- # Start backend (serves both API and static frontend)
40
- echo -e "${BLUE}Starting backend server...${NC}"
41
- cd webapp/backend
42
- npm start &
43
- BACKEND_PID=$!
44
- echo -e "${GREEN}✅ Backend started (PID: $BACKEND_PID)${NC}"
45
- echo -e "${GREEN} API: http://localhost:3001${NC}"
46
- echo -e "${GREEN} Web: http://localhost:3001${NC}"
47
-
48
- echo ""
49
- echo "============================================"
50
- echo -e "${GREEN}✅ Server running!${NC}"
51
- echo "============================================"
52
- echo ""
53
- echo "📱 Open http://localhost:3001 in your browser"
54
- echo ""
55
- echo "Press Ctrl+C to stop the server"
56
- echo ""
57
-
58
- # Wait for process
59
- wait