Skip to content

Commit

Permalink
feat: default playstore upload config to playstore_credentials.json
Browse files Browse the repository at this point in the history
  • Loading branch information
vanlooverenkoen committed Dec 11, 2023
1 parent 4ed3fdb commit ab55afe
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 11 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# 0.5.0

# Feat:
- `PlaystoreUploadConfig` will default to `android/playstore_credentials.json`

# 0.4.0

# Feat:
Expand Down
11 changes: 6 additions & 5 deletions lib/src/core/util/args/env/impaktfull_cli_environment.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ class ImpaktfullCliEnvironment {
static late ImpaktfullCliEnvironment _instance;

final bool verboseLoggingEnabled;
final Directory workingDir;
final Directory workingDirectory;
final bool isFvmProject;
final List<InstalledCliTool> allCliTools;

static bool get useFvmForFlutterBuilds => _instance.isFvmProject;
static ImpaktfullCliEnvironment get instance => _instance;

List<InstalledCliTool> get installedCliTools =>
allCliTools.where((element) => element.isInstalled).toList();
Expand All @@ -26,7 +26,7 @@ class ImpaktfullCliEnvironment {

const ImpaktfullCliEnvironment._({
required this.verboseLoggingEnabled,
required this.workingDir,
required this.workingDirectory,
required this.isFvmProject,
required this.allCliTools,
});
Expand All @@ -39,7 +39,7 @@ class ImpaktfullCliEnvironment {
final workingDir = Directory.current;
_instance = ImpaktfullCliEnvironment._(
verboseLoggingEnabled: isVerboseLoggingEnabled,
workingDir: workingDir,
workingDirectory: workingDir,
isFvmProject: await _checkIfActiveProjectIsFvm(workingDir),
allCliTools: await _checkInstalledTools(processRunner),
);
Expand Down Expand Up @@ -96,7 +96,8 @@ class ImpaktfullCliEnvironment {
ImpaktfullCliLogger.debugSeperator();
ImpaktfullCliLogger.debug(
'Operating system: ${OperatingSystem.current.name}');
ImpaktfullCliLogger.debug('Working Dir: `${_instance.workingDir.path}`');
ImpaktfullCliLogger.debug(
'Working Dir: `${_instance.workingDirectory.path}`');
ImpaktfullCliLogger.debug('Is fvm project: `${_instance.isFvmProject}`');
if (_instance.installedCliTools.isNotEmpty) {
ImpaktfullCliLogger.debug('Installed Tools:');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class FlutterBuildPlugin extends ImpaktfullCliPlugin {
int? buildNr,
}) async {
await processRunner.runProcessVerbose([
if (ImpaktfullCliEnvironment.useFvmForFlutterBuilds) ...[
if (ImpaktfullCliEnvironment.instance.isFvmProject) ...[
'fvm',
],
'flutter',
Expand Down Expand Up @@ -65,7 +65,7 @@ class FlutterBuildPlugin extends ImpaktfullCliPlugin {
int? buildNr,
}) async {
await processRunner.runProcessVerbose([
if (ImpaktfullCliEnvironment.useFvmForFlutterBuilds) ...[
if (ImpaktfullCliEnvironment.instance.isFvmProject) ...[
'fvm',
],
'flutter',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ import 'dart:io';

class PlayStoreUploadConfig {
/// service account credentials file
/// defaults to env variable value of `GOOGLE_SERVICE_ACCOUNT_JSON_RAW`
/// defaults to:
/// 1: file located at `android/playstore_credentials.json`
/// 2: env variable value of `GOOGLE_SERVICE_ACCOUNT_JSON_RAW`
final File? serviceAccountCredentialsFile;

const PlayStoreUploadConfig({
Expand Down
17 changes: 14 additions & 3 deletions lib/src/integrations/playstore/plugin/playstore_plugin.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import "package:googleapis_auth/auth_io.dart";
import 'package:impaktfull_cli/src/core/model/data/secret.dart';
import 'package:impaktfull_cli/src/core/model/error/impaktfull_cli_error.dart';
import 'package:impaktfull_cli/src/core/plugin/impaktfull_cli_plugin.dart';
import 'package:impaktfull_cli/src/core/util/args/env/impaktfull_cli_environment.dart';
import 'package:impaktfull_cli/src/core/util/args/env/impaktfull_cli_environment_variables.dart';
import 'package:impaktfull_cli/src/core/util/logger/logger.dart';
import 'package:path/path.dart';
Expand Down Expand Up @@ -69,10 +70,20 @@ class PlayStorePlugin extends ImpaktfullCliPlugin {

ServiceAccountCredentials _getServiceAccountCredentials(
File? serviceAccountCredentialsFile) {
var file = serviceAccountCredentialsFile;
if (file == null) {
final fallbackFile = File(join(
ImpaktfullCliEnvironment.instance.workingDirectory.path,
'android',
'playstore_credentials.json',
));
if (fallbackFile.existsSync()) {
file = fallbackFile;
}
}
Secret credentials;
if (serviceAccountCredentialsFile != null &&
serviceAccountCredentialsFile.existsSync()) {
credentials = Secret(serviceAccountCredentialsFile.readAsStringSync());
if (file != null && file.existsSync()) {
credentials = Secret(file.readAsStringSync());
} else {
credentials = ImpaktfullCliEnvironmentVariables
.getGoogleServiceAccountCredentials();
Expand Down

0 comments on commit ab55afe

Please sign in to comment.