blob: e6334afbae7fdf644be8be728b08daad9f195071 [file] [log] [blame]
// Copyright 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/// Exit code constants.
///
/// [Source](https://www.freebsd.org/cgi/man.cgi?query=sysexits).
class ExitCode {
/// Command completed successfully.
static const success = ExitCode._(0, 'success');
/// Command was used incorrectly.
///
/// This may occur if the wrong number of arguments was used, a bad flag, or
/// bad syntax in a parameter.
static const usage = ExitCode._(64, 'usage');
/// Input data was used incorrectly.
///
/// This should occur only for user data (not system files).
static const data = ExitCode._(65, 'data');
/// An input file (not a system file) did not exist or was not readable.
static const noInput = ExitCode._(66, 'noInput');
/// User specified did not exist.
static const noUser = ExitCode._(67, 'noUser');
/// Host specified did not exist.
static const noHost = ExitCode._(68, 'noHost');
/// A service is unavailable.
///
/// This may occur if a support program or file does not exist. This may also
/// be used as a catch-all error when something you wanted to do does not
/// work, but you do not know why.
static const unavailable = ExitCode._(69, 'unavailable');
/// An internal software error has been detected.
///
/// This should be limited to non-operating system related errors as possible.
static const software = ExitCode._(70, 'software');
/// An operating system error has been detected.
///
/// This intended to be used for such thing as `cannot fork` or `cannot pipe`.
static const osError = ExitCode._(71, 'osError');
/// Some system file (e.g. `/etc/passwd`) does not exist or could not be read.
static const osFile = ExitCode._(72, 'osFile');
/// A (user specified) output file cannot be created.
static const cantCreate = ExitCode._(73, 'cantCreate');
/// An error occurred doing I/O on some file.
static const ioError = ExitCode._(74, 'ioError');
/// Temporary failure, indicating something is not really an error.
///
/// In some cases, this can be re-attempted and will succeed later.
static const tempFail = ExitCode._(75, 'tempFail');
/// You did not have sufficient permissions to perform the operation.
///
/// This is not intended for file system problems, which should use [noInput]
/// or [cantCreate], but rather for higher-level permissions.
static const noPerm = ExitCode._(77, 'noPerm');
/// Something was found in an unconfigured or misconfigured state.
static const config = ExitCode._(78, 'config');
/// Exit code value.
final int code;
/// Name of the exit code.
final String _name;
const ExitCode._(this.code, this._name);
@override
String toString() => '$_name: $code';
}