blob: 82ed62c8d43f3fa9f0fe2ecda7a35c187ad9049f [file] [log] [blame]
#!/usr/bin/env python
from __future__ import print_function
import os
import sys
import zipfile
from buck_tool import BuckToolException, RestartBuck
from buck_project import BuckProject, NoBuckConfigFoundException
THIS_DIR = os.path.dirname(os.path.realpath(__file__))
def main(argv):
with BuckProject.from_current_dir() as project:
# Try to detect if we're running a PEX by checking if we were invoked
# via a zip file.
if zipfile.is_zipfile(argv[0]):
from buck_package import BuckPackage
buck_repo = BuckPackage(project)
else:
from buck_repo import BuckRepo
buck_repo = BuckRepo(THIS_DIR, project)
if '--help' in argv:
print("Specify --kill to kill buckd.", file=sys.stderr)
return 0
buck_repo.kill_buckd()
if '--kill' in sys.argv:
return 0
return buck_repo.launch_buckd()
if __name__ == "__main__":
try:
sys.exit(main(sys.argv))
except RestartBuck:
os.execvp(os.path.join(os.path.dirname(THIS_DIR), 'bin', 'buckd'), sys.argv)
except (BuckToolException, NoBuckConfigFoundException) as e:
print(str(e), file=sys.stderr)
sys.exit(1)
except KeyboardInterrupt:
sys.exit(1)