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):
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)
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':
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: