Skip to content

Commit

Permalink
fix: Add files to be created by create.
Browse files Browse the repository at this point in the history
  • Loading branch information
mathrunet committed Jan 2, 2023
1 parent 63d84ca commit 13fddc0
Show file tree
Hide file tree
Showing 6 changed files with 142 additions and 9 deletions.
16 changes: 16 additions & 0 deletions packages/katana_cli/lib/code/katana.dart
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,23 @@ app:
url:
email:
# Create a `CertificateSigningRequest.certSigningRequest` for iOS.
# Please include your support email address in [email].
# iOS用の`CertificateSigningRequest.certSigningRequest`を作成します。
# [email]にサポート用のEmailアドレスを記載してください。
csr:
email:
# Create a keystore for Android.
# Enter the alias of the keystore in [alias], the common name in [name], the organization name in [organization], the state or province in [state], and the country in [country].
# Android用のkeystoreを作成します。
# [alias]にkeystoreのエイリアス、[name]に共通名、[organization]に組織名、[state]に州や都道府県、[country]に国名を入力してください。
keystore:
alias:
name:
organization:
state: Tokyo
country: Japan
""";
}
}
46 changes: 46 additions & 0 deletions packages/katana_cli/lib/code/katana_secrets.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
part of katana_cli;

/// Contents of katana.yaml.
///
/// katana_secrets.yamlの中身。
class KatanaSecretsCliCode extends CliCode {
/// Contents of katana.yaml.
///
/// katana_secrets.yamlの中身。
const KatanaSecretsCliCode();

@override
String get name => "katana_secrets";

@override
String get prefix => "katana_secrets";

@override
String get directory => "";

@override
String get description =>
"Create katana_secrets.yaml for katana_cli. katana_cli用のkatana_secrets.yamlを作成します。";

@override
String import(String path, String baseName, String className) {
return "";
}

@override
String header(String path, String baseName, String className) {
return "";
}

@override
String body(String path, String baseName, String className) {
return r"""
# Describe Github secret information.
# Githubのシークレット情報を記述します。
github:
# Please describe the Github token.
# Githubのトークンを記載してください。
token:
""";
}
}
41 changes: 41 additions & 0 deletions packages/katana_cli/lib/code/pubspec_overrides.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
part of katana_cli;

/// Contents of katana.yaml.
///
/// pubspec_overrides.yamlの中身。
class PubspecOverridesCliCode extends CliCode {
/// Contents of katana.yaml.
///
/// pubspec_overrides.yamlの中身。
const PubspecOverridesCliCode();

@override
String get name => "pubspec_overrides";

@override
String get prefix => "kapubspec_overridestana";

@override
String get directory => "";

@override
String get description =>
"Create pubspec_overrides.yaml for katana_cli. katana_cli用のpubspec_overrides.yamlを作成します。";

@override
String import(String path, String baseName, String className) {
return "";
}

@override
String header(String path, String baseName, String className) {
return "";
}

@override
String body(String path, String baseName, String className) {
return r"""
dependency_overrides:
""";
}
}
23 changes: 22 additions & 1 deletion packages/katana_cli/lib/command/create.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:io';

import 'package:katana_cli/katana_cli.dart';

/// Package to import.
Expand Down Expand Up @@ -56,7 +58,7 @@ class CreateCliCommand extends CliCommand {
Future<void> exec(ExecContext context) async {
final bin = context.yaml.getAsMap("bin");
final flutter = bin.get("flutter", "flutter");
final packageName = context.args.get(2, "");
final packageName = context.args.get(1, "");
if (packageName.isEmpty) {
print(
"Please provide the name of the package.\r\nパッケージ名を記載してください。\r\n\r\nkatana create [package name]",
Expand Down Expand Up @@ -116,6 +118,25 @@ class CreateCliCommand extends CliCommand {
}
label("Create a katana.yaml");
await const KatanaCliCode().generateFile("katana.yaml");
label("Create a katana_secrets.yaml");
await const KatanaSecretsCliCode().generateFile("katana_secrets.yaml");
label("Create a pubspec_overrides.yaml");
await const PubspecOverridesCliCode()
.generateFile("pubspec_overrides.yaml");
label("Rewrite `.gitignore`.");
final gitignore = File(".gitignore");
if (!gitignore.existsSync()) {
print("Cannot find `.gitignore`. Project is broken.");
return;
}
final gitignores = await gitignore.readAsLines();
if (!gitignores.any((e) => e.startsWith("pubspec_overrides.yaml"))) {
gitignores.add("pubspec_overrides.yaml");
}
if (!gitignores.any((e) => e.startsWith("katana_secrets.yaml"))) {
gitignores.add("katana_secrets.yaml");
}
await gitignore.writeAsString(gitignores.join("\n"));
await command(
"Run the project's build_runner to generate code.",
[
Expand Down
2 changes: 2 additions & 0 deletions packages/katana_cli/lib/katana_cli.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ part 'code/controller.dart';
part 'code/controller_group.dart';
part 'code/document_model.dart';
part 'code/katana.dart';
part 'code/katana_secrets.dart';
part 'code/pubspec_overrides.dart';
part 'code/launch.dart';
part 'code/main.dart';
part 'code/page.dart';
Expand Down
23 changes: 15 additions & 8 deletions packages/katana_cli/lib/src/framework.dart
Original file line number Diff line number Diff line change
Expand Up @@ -206,9 +206,11 @@ abstract class CliCode {
///
/// [directory]/[name].code-snippetsにVSCode用のコードスニペットファイルを作成します。
Future<void> generateCodeSnippet(String directory) async {
final dir = Directory(directory);
if (!dir.existsSync()) {
await dir.create(recursive: true);
if (directory.isNotEmpty) {
final dir = Directory(directory);
if (!dir.existsSync()) {
await dir.create(recursive: true);
}
}
final fileName = name.toSnakeCase();
final json = {
Expand Down Expand Up @@ -246,7 +248,9 @@ abstract class CliCode {
.split("\n")
}
};
await File("$directory/$fileName.code-snippets").writeAsString(
await File(
"${directory.isNotEmpty ? "$directory/" : ""}$fileName.code-snippets")
.writeAsString(
jsonEncode(json),
);
}
Expand All @@ -255,11 +259,14 @@ abstract class CliCode {
///
/// [directory]/[fileName]に特定のファイルを作成します。
Future<void> generateFile(String fileName) async {
final dir = Directory(directory);
if (!dir.existsSync()) {
await dir.create(recursive: true);
if (directory.isNotEmpty) {
final dir = Directory(directory);
if (!dir.existsSync()) {
await dir.create(recursive: true);
}
}
await File("$directory/$fileName").writeAsString(
await File("${directory.isNotEmpty ? "$directory/" : ""}$fileName")
.writeAsString(
"${import("", "", "")}${header("", "", "")}${body("", "", "")}",
);
}
Expand Down

0 comments on commit 13fddc0

Please sign in to comment.