-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild-simple.js
More file actions
153 lines (124 loc) Β· 4.11 KB
/
build-simple.js
File metadata and controls
153 lines (124 loc) Β· 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#!/usr/bin/env node
/**
* Simple build script for Equicus RFID Controller
* Creates a basic distribution package without electron-builder
*/
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
console.log('π Building Equicus RFID Controller v2.0.0 (Simple Package)...\n');
// Check if we're in the right directory
if (!fs.existsSync('package.json')) {
console.error('β Error: package.json not found. Please run this script from the project root.');
process.exit(1);
}
// Read package.json for version info
const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
const version = packageJson.version;
console.log(`π¦ Building version ${version}\n`);
try {
// Clean previous builds
console.log('π§Ή Cleaning previous builds...');
if (fs.existsSync('dist')) {
fs.rmSync('dist', { recursive: true, force: true });
}
if (fs.existsSync('build')) {
fs.rmSync('build', { recursive: true, force: true });
}
if (fs.existsSync('out')) {
fs.rmSync('out', { recursive: true, force: true });
}
// Install dependencies
console.log('π₯ Installing dependencies...');
execSync('npm install', { stdio: 'inherit' });
// Create dist directory
console.log('π Creating distribution directory...');
fs.mkdirSync('dist', { recursive: true });
// Copy source files
console.log('π Copying source files...');
const sourceFiles = [
'src',
'package.json',
'README.md',
'CHANGELOG.md',
'LICENSE',
'INSTALL.md',
'config.json',
'test-simulator.js'
];
sourceFiles.forEach(file => {
if (fs.existsSync(file)) {
if (fs.statSync(file).isDirectory()) {
execSync(`xcopy "${file}" "dist\\${file}" /E /I /Y`, { stdio: 'inherit' });
} else {
fs.copyFileSync(file, `dist/${file}`);
}
}
});
// Create a simple launcher script
console.log('π Creating launcher script...');
const launcherScript = `@echo off
echo Starting Equicus RFID Controller v${version}...
echo.
echo Please ensure you have Node.js installed.
echo.
npm install
npm start
pause
`;
fs.writeFileSync('dist/start.bat', launcherScript);
// Create a README for the distribution
const distReadme = `# Equicus RFID Controller v${version}
## Quick Start
1. **Install Node.js** (if not already installed)
- Download from: https://nodejs.org/
- Version 16 or higher recommended
2. **Run the application:**
- Double-click \`start.bat\` (Windows)
- Or run: \`npm install && npm start\`
3. **Configure your RFID reader:**
- Enter your RFID reader's IP address
- Default port: 6677
- Click "Connect"
## System Requirements
- **Node.js** 16+
- **Windows** 10+ / **macOS** 10.14+ / **Linux**
- **512MB RAM** minimum
- **Network connection** to RFID reader
## Features
- π TCP/IP Connection Management
- π‘ Reader Controls (Start/Stop AutoRead)
- π·οΈ Real-time Tag Detection
- ποΈ I/O Controls (LEDs, Relays, Inputs)
- π Communication Logging
- π¨ Modern User Interface
## Support
For documentation and support, see README.md
---
**Equicus Systems** - Professional RFID Solutions
`;
fs.writeFileSync('dist/QUICK_START.md', distReadme);
console.log('\nβ
Simple build completed successfully!');
console.log(`π Distribution files are in the 'dist' directory`);
console.log(`π·οΈ Version: ${version}`);
// List generated files
if (fs.existsSync('dist')) {
console.log('\nπ Generated files:');
const files = fs.readdirSync('dist');
files.forEach(file => {
const stats = fs.statSync(path.join('dist', file));
if (stats.isDirectory()) {
console.log(` π ${file}/`);
} else {
const size = (stats.size / 1024).toFixed(2);
console.log(` π ${file} (${size} KB)`);
}
});
}
console.log('\nπ¦ To create a zip file, run:');
console.log(' powershell Compress-Archive -Path dist/* -DestinationPath "Equicus-RFID-Controller-v' + version + '.zip"');
} catch (error) {
console.error('\nβ Build failed:', error.message);
process.exit(1);
}
console.log('\nπ Equicus RFID Controller is ready for distribution!');