1# Copyright 2024 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15load("@rules_python//python:defs.bzl", "py_library") 16load("//pw_build:python.bzl", "pw_py_binary", "pw_py_test") 17 18package(default_visibility = ["//visibility:public"]) 19 20licenses(["notice"]) 21 22py_library( 23 name = "pw_watch", 24 srcs = [ 25 "pw_watch/__init__.py", 26 "pw_watch/argparser.py", 27 "pw_watch/common.py", 28 "pw_watch/debounce.py", 29 "pw_watch/run.py", 30 ], 31 imports = ["."], 32 deps = [ 33 "//pw_cli/py:pw_cli", 34 "@python_packages//watchdog", 35 ], 36) 37 38pw_py_binary( 39 name = "watch", 40 srcs = [ 41 "pw_watch/watch.py", 42 "pw_watch/watch_app.py", 43 ], 44 deps = [ 45 ":pw_watch", 46 "//pw_build/py:pw_project_builder", 47 "//pw_config_loader/py:pw_config_loader", 48 "//pw_console/py:pw_console", 49 "@python_packages//prompt_toolkit", 50 ], 51) 52 53pw_py_binary( 54 name = "bazel", 55 srcs = ["pw_watch/run.py"], 56 args = [ 57 "--keep-going", 58 "--prefix", 59 "bazelisk", 60 "--pw-watch-commands", 61 ], 62 main = "pw_watch/run.py", 63 deps = [":pw_watch"], 64) 65 66pw_py_binary( 67 name = "run", 68 srcs = ["pw_watch/run.py"], 69 deps = [":pw_watch"], 70) 71 72pw_py_test( 73 name = "watch_test", 74 srcs = ["watch_test.py"], 75 deps = [ 76 ":pw_watch", 77 ], 78) 79