saveProjectId static method
Save project ID to directory config
Implementation
static Future<void> saveProjectId(String projectPath, String projectId,
{String? projectName}) async {
try {
final configDir = Directory(_getConfigDir(projectPath));
if (!configDir.existsSync()) {
configDir.createSync(recursive: true);
}
final configFile = File(_getConfigPath(projectPath));
final config = <String, dynamic>{
'projectId': projectId,
if (projectName != null) 'projectName': projectName,
'updatedAt': DateTime.now().toIso8601String(),
};
await configFile.writeAsString(
const JsonEncoder.withIndent(' ').convert(config),
);
// Set restrictive permissions (600) for security
if (Platform.isLinux || Platform.isMacOS) {
final process = await Process.run(
'chmod',
['600', configFile.path],
);
if (process.exitCode != 0) {
// Silently fail - permissions are best effort
}
}
} catch (e) {
throw Exception('Failed to save project configuration: $e');
}
}