droid-cli 1.0.0
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.
- package/README.md +268 -0
- package/dist/commands/build.d.ts +12 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +375 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/device.d.ts +2 -0
- package/dist/commands/device.d.ts.map +1 -0
- package/dist/commands/device.js +177 -0
- package/dist/commands/device.js.map +1 -0
- package/dist/commands/gradle.d.ts +11 -0
- package/dist/commands/gradle.d.ts.map +1 -0
- package/dist/commands/gradle.js +147 -0
- package/dist/commands/gradle.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +231 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/logcat.d.ts +6 -0
- package/dist/commands/logcat.d.ts.map +1 -0
- package/dist/commands/logcat.js +131 -0
- package/dist/commands/logcat.js.map +1 -0
- package/dist/commands/variant.d.ts +3 -0
- package/dist/commands/variant.d.ts.map +1 -0
- package/dist/commands/variant.js +77 -0
- package/dist/commands/variant.js.map +1 -0
- package/dist/config/config-manager.d.ts +33 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +219 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/schema.d.ts +21 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +41 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/adb.d.ts +48 -0
- package/dist/core/adb.d.ts.map +1 -0
- package/dist/core/adb.js +431 -0
- package/dist/core/adb.js.map +1 -0
- package/dist/core/android-project.d.ts +25 -0
- package/dist/core/android-project.d.ts.map +1 -0
- package/dist/core/android-project.js +155 -0
- package/dist/core/android-project.js.map +1 -0
- package/dist/core/gradle-wrapper.d.ts +21 -0
- package/dist/core/gradle-wrapper.d.ts.map +1 -0
- package/dist/core/gradle-wrapper.js +221 -0
- package/dist/core/gradle-wrapper.js.map +1 -0
- package/dist/core/terminal.d.ts +20 -0
- package/dist/core/terminal.d.ts.map +1 -0
- package/dist/core/terminal.js +186 -0
- package/dist/core/terminal.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +167 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/interactive-menu.d.ts +2 -0
- package/dist/ui/interactive-menu.d.ts.map +1 -0
- package/dist/ui/interactive-menu.js +272 -0
- package/dist/ui/interactive-menu.js.map +1 -0
- package/dist/ui/logger.d.ts +20 -0
- package/dist/ui/logger.d.ts.map +1 -0
- package/dist/ui/logger.js +59 -0
- package/dist/ui/logger.js.map +1 -0
- package/dist/utils/process.d.ts +53 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +62 -0
- package/dist/utils/process.js.map +1 -0
- package/dist/utils/validators.d.ts +11 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +84 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/commands/device.ts"],"names":[],"mappings":"AAMA,wBAAsB,aAAa,kBA4LlC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.deviceCommand = deviceCommand;
|
|
7
|
+
const logger_1 = require("../ui/logger");
|
|
8
|
+
const adb_1 = require("../core/adb");
|
|
9
|
+
const config_manager_1 = require("../config/config-manager");
|
|
10
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
async function deviceCommand() {
|
|
13
|
+
try {
|
|
14
|
+
logger_1.Logger.step('Checking available devices...');
|
|
15
|
+
const adbManager = adb_1.AdbManager.getInstance();
|
|
16
|
+
const devices = await adbManager.getDevices();
|
|
17
|
+
if (devices.length === 0) {
|
|
18
|
+
logger_1.Logger.warn('No devices found.');
|
|
19
|
+
// Check if we can start an emulator
|
|
20
|
+
const canStartEmulator = await adbManager.checkEmulatorCommand();
|
|
21
|
+
if (canStartEmulator) {
|
|
22
|
+
const availableEmulators = await adbManager.getAvailableEmulators();
|
|
23
|
+
if (availableEmulators.length > 0) {
|
|
24
|
+
const startEmulator = await (0, prompts_1.confirm)({
|
|
25
|
+
message: 'No devices found. Would you like to start an emulator?',
|
|
26
|
+
default: true,
|
|
27
|
+
});
|
|
28
|
+
if (startEmulator) {
|
|
29
|
+
let selectedEmulator;
|
|
30
|
+
if (availableEmulators.length === 1) {
|
|
31
|
+
selectedEmulator = availableEmulators[0].name;
|
|
32
|
+
logger_1.Logger.info(`Starting emulator: ${availableEmulators[0].displayName}`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const emulatorChoices = availableEmulators.map(emu => ({
|
|
36
|
+
name: emu.displayName,
|
|
37
|
+
value: emu.name,
|
|
38
|
+
}));
|
|
39
|
+
selectedEmulator = await (0, prompts_1.select)({
|
|
40
|
+
message: 'Select emulator to start:',
|
|
41
|
+
choices: emulatorChoices,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const emulatorStarted = await adbManager.startEmulator(selectedEmulator);
|
|
45
|
+
if (emulatorStarted) {
|
|
46
|
+
logger_1.Logger.success('Emulator started! You can now use it for builds.');
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
logger_1.Logger.error('Failed to start emulator.');
|
|
50
|
+
}
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
logger_1.Logger.info('No emulators found. Please create an AVD first.');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
logger_1.Logger.info('Emulator command not found. Please ensure Android SDK is installed.');
|
|
60
|
+
}
|
|
61
|
+
logger_1.Logger.info('Please ensure:');
|
|
62
|
+
logger_1.Logger.info(' ⢠ADB is installed and in your PATH');
|
|
63
|
+
logger_1.Logger.info(' ⢠USB debugging is enabled on your device');
|
|
64
|
+
logger_1.Logger.info(' ⢠Your device is connected or an emulator is running');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
// Display current devices
|
|
68
|
+
console.log(chalk_1.default.cyan('\nš± Available Devices:'));
|
|
69
|
+
console.log(chalk_1.default.gray('ā'.repeat(60)));
|
|
70
|
+
devices.forEach((device, index) => {
|
|
71
|
+
const statusColor = device.state === 'device' ? chalk_1.default.green :
|
|
72
|
+
device.state === 'offline' ? chalk_1.default.red :
|
|
73
|
+
chalk_1.default.yellow;
|
|
74
|
+
const typeIcon = device.type === 'emulator' ? 'š„ļø ' : 'š±';
|
|
75
|
+
const apiInfo = device.apiLevel ? ` (API ${device.apiLevel})` : '';
|
|
76
|
+
console.log(`${index + 1}. ${typeIcon} ${chalk_1.default.bold(device.name)}${apiInfo}`);
|
|
77
|
+
console.log(` ${chalk_1.default.gray('ID:')} ${device.id}`);
|
|
78
|
+
console.log(` ${chalk_1.default.gray('State:')} ${statusColor(device.state)}`);
|
|
79
|
+
console.log(` ${chalk_1.default.gray('Type:')} ${device.type}`);
|
|
80
|
+
if (device.model && device.model !== device.name) {
|
|
81
|
+
console.log(` ${chalk_1.default.gray('Model:')} ${device.model}`);
|
|
82
|
+
}
|
|
83
|
+
console.log('');
|
|
84
|
+
});
|
|
85
|
+
const availableDevices = adbManager.getAvailableDevices();
|
|
86
|
+
const physicalDevices = adbManager.getPhysicalDevices();
|
|
87
|
+
const runningEmulators = adbManager.getRunningEmulators();
|
|
88
|
+
console.log(chalk_1.default.blue('\nš Device Summary:'));
|
|
89
|
+
console.log(chalk_1.default.gray('ā'.repeat(40)));
|
|
90
|
+
console.log(`š± Physical devices: ${physicalDevices.length}`);
|
|
91
|
+
console.log(`š„ļø Running emulators: ${runningEmulators.length}`);
|
|
92
|
+
console.log(`ā
Available devices: ${availableDevices.length}`);
|
|
93
|
+
console.log('');
|
|
94
|
+
if (availableDevices.length === 0) {
|
|
95
|
+
logger_1.Logger.warn('No devices are currently available.');
|
|
96
|
+
// Check if we can start an emulator
|
|
97
|
+
const canStartEmulator = await adbManager.checkEmulatorCommand();
|
|
98
|
+
if (canStartEmulator) {
|
|
99
|
+
const availableEmulators = await adbManager.getAvailableEmulators();
|
|
100
|
+
if (availableEmulators.length > 0) {
|
|
101
|
+
const startEmulator = await (0, prompts_1.confirm)({
|
|
102
|
+
message: 'No devices available. Would you like to start an emulator?',
|
|
103
|
+
default: true,
|
|
104
|
+
});
|
|
105
|
+
if (startEmulator) {
|
|
106
|
+
let selectedEmulator;
|
|
107
|
+
if (availableEmulators.length === 1) {
|
|
108
|
+
selectedEmulator = availableEmulators[0].name;
|
|
109
|
+
logger_1.Logger.info(`Starting emulator: ${availableEmulators[0].displayName}`);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
const emulatorChoices = availableEmulators.map(emu => ({
|
|
113
|
+
name: emu.displayName,
|
|
114
|
+
value: emu.name,
|
|
115
|
+
}));
|
|
116
|
+
selectedEmulator = await (0, prompts_1.select)({
|
|
117
|
+
message: 'Select emulator to start:',
|
|
118
|
+
choices: emulatorChoices,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const emulatorStarted = await adbManager.startEmulator(selectedEmulator);
|
|
122
|
+
if (emulatorStarted) {
|
|
123
|
+
logger_1.Logger.success('Emulator started! You can now use it for builds.');
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
logger_1.Logger.error('Failed to start emulator.');
|
|
127
|
+
}
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
logger_1.Logger.info('No emulators found. Please create an AVD or connect a physical device.');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
logger_1.Logger.info('Emulator command not found. Please connect a physical device.');
|
|
137
|
+
}
|
|
138
|
+
logger_1.Logger.info('Please check device connection and authorization.');
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
// Get current config
|
|
142
|
+
const configManager = config_manager_1.ConfigManager.getInstance();
|
|
143
|
+
const config = await configManager.load();
|
|
144
|
+
const currentDevice = config.selectedDevice;
|
|
145
|
+
if (currentDevice) {
|
|
146
|
+
const device = adbManager.getDeviceById(currentDevice);
|
|
147
|
+
if (device && device.state === 'device') {
|
|
148
|
+
console.log(chalk_1.default.green(`ā
Current selected device: ${device.name} (${device.id})`));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Let user select a new device
|
|
152
|
+
const deviceChoices = availableDevices.map(device => ({
|
|
153
|
+
name: `${device.name} (${device.id}) - API ${device.apiLevel || 'Unknown'}`,
|
|
154
|
+
value: device.id,
|
|
155
|
+
}));
|
|
156
|
+
const selectedDeviceId = await (0, prompts_1.select)({
|
|
157
|
+
message: 'Select target device:',
|
|
158
|
+
choices: deviceChoices,
|
|
159
|
+
default: currentDevice && availableDevices.find(d => d.id === currentDevice) ? currentDevice : undefined,
|
|
160
|
+
});
|
|
161
|
+
const selectedDevice = adbManager.getDeviceById(selectedDeviceId);
|
|
162
|
+
if (!selectedDevice) {
|
|
163
|
+
logger_1.Logger.error('Selected device not found.');
|
|
164
|
+
process.exit(1);
|
|
165
|
+
}
|
|
166
|
+
// Save to config
|
|
167
|
+
configManager.setSelectedDevice(selectedDeviceId);
|
|
168
|
+
await configManager.save();
|
|
169
|
+
logger_1.Logger.success(`Selected device: ${selectedDevice.name} (${selectedDevice.id})`);
|
|
170
|
+
logger_1.Logger.info('Device preference saved. This device will be used for future builds.');
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
logger_1.Logger.error('Device command failed:', error);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/commands/device.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface GradleOptions {
|
|
2
|
+
args?: string;
|
|
3
|
+
}
|
|
4
|
+
export interface GradleResult {
|
|
5
|
+
success: boolean;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function gradleCommand(task: string, options?: GradleOptions): Promise<GradleResult>;
|
|
9
|
+
export declare function selectGradleTask(): Promise<string>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=gradle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle.d.ts","sourceRoot":"","sources":["../../src/commands/gradle.ts"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAoHpG;AAGD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAyCxD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gradleCommand = gradleCommand;
|
|
4
|
+
exports.selectGradleTask = selectGradleTask;
|
|
5
|
+
const logger_1 = require("../ui/logger");
|
|
6
|
+
const android_project_1 = require("../core/android-project");
|
|
7
|
+
const gradle_wrapper_1 = require("../core/gradle-wrapper");
|
|
8
|
+
const config_manager_1 = require("../config/config-manager");
|
|
9
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
10
|
+
async function gradleCommand(task, options = {}) {
|
|
11
|
+
try {
|
|
12
|
+
logger_1.Logger.step(`Running Gradle task: ${task}`);
|
|
13
|
+
// Load configuration
|
|
14
|
+
const configManager = config_manager_1.ConfigManager.getInstance();
|
|
15
|
+
const config = await configManager.load();
|
|
16
|
+
// Detect Android project
|
|
17
|
+
const project = await android_project_1.AndroidProject.detect(configManager.getProjectPath());
|
|
18
|
+
if (!project) {
|
|
19
|
+
const error = 'No Android project found. Please run this command from an Android project directory or run "droid-cli init" first.';
|
|
20
|
+
logger_1.Logger.error(error);
|
|
21
|
+
return { success: false, error };
|
|
22
|
+
}
|
|
23
|
+
const projectInfo = project.getInfo();
|
|
24
|
+
if (!projectInfo) {
|
|
25
|
+
const error = 'Failed to load Android project information.';
|
|
26
|
+
logger_1.Logger.error(error);
|
|
27
|
+
return { success: false, error };
|
|
28
|
+
}
|
|
29
|
+
logger_1.Logger.info(`Found Android project: ${projectInfo.packageName}`);
|
|
30
|
+
logger_1.Logger.info(`Project path: ${projectInfo.rootPath}`);
|
|
31
|
+
// Parse additional arguments
|
|
32
|
+
const additionalArgs = options.args ? options.args.split(' ').filter(arg => arg.trim()) : [];
|
|
33
|
+
// Create gradle wrapper
|
|
34
|
+
const gradleWrapper = new gradle_wrapper_1.GradleWrapper(project);
|
|
35
|
+
// Handle special tasks
|
|
36
|
+
switch (task.toLowerCase()) {
|
|
37
|
+
case 'clean':
|
|
38
|
+
const cleanSuccess = await gradleWrapper.clean();
|
|
39
|
+
if (!cleanSuccess) {
|
|
40
|
+
const error = 'Clean task failed';
|
|
41
|
+
logger_1.Logger.error(error);
|
|
42
|
+
return { success: false, error };
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
case 'sync':
|
|
46
|
+
const syncSuccess = await gradleWrapper.syncProject();
|
|
47
|
+
if (!syncSuccess) {
|
|
48
|
+
const error = 'Sync task failed';
|
|
49
|
+
logger_1.Logger.error(error);
|
|
50
|
+
return { success: false, error };
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
case 'tasks':
|
|
54
|
+
logger_1.Logger.step('Getting available Gradle tasks...');
|
|
55
|
+
const tasks = await gradleWrapper.getTasks();
|
|
56
|
+
if (tasks.length === 0) {
|
|
57
|
+
logger_1.Logger.warn('No Gradle tasks found');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
logger_1.Logger.success('Available Gradle tasks:');
|
|
61
|
+
console.log('');
|
|
62
|
+
// Group tasks by category
|
|
63
|
+
const taskCategories = {
|
|
64
|
+
build: tasks.filter(t => t.includes('assemble') || t.includes('build') || t === 'clean'),
|
|
65
|
+
install: tasks.filter(t => t.includes('install') || t.includes('uninstall')),
|
|
66
|
+
test: tasks.filter(t => t.includes('test') || t.includes('check')),
|
|
67
|
+
other: tasks.filter(t => !t.includes('assemble') && !t.includes('build') && t !== 'clean' &&
|
|
68
|
+
!t.includes('install') && !t.includes('uninstall') &&
|
|
69
|
+
!t.includes('test') && !t.includes('check')),
|
|
70
|
+
};
|
|
71
|
+
Object.entries(taskCategories).forEach(([category, categoryTasks]) => {
|
|
72
|
+
if (categoryTasks.length > 0) {
|
|
73
|
+
console.log(`${category.toUpperCase()}:`);
|
|
74
|
+
categoryTasks.forEach(task => console.log(` ⢠${task}`));
|
|
75
|
+
console.log('');
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case 'dependencies':
|
|
81
|
+
logger_1.Logger.step('Getting project dependencies...');
|
|
82
|
+
const dependencies = await gradleWrapper.getProjectDependencies();
|
|
83
|
+
if (dependencies.length === 0) {
|
|
84
|
+
logger_1.Logger.warn('No dependencies found');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
logger_1.Logger.success(`Found ${dependencies.length} dependencies:`);
|
|
88
|
+
console.log('');
|
|
89
|
+
dependencies.forEach(dep => console.log(` ⢠${dep}`));
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
// Run custom task
|
|
94
|
+
const taskSuccess = await gradleWrapper.runTask(task, additionalArgs);
|
|
95
|
+
if (!taskSuccess) {
|
|
96
|
+
const error = `Task '${task}' failed`;
|
|
97
|
+
logger_1.Logger.error(error);
|
|
98
|
+
return { success: false, error };
|
|
99
|
+
}
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
logger_1.Logger.success('Gradle task completed successfully!');
|
|
103
|
+
return { success: true };
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
const errorMessage = `Gradle command failed: ${error instanceof Error ? error.message : String(error)}`;
|
|
107
|
+
logger_1.Logger.error('Gradle command failed:', error);
|
|
108
|
+
return { success: false, error: errorMessage };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Helper function for interactive task selection
|
|
112
|
+
async function selectGradleTask() {
|
|
113
|
+
try {
|
|
114
|
+
const configManager = config_manager_1.ConfigManager.getInstance();
|
|
115
|
+
const config = await configManager.load();
|
|
116
|
+
const project = await android_project_1.AndroidProject.detect(configManager.getProjectPath());
|
|
117
|
+
if (!project) {
|
|
118
|
+
throw new Error('No Android project found');
|
|
119
|
+
}
|
|
120
|
+
const gradleWrapper = new gradle_wrapper_1.GradleWrapper(project);
|
|
121
|
+
const tasks = await gradleWrapper.getTasks();
|
|
122
|
+
// Add common tasks and custom tasks from config
|
|
123
|
+
const commonTasks = ['clean', 'sync', 'tasks', 'dependencies'];
|
|
124
|
+
const customTasks = config.gradleTasks.custom;
|
|
125
|
+
const allTasks = [
|
|
126
|
+
...commonTasks,
|
|
127
|
+
...customTasks,
|
|
128
|
+
...tasks.filter(t => !commonTasks.includes(t) && !customTasks.includes(t))
|
|
129
|
+
];
|
|
130
|
+
if (allTasks.length === 0) {
|
|
131
|
+
throw new Error('No Gradle tasks available');
|
|
132
|
+
}
|
|
133
|
+
const taskChoices = allTasks.map(task => ({
|
|
134
|
+
name: task,
|
|
135
|
+
value: task,
|
|
136
|
+
}));
|
|
137
|
+
return await (0, prompts_1.select)({
|
|
138
|
+
message: 'Select Gradle task to run:',
|
|
139
|
+
choices: taskChoices,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
logger_1.Logger.error('Failed to get Gradle tasks:', error);
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=gradle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../../src/commands/gradle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,wBAAsB,WAAW,kBA+DhC"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.initCommand = initCommand;
|
|
40
|
+
const logger_1 = require("../ui/logger");
|
|
41
|
+
const android_project_1 = require("../core/android-project");
|
|
42
|
+
const config_manager_1 = require("../config/config-manager");
|
|
43
|
+
const terminal_1 = require("../core/terminal");
|
|
44
|
+
const process_1 = require("../utils/process");
|
|
45
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const fs = __importStar(require("fs-extra"));
|
|
48
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
49
|
+
async function initCommand() {
|
|
50
|
+
try {
|
|
51
|
+
console.log(chalk_1.default.cyan('š Initializing Android Interactive CLI\n'));
|
|
52
|
+
// Check prerequisites
|
|
53
|
+
logger_1.Logger.step('Checking prerequisites...');
|
|
54
|
+
await checkPrerequisites();
|
|
55
|
+
// Detect or prompt for project path
|
|
56
|
+
const projectPath = await detectOrPromptProjectPath();
|
|
57
|
+
// Initialize config manager with project path
|
|
58
|
+
const configManager = config_manager_1.ConfigManager.getInstance(projectPath);
|
|
59
|
+
// Check if config already exists
|
|
60
|
+
if (await configManager.exists()) {
|
|
61
|
+
const overwrite = await (0, prompts_1.confirm)({
|
|
62
|
+
message: 'Configuration already exists. Do you want to overwrite it?',
|
|
63
|
+
default: false,
|
|
64
|
+
});
|
|
65
|
+
if (!overwrite) {
|
|
66
|
+
logger_1.Logger.info('Initialization cancelled.');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Load or create project
|
|
71
|
+
let project = await android_project_1.AndroidProject.detect(projectPath);
|
|
72
|
+
if (!project) {
|
|
73
|
+
logger_1.Logger.error(`No Android project found at: ${projectPath}`);
|
|
74
|
+
logger_1.Logger.info('Please ensure this is a valid Android project directory with build.gradle files.');
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
const projectInfo = project.getInfo();
|
|
78
|
+
if (!projectInfo) {
|
|
79
|
+
logger_1.Logger.error('Failed to load Android project information.');
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
logger_1.Logger.success(`Found Android project: ${projectInfo.packageName}`);
|
|
83
|
+
// Configure settings
|
|
84
|
+
const config = await configureSettings(project, configManager);
|
|
85
|
+
// Save configuration
|
|
86
|
+
await configManager.save();
|
|
87
|
+
// Display summary
|
|
88
|
+
displayConfigSummary(config, configManager.getConfigPath());
|
|
89
|
+
logger_1.Logger.success('Android Interactive CLI initialized successfully!');
|
|
90
|
+
logger_1.Logger.info('\nNext steps:');
|
|
91
|
+
logger_1.Logger.info(' ⢠Run "droid-cli" to start interactive mode');
|
|
92
|
+
logger_1.Logger.info(' ⢠Run "droid-cli build" to build and deploy your app');
|
|
93
|
+
logger_1.Logger.info(' ⢠Run "droid-cli device" to select a target device');
|
|
94
|
+
logger_1.Logger.info(' ⢠Run "droid-cli logcat" to view app logs');
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
logger_1.Logger.error('Initialization failed:', error);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async function checkPrerequisites() {
|
|
102
|
+
const checks = [
|
|
103
|
+
{ name: 'Node.js', command: 'node', flag: '--version' },
|
|
104
|
+
{ name: 'ADB', command: 'adb', flag: 'version' },
|
|
105
|
+
];
|
|
106
|
+
const results = await Promise.all(checks.map(async (check) => {
|
|
107
|
+
const available = await process_1.ProcessManager.checkCommand(check.command);
|
|
108
|
+
if (available) {
|
|
109
|
+
const version = await process_1.ProcessManager.getCommandVersion(check.command, check.flag);
|
|
110
|
+
return { ...check, available, version };
|
|
111
|
+
}
|
|
112
|
+
return { ...check, available, version: null };
|
|
113
|
+
}));
|
|
114
|
+
console.log(chalk_1.default.blue('Prerequisites Check:'));
|
|
115
|
+
console.log(chalk_1.default.gray('ā'.repeat(40)));
|
|
116
|
+
let allGood = true;
|
|
117
|
+
results.forEach((result) => {
|
|
118
|
+
const status = result.available ? chalk_1.default.green('ā') : chalk_1.default.red('ā');
|
|
119
|
+
const version = result.version ? chalk_1.default.gray(`(${result.version})`) : '';
|
|
120
|
+
console.log(`${status} ${result.name} ${version}`);
|
|
121
|
+
if (!result.available) {
|
|
122
|
+
allGood = false;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
if (!allGood) {
|
|
126
|
+
console.log('\n' + chalk_1.default.red('Missing prerequisites detected!'));
|
|
127
|
+
console.log(chalk_1.default.yellow('Please install the missing tools and run "droid-cli init" again.'));
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
console.log(chalk_1.default.green('\nā
All prerequisites are available!\n'));
|
|
131
|
+
}
|
|
132
|
+
async function detectOrPromptProjectPath() {
|
|
133
|
+
// Try to detect Android project in current directory
|
|
134
|
+
let projectPath = process.cwd();
|
|
135
|
+
let project = await android_project_1.AndroidProject.detect(projectPath);
|
|
136
|
+
if (project) {
|
|
137
|
+
logger_1.Logger.success(`Detected Android project in current directory: ${projectPath}`);
|
|
138
|
+
const useCurrentDir = await (0, prompts_1.confirm)({
|
|
139
|
+
message: 'Use current directory as project root?',
|
|
140
|
+
default: true,
|
|
141
|
+
});
|
|
142
|
+
if (useCurrentDir) {
|
|
143
|
+
return projectPath;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Prompt for project path
|
|
147
|
+
const inputPath = await (0, prompts_1.input)({
|
|
148
|
+
message: 'Enter path to Android project:',
|
|
149
|
+
default: projectPath,
|
|
150
|
+
validate: async (path) => {
|
|
151
|
+
const absolutePath = path.startsWith('/') ? path : require('path').resolve(projectPath, path);
|
|
152
|
+
if (!await fs.pathExists(absolutePath)) {
|
|
153
|
+
return 'Path does not exist';
|
|
154
|
+
}
|
|
155
|
+
const testProject = await android_project_1.AndroidProject.detect(absolutePath);
|
|
156
|
+
if (!testProject) {
|
|
157
|
+
return 'No Android project found at this path';
|
|
158
|
+
}
|
|
159
|
+
return true;
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
return path.resolve(projectPath, inputPath);
|
|
163
|
+
}
|
|
164
|
+
async function configureSettings(project, configManager) {
|
|
165
|
+
logger_1.Logger.step('Configuring settings...');
|
|
166
|
+
const projectInfo = project.getInfo();
|
|
167
|
+
const config = configManager.get();
|
|
168
|
+
// Build variant
|
|
169
|
+
const availableVariants = project.getBuildVariants();
|
|
170
|
+
if (availableVariants.length > 1) {
|
|
171
|
+
const defaultVariant = await (0, prompts_1.select)({
|
|
172
|
+
message: 'Select default build variant:',
|
|
173
|
+
choices: availableVariants.map(variant => ({
|
|
174
|
+
name: variant,
|
|
175
|
+
value: variant,
|
|
176
|
+
})),
|
|
177
|
+
default: config.defaultVariant,
|
|
178
|
+
});
|
|
179
|
+
config.defaultVariant = defaultVariant;
|
|
180
|
+
}
|
|
181
|
+
// Terminal preference
|
|
182
|
+
const availableTerminals = await terminal_1.TerminalManager.getAvailableTerminals();
|
|
183
|
+
if (availableTerminals.length > 0) {
|
|
184
|
+
const terminalChoices = [
|
|
185
|
+
{ name: 'Auto-detect', value: 'auto' },
|
|
186
|
+
...availableTerminals.map(terminal => ({
|
|
187
|
+
name: terminal,
|
|
188
|
+
value: terminal,
|
|
189
|
+
})),
|
|
190
|
+
];
|
|
191
|
+
const terminal = await (0, prompts_1.select)({
|
|
192
|
+
message: 'Select terminal for logcat:',
|
|
193
|
+
choices: terminalChoices,
|
|
194
|
+
default: config.terminal,
|
|
195
|
+
});
|
|
196
|
+
config.terminal = terminal;
|
|
197
|
+
}
|
|
198
|
+
// Build cache
|
|
199
|
+
const enableBuildCache = await (0, prompts_1.confirm)({
|
|
200
|
+
message: 'Enable build cache for faster builds?',
|
|
201
|
+
default: config.buildCache.enabled,
|
|
202
|
+
});
|
|
203
|
+
config.buildCache.enabled = enableBuildCache;
|
|
204
|
+
// Logcat settings
|
|
205
|
+
const clearLogcatOnStart = await (0, prompts_1.confirm)({
|
|
206
|
+
message: 'Clear logcat on start?',
|
|
207
|
+
default: config.logcat.clearOnStart,
|
|
208
|
+
});
|
|
209
|
+
config.logcat.clearOnStart = clearLogcatOnStart;
|
|
210
|
+
const colorizeLogcat = await (0, prompts_1.confirm)({
|
|
211
|
+
message: 'Colorize logcat output?',
|
|
212
|
+
default: config.logcat.colorize,
|
|
213
|
+
});
|
|
214
|
+
config.logcat.colorize = colorizeLogcat;
|
|
215
|
+
// Update config
|
|
216
|
+
configManager.set(config);
|
|
217
|
+
return config;
|
|
218
|
+
}
|
|
219
|
+
function displayConfigSummary(config, configPath) {
|
|
220
|
+
console.log(chalk_1.default.cyan('\nš Configuration Summary:'));
|
|
221
|
+
console.log(chalk_1.default.gray('ā'.repeat(50)));
|
|
222
|
+
console.log(`${chalk_1.default.bold('Project Path:')} ${config.projectPath}`);
|
|
223
|
+
console.log(`${chalk_1.default.bold('Default Variant:')} ${config.defaultVariant}`);
|
|
224
|
+
console.log(`${chalk_1.default.bold('Terminal:')} ${config.terminal}`);
|
|
225
|
+
console.log(`${chalk_1.default.bold('Build Cache:')} ${config.buildCache.enabled ? 'Enabled' : 'Disabled'}`);
|
|
226
|
+
console.log(`${chalk_1.default.bold('Clear Logcat:')} ${config.logcat.clearOnStart ? 'Yes' : 'No'}`);
|
|
227
|
+
console.log(`${chalk_1.default.bold('Colorize Logcat:')} ${config.logcat.colorize ? 'Yes' : 'No'}`);
|
|
228
|
+
console.log(`${chalk_1.default.bold('Config File:')} ${configPath}`);
|
|
229
|
+
console.log('');
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logcat.d.ts","sourceRoot":"","sources":["../../src/commands/logcat.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,iBA4I9D"}
|