Exemplo n.º 1
0
    from fb.nuclide_config import EXTRA_NODE_PATHS, OPEN_PORTS, HOME_FOLDER
except ImportError as e:
    # Default extra $PATH elements for Node v0.12.
    EXTRA_NODE_PATHS = []
    # Default open ports.
    OPEN_PORTS = [9090, 9091, 9092, 9093]
    # Default home folder.
    HOME_FOLDER = os.path.expanduser('~')
    pass

# Certificates store is ~/.certs
CERTS_DIR = os.path.join(HOME_FOLDER, '.certs')
CERTS_EXPIRATION_DAYS = 7
NODE_PATHS = EXTRA_NODE_PATHS + ['/opt/local/bin', '/usr/local/bin']

configure_nuclide_logger()

# This class manages Nuclide servers.


class NuclideServerManager(object):
    version_file = os.path.join(
        os.path.dirname(__file__),
        '../node_modules/nuclide-version/version.json')
    logger = logging.getLogger('NuclideServerManager')

    def __init__(self, options):
        self.options = options
        self.logger.info('NuclideServerManager was created with these options: {0}'.format(options))

    def _is_port_open(self, port):
Exemplo n.º 2
0
                      action="store_true",
                      default=True)
    parser.add_option(
        '-j',
        '--json-output-file',
        type=str,
        help='Save json format output into a file, only for `start` command',
        default=None)
    return parser


if __name__ == '__main__':
    parser = get_option_parser()
    options, args = parser.parse_args(sys.argv[1:])

    configure_nuclide_logger(options.verbose)

    logger = logging.getLogger()
    logger.info('Invoked nuclide_server_manager...')

    if sys.platform == 'darwin':
        os.environ['PATH'] = darwin_path_helper(
        ) + os.pathsep + os.environ.get('PATH', '')

    manager = NuclideServerManager(options)
    manager.cleanup()

    # Enable core dump by change ulimit to infinity.
    if options.dump_core:
        try:
            _, hard_limit = resource.getrlimit(resource.RLIMIT_CORE)
Exemplo n.º 3
0
                      default='start')
    parser.add_option('-q',
                      '--quiet',
                      help='suppress nohup logging',
                      action="store_true",
                      default=False)
    parser.add_option(
        '--debug',
        help='Start in debugger. Only use this flag interactively',
        action="store_true",
        default=False)
    return parser


if __name__ == '__main__':
    configure_nuclide_logger()
    logger = logging.getLogger()
    logger.info('Invoked nuclide_server_manager...')

    os.environ['PATH'] = os.pathsep.join(
        NODE_PATHS) + os.pathsep + os.environ.get('PATH', '')
    parser = get_option_parser()
    options, args = parser.parse_args(sys.argv[1:])

    manager = NuclideServerManager(options)
    manager.cleanup()
    if options.command == 'start':
        ret = manager.start_nuclide()
        print('The log file can be found at %s.' % LOG_FILE, file=sys.stderr)
    elif options.command == 'list' or options.command == 'listall':
        if options.command == 'listall':
Exemplo n.º 4
0
        help='Save json format output into a file, only for `start` command',
        default=None)
    return parser


if __name__ == '__main__':
    logger = logging.getLogger()
    logger.info('Invoked nuclide_server_manager...')

    os.environ['PATH'] = os.pathsep.join(NODE_PATHS) + os.pathsep + os.environ.get('PATH', '')
    parser = get_option_parser()
    options, args = parser.parse_args(sys.argv[1:])

    manager = NuclideServerManager(options)
    manager.cleanup()
    configure_nuclide_logger(options.verbose)

    # Enable core dump by change ulimit to infinity.
    if options.dump_core:
        try:
            _, hard_limit = resource.getrlimit(resource.RLIMIT_CORE)
            resource.setrlimit(resource.RLIMIT_CORE, (resource.RLIM_INFINITY, hard_limit))
        except Exception as e:
            logger.warn('Failed to enable core dump', e)

    # Clean up old core dumps. They're pretty large, so don't hog disk space.
    try:
        # By default, node core dumps are saved as 'node.<pid>'.
        # We can't be sure that these were actually Nuclide dumps, but they're temporary anyway.
        cores = filter(lambda x: x.startswith('node.'), os.listdir(CORE_DUMP_PATH))
        if len(cores) > MAX_CORE_DUMPS: