dicker
Version:
Dicker - Trivial docker build system
161 lines (142 loc) • 3.65 kB
JavaScript
/**
* @fileOverview Constants
*/
/**
* @constant TASK_STATUS {Object}
* @type {{DONE: string, FAILED: string, RUNNING: string, SKIPPED: string, PENDING: string}}
*/
const TASK_STATUS = {
SKIPPED: 'SKIPPED',
PENDING: 'PENDING',
RUNNING: 'RUNNING',
DONE: 'DONE',
FAILED: 'FAILED',
UNKNOWN: 'UNKNOWN',
};
const TASK_TYPES = {
CONTROL: 'CONTROL',
DOCKER_BUILD: 'DOCKER_BUILD',
DOCKER_PUSH: 'DOCKER_PUSH',
COMMAND: 'COMMAND',
};
const DEFAULT_TASK_TYPE = TASK_TYPES.DOCKER_BUILD;
const DEFAULT_TASK_STATUS = TASK_STATUS.PENDING;
const DEAD_TASK_NAME = '$_dead_$';
/**
* @constant ROOT_TASK_NAME
* @type {string}
*/
const ROOT_TASK = {
type: TASK_TYPES.CONTROL,
dependsOn: [],
task: '$_root_task_$',
description: 'Root task (will not be executed)',
skip: false,
status: DEFAULT_TASK_STATUS,
};
/**
* @constant DEFAULT_MANIFEST_PATH
* @type {string}
*/
const DEFAULT_MANIFEST_PATH = './build.json';
/**
* @constant DEFAULT_IMAGE_NAME
* @type {string}
*/
const DEFAULT_IMAGE_NAME = 'latest';
/**
* @constant FACES
*
* - HAPPY `(^‿^)`
* - DEAD `[X.X]`
* - DEAD_FOR_28_DAYS `[X~x]`
* - NDE `[x.x]`
* - SURPRISED `[O.O]`
* - CALMED_DOWN `[o.o]`
* - DONT_GIVE ` -.- `
* - DIZZY ` ~_~ `
* - NOT_ME ` ._. `
* - HIDING ` _._ `
* - INSPECTOR: `[-.<]` `[>.<]` `[>.-]`
* - YES_BUT `[ ! ]`
*/
const FACES = {
HAPPY: '(^‿^)',
DEAD: '{X.X}',
DEAD_FOR_28_DAYS: '{X~x}',
NDE: '{x.x}',
AWAKENING: '[-.o]',
SURPRISED: '[O.O]',
CALMED_DOWN: '[o.o]',
DONT_GIVE: [' -.- ', ' -.~ ', ' ~.~ ', ' ~.- '],
DASH: ' - ',
DIZZY: '[~_~]',
NOT_ME: ' -.- ',
HIDING: ' _._ ',
INSPECTOR: ['[-.<]', '[-.o]', '[o.O]', '[o.°]', '[~.o]', '[-‿<]'],
YES_BUT: '( ! )',
};
const TASK_STATUS_TO_FACE = {
[TASK_STATUS.SKIPPED]: FACES.NOT_ME,
[TASK_STATUS.PENDING]: FACES.AWAKENING,
[TASK_STATUS.RUNNING]: FACES.SURPRISED,
[TASK_STATUS.DONE]: FACES.HAPPY,
[TASK_STATUS.FAILED]: FACES.DEAD,
[TASK_STATUS.UNKNOWN]: FACES.NDE,
};
const TASK_NAME_MAX_LEN = 32;
const TASK_STATUS_MAX_LEN = Object.keys(TASK_STATUS)
.map(ts => ts.length)
.sort((a, b) => (b - a))[0];
const TASK_TYPE_MAX_LEN = Object.keys(TASK_TYPES)
.map(ts => ts.length)
.sort((a, b) => (b - a))[0];
const SEP = `${'-'.repeat(16)}`;
const DEFAULT_DOCKER_PUBLIC_REGISTRY = 'docker.io/';
const DEFAULT_NAME = 'dicker-default';
const LEGACY_DEFAULT_DOMAIN = 'index.docker.io';
const DEFAULT_DOMAIN = 'docker.io';
const OFFICIAL_REPO_NAME = 'library';
const DEFAULT_TAG = 'latest';
const PATH_SEPARATOR = '/';
const LOCALHOST = 'localhost';
const POSSIBLE_EXTENSIONS = ['.json', '.yml', '.yaml'];
const DEFAULT_DOCKERFILE_NAME = 'Dockerfile';
const DEFAULT_ENCODING = 'utf8';
const DOCKER_ARGS_DEFAULT = ['--force-rm'];
const DEFAULT_DIGEST_ALGORITHM = 'sha256';
const DEFAULT_REFERENCE = {
domain: DEFAULT_DOMAIN,
repository: OFFICIAL_REPO_NAME,
tag: DEFAULT_TAG,
digestAlgorithm: DEFAULT_DIGEST_ALGORITHM,
};
module.exports = {
DEAD_TASK_NAME,
DOCKER_ARGS_DEFAULT,
DEFAULT_REFERENCE,
DEFAULT_DOCKER_PUBLIC_REGISTRY,
DEFAULT_DOCKERFILE_NAME,
DEFAULT_DOMAIN,
DEFAULT_ENCODING,
DEFAULT_IMAGE_NAME,
DEFAULT_MANIFEST_PATH,
DEFAULT_NAME,
DEFAULT_TAG,
DEFAULT_TASK_STATUS,
DEFAULT_TASK_TYPE,
FACES,
LEGACY_DEFAULT_DOMAIN,
LOCALHOST,
OFFICIAL_REPO_NAME,
PATH_SEPARATOR,
POSSIBLE_EXTENSIONS,
ROOT_TASK,
SEP,
TASK_NAME_MAX_LEN,
TASK_STATUS,
TASK_STATUS_MAX_LEN,
TASK_STATUS_TO_FACE,
TASK_TYPE_MAX_LEN,
TASK_TYPES,
};