create method
Server Universe
Implementation
Stream<GeneralSystemDeviceLibraryApiStatus> create({
required String newName,
required Directory directoryBase,
}) async* {
Directory directory_project = await Future(() async {
return Directory(
Directory(path.join(directoryBase.uri.toFilePath(), newName.trim()))
.uri
.toFilePath());
});
// ignore: unused_local_variable
String project_name = path.basename(directory_project.path);
File file_pubspec = File(path.join(directory_project.path, "pubspec.yaml"));
if (!file_pubspec.existsSync()) {
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.info,
value: "Start Create Project: ${newName}");
Process process = await Process.start(
"dart",
[
"create",
newName,
"--no-pub",
"--force",
],
workingDirectory: directory_project.parent.uri.toFilePath(),
);
process.stderr.listen((event) {
stderr.add(event);
});
process.stdout.listen((event) {
stdout.add(event);
});
int exit_code = await (process.exitCode);
if (exit_code != 0) {
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.failed,
value: "Failed Create Project: ${newName}");
return;
} else {
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.succes,
value: "Succes Create Project: ${newName}");
}
}
File file_guide = File(path.join(
directory_project.path, "guide-dart-general_system_device-library.md"));
if (file_guide.existsSync()) {
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.info,
value: "Rewrite: ${path.basename(file_guide.path)}");
} else {
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.info,
value: "Create: ${path.basename(file_guide.path)}");
}
await file_guide
.writeAsString(generalSystemDevice_system_device_library_docs.readme());
// supabase directory deploy
// update pubspec default
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.info,
value: "Start Update Pubspec: ${path.basename(file_pubspec.path)}");
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.succes,
value: "Succes Update Pubspec: ${path.basename(file_pubspec.path)}");
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.info,
value: "Start Save Pubspec: ${path.basename(file_pubspec.path)}");
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.succes,
value: "Succes Save Pubspec: ${path.basename(file_pubspec.path)}");
yield GeneralSystemDeviceLibraryApiStatus(
serverUniverseApiStatusType:
GeneralSystemDeviceLibraryApiStatusType.succes,
value: "Finished Create Project: ${newName}");
// finished update pubspec
}