projectGuideMarkdown static method

String projectGuideMarkdown(
  1. SetupConfig config
)

Implementation

static String projectGuideMarkdown(SetupConfig config) {
  final StringBuffer buffer = StringBuffer();
  final String mainPath = mainProjectPath(config);
  final String configPath = p.join(
    config.outputDir,
    'config',
    'setup_config.env',
  );

  buffer.writeln('# ${config.baseClassName} Setup Guide');
  buffer.writeln();
  buffer.writeln('Generated by Oracular for `${config.appName}`.');
  buffer.writeln();

  buffer.writeln('## 1. Open And Run');
  buffer.writeln();
  buffer.writeln('- Main project: `$mainPath`');
  buffer.writeln('- Run:');
  buffer.writeln();
  buffer.writeln('```bash');
  buffer.writeln('cd $mainPath');
  buffer.writeln(runCommand(config));
  buffer.writeln('```');
  buffer.writeln();

  buffer.writeln('## 2. Created Folders');
  buffer.writeln();
  for (final String item in createdProjectItems(config)) {
    buffer.writeln('- $item');
  }
  buffer.writeln();

  buffer.writeln('## 3. Oracular Commands');
  buffer.writeln();
  buffer.writeln('```bash');
  buffer.writeln('oracular guide');
  buffer.writeln('oracular open guide');
  buffer.writeln('oracular open app');
  buffer.writeln('oracular open root');
  if (config.useFirebase) {
    buffer.writeln('oracular open firebase');
    buffer.writeln('oracular open auth');
    buffer.writeln('oracular open firestore');
    buffer.writeln('oracular open storage');
    if (supportsWebHosting(config)) {
      buffer.writeln('oracular open hosting');
    }
  }
  if (config.createServer) {
    buffer.writeln('oracular open server');
    if (config.firebaseProjectId != null) {
      buffer.writeln('oracular open service-account');
      buffer.writeln('oracular open cloud-run');
    }
  }
  buffer.writeln('```');
  buffer.writeln();

  if (config.useFirebase && config.firebaseProjectId != null) {
    _writeFirebaseGuide(buffer, config);
  } else {
    buffer.writeln('## 4. Enable Firebase Later');
    buffer.writeln();
    buffer.writeln('- Edit `$configPath`.');
    buffer.writeln('- Set `USE_FIREBASE=yes`.');
    buffer.writeln('- Set `FIREBASE_PROJECT_ID=<your-project-id>`.');
    buffer.writeln('- Run `oracular deploy firebase-setup-full`.');
    buffer.writeln('- Open Firebase: <$_firebaseConsoleBase>');
    buffer.writeln();
  }

  if (config.createServer) {
    _writeServerGuide(buffer, config);
  }

  if (config.template.isJasprDocs) {
    buffer.writeln('## Jaspr Docs Dependencies');
    buffer.writeln();
    buffer.writeln(
      '- Local deps: `${p.join(config.outputDir, '.oracular_deps')}`',
    );
    buffer.writeln(
      '- Keep `.oracular_deps/` next to `${config.webPackageName}/`.',
    );
    buffer.writeln();
  }

  buffer.writeln('## Troubleshooting');
  buffer.writeln();
  buffer.writeln('- Check tools: `oracular check tools`');
  buffer.writeln('- Check Firebase tools: `oracular check firebase`');
  buffer.writeln(
    '- Regenerate Firebase config: `oracular deploy generate-configs`',
  );

  return buffer.toString();
}