Skip to content

Commit

Permalink
Rename runProc -> runConstrained and move related classes into src/to…
Browse files Browse the repository at this point in the history
…ol/run_constrained (#1302)

* Move runProc + related classes into src/tool/run_proc.dart.

* Rename runProc -> runConstrained
  • Loading branch information
isoos authored Dec 21, 2023
1 parent 937a14a commit 6811de8
Show file tree
Hide file tree
Showing 15 changed files with 299 additions and 283 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
## 0.22.0

**BREAKING CHANGES**

- Removed deprecated APIs.
- Renamed `runProc` -> `runWithTimeout`.

## 0.21.45

Expand Down
3 changes: 2 additions & 1 deletion lib/pana.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ export 'src/pubspec.dart';
export 'src/report/create_report.dart' show renderSimpleSectionSummary;
export 'src/sdk_env.dart';
export 'src/tag/pana_tags.dart';
export 'src/utils.dart' show runProc, yamlToJson, PanaProcessResult;
export 'src/tool/run_constrained.dart';
export 'src/utils.dart' show yamlToJson;
export 'src/version.dart';
2 changes: 1 addition & 1 deletion lib/src/code_problem.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ library pana.code_problem;
import 'package:path/path.dart' as p;

import 'internal_model.dart';
import 'sdk_env.dart' show ToolException;
import 'tool/run_constrained.dart' show ToolException;

// ignore: prefer_interpolation_to_compose_strings
final _regexp = RegExp('^' + // beginning of line
Expand Down
3 changes: 2 additions & 1 deletion lib/src/package_analyzer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import 'report/create_report.dart';
import 'sdk_env.dart';
import 'tag/pana_tags.dart';
import 'tag/tagger.dart';
import 'tool/run_constrained.dart';
import 'utils.dart';

class InspectOptions {
Expand Down Expand Up @@ -303,7 +304,7 @@ class PackageAnalyzer {
}

Future<String?> _detectGitRoot(String packageDir) async {
final pr = await runProc(
final pr = await runConstrained(
['git', 'rev-parse', '--show-toplevel'],
workingDirectory: packageDir,
);
Expand Down
1 change: 1 addition & 0 deletions lib/src/package_context.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import 'repository/check_repository.dart';
import 'screenshots.dart';
import 'sdk_env.dart';
import 'tag/license_tags.dart';
import 'tool/run_constrained.dart';
import 'utils.dart' show listFocusDirs;

/// Shared (intermediate) results between different packages or versions.
Expand Down
2 changes: 1 addition & 1 deletion lib/src/report/dependencies.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import '../logging.dart';
import '../model.dart';
import '../package_context.dart';
import '../pubspec.dart';
import '../sdk_env.dart';
import '../tool/run_constrained.dart';
import '../utils.dart';

import '_common.dart';
Expand Down
1 change: 1 addition & 0 deletions lib/src/report/static_analysis.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import '../logging.dart';
import '../model.dart';
import '../package_context.dart';
import '../sdk_env.dart';
import '../tool/run_constrained.dart';
import '../utils.dart';
import '_common.dart';

Expand Down
4 changes: 2 additions & 2 deletions lib/src/repository/git_local_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:retry/retry.dart';

import '../utils.dart' show runProc, PanaProcessResult;
import '../tool/run_constrained.dart';

final _acceptedBranchNameRegExp = RegExp(r'^[a-z0-9]+$');
final _acceptedPathSegmentsRegExp =
Expand Down Expand Up @@ -73,7 +73,7 @@ class GitLocalRepository {
int? maxOutputBytes,
GitToolException Function(PanaProcessResult pr)? createException,
}) async {
final pr = await runProc(
final pr = await runConstrained(
['git', ...args],
environment: {
'LANG': 'C', // default English locale that is always present
Expand Down
2 changes: 1 addition & 1 deletion lib/src/screenshots.dart
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ Future<List<String>> _generateThumbnails(
Future<PanaProcessResult> _checkedRunProc(List<String> cmdAndArgs) async {
PanaProcessResult result;
try {
result = await runProc(cmdAndArgs);
result = await runConstrained(cmdAndArgs);
} on ProcessException catch (e) {
stderr.write("'${cmdAndArgs[0]}' tool not found.");
return PanaProcessResult(-1, e.errorCode, e.message, e.message,
Expand Down
38 changes: 14 additions & 24 deletions lib/src/sdk_env.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import 'dart:convert';
import 'dart:io';

import 'package:cli_util/cli_util.dart' as cli;
import 'package:pana/src/pana_cache.dart';
import 'package:path/path.dart' as p;
import 'package:pub_semver/pub_semver.dart';

Expand All @@ -16,7 +15,9 @@ import 'internal_model.dart';
import 'logging.dart';
import 'model.dart' show PanaRuntimeInfo;
import 'package_analyzer.dart' show InspectOptions;
import 'pana_cache.dart';
import 'pubspec_io.dart';
import 'tool/run_constrained.dart';
import 'utils.dart';
import 'version.dart';

Expand Down Expand Up @@ -70,7 +71,7 @@ class ToolEnvironment {
PanaRuntimeInfo get runtimeInfo => _runtimeInfo!;

Future _init() async {
final dartVersionResult = _handleProcessErrors(await runProc(
final dartVersionResult = _handleProcessErrors(await runConstrained(
[..._dartSdk.dartCmd, '--version'],
environment: _environment));
final dartSdkInfo = DartSdkInfo.parse(dartVersionResult.asJoinedOutput);
Expand Down Expand Up @@ -180,7 +181,7 @@ class ToolEnvironment {
original: originalOptions, custom: rawOptionsContent);
try {
await analysisOptionsFile.writeAsString(customOptionsContent);
final proc = await runProc(
final proc = await runConstrained(
[...command, '--format', 'machine', dir],
environment: environment,
workingDirectory: packageDir,
Expand Down Expand Up @@ -236,7 +237,7 @@ class ToolEnvironment {
}
params.add(fullPath);

final result = await runProc(
final result = await runConstrained(
[..._dartSdk.dartCmd, ...params],
environment: environment,
timeout: _dartFormatTimeout,
Expand Down Expand Up @@ -274,8 +275,8 @@ class ToolEnvironment {
}

Future<Map<String, dynamic>> getFlutterVersion() async {
final result = _handleProcessErrors(
await runProc([..._flutterSdk.flutterCmd, '--version', '--machine']));
final result = _handleProcessErrors(await runConstrained(
[..._flutterSdk.flutterCmd, '--version', '--machine']));
final waitingForString = 'Waiting for another flutter';
return result.parseJson(transform: (content) {
if (content.contains(waitingForString)) {
Expand Down Expand Up @@ -311,7 +312,7 @@ class ToolEnvironment {
return await _withStripAndAugmentPubspecYaml(packageDir, () async {
return await _retryProc(() async {
if (usesFlutter) {
return await runProc(
return await runConstrained(
[
..._flutterSdk.flutterCmd,
'packages',
Expand All @@ -324,7 +325,7 @@ class ToolEnvironment {
environment: environment,
);
} else {
return await runProc(
return await runConstrained(
[
..._dartSdk.dartCmd,
'pub',
Expand Down Expand Up @@ -368,7 +369,7 @@ class ToolEnvironment {
final environment = _extendedEnv(usesFlutter: usesFlutter);
return await _withStripAndAugmentPubspecYaml(packageDir, () async {
Future<PanaProcessResult> runPubGet() async {
final pr = await runProc(
final pr = await runConstrained(
[...pubCmd, 'get', '--no-example'],
environment: environment,
workingDirectory: packageDir,
Expand Down Expand Up @@ -397,7 +398,7 @@ class ToolEnvironment {
);
}

final result = await runProc(
final result = await runConstrained(
[
...pubCmd,
'outdated',
Expand Down Expand Up @@ -461,7 +462,7 @@ class ToolEnvironment {

if (_useGlobalDartdoc) {
if (!_globalDartdocActivated) {
_handleProcessErrors(await runProc(
_handleProcessErrors(await runConstrained(
[
..._dartSdk.dartCmd,
'pub',
Expand All @@ -477,14 +478,14 @@ class ToolEnvironment {
));
_globalDartdocActivated = true;
}
pr = await runProc(
pr = await runConstrained(
[..._dartSdk.dartCmd, 'pub', 'global', 'run', 'dartdoc', ...args],
workingDirectory: packageDir,
environment: _environment,
timeout: timeout,
);
} else {
pr = await runProc(
pr = await runConstrained(
[..._dartSdk.dartCmd, 'doc', ...args],
workingDirectory: packageDir,
environment: _environment,
Expand Down Expand Up @@ -611,17 +612,6 @@ String _join(String? path, String binDir, String executable) {
return cmd;
}

class ToolException implements Exception {
final String message;
final ProcessOutput? stderr;
ToolException(this.message, [this.stderr]);

@override
String toString() {
return 'Exception: $message';
}
}

PanaProcessResult _handleProcessErrors(PanaProcessResult result) {
if (result.exitCode != 0) {
if (result.exitCode == 69) {
Expand Down
2 changes: 1 addition & 1 deletion lib/src/tag/_violations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ library;

import 'package:analyzer/dart/analysis/session.dart';

import '../sdk_env.dart' show ToolException;
import '../tool/run_constrained.dart' show ToolException;
import '_common.dart';
import '_graphs.dart';
import '_specs.dart';
Expand Down
Loading

0 comments on commit 6811de8

Please sign in to comment.