From 20a042faa91acf8db78684de9f38c4e628d61dd6 Mon Sep 17 00:00:00 2001 From: vladmos Date: Fri, 1 Jun 2018 04:51:21 -0700 Subject: Format all bzl files with buildifier This CL aslo enables a presubmit check for correct formatting of all bzl files in //third_party/bazel. PiperOrigin-RevId: 198857055 --- tools/build_defs/pkg/pkg.bzl | 390 ++++++++++++++++++++++--------------------- 1 file changed, 201 insertions(+), 189 deletions(-) (limited to 'tools/build_defs/pkg/pkg.bzl') diff --git a/tools/build_defs/pkg/pkg.bzl b/tools/build_defs/pkg/pkg.bzl index 8cbe03ceec..f18a736d87 100644 --- a/tools/build_defs/pkg/pkg.bzl +++ b/tools/build_defs/pkg/pkg.bzl @@ -12,251 +12,263 @@ # See the License for the specific language governing permissions and # limitations under the License. """Rules for manipulation of various packaging.""" -load(":path.bzl", "dest_path", "compute_data_path") + +load(":path.bzl", "compute_data_path", "dest_path") # Filetype to restrict inputs tar_filetype = [".tar", ".tar.gz", ".tgz", ".tar.xz", ".tar.bz2"] deb_filetype = [".deb", ".udeb"] def _pkg_tar_impl(ctx): - """Implementation of the pkg_tar rule.""" - # Compute the relative path - data_path = compute_data_path(ctx.outputs.out, ctx.attr.strip_prefix) + """Implementation of the pkg_tar rule.""" - build_tar = ctx.executable.build_tar - args = [ - "--output=" + ctx.outputs.out.path, - "--directory=" + ctx.attr.package_dir, - "--mode=" + ctx.attr.mode, - "--owner=" + ctx.attr.owner, - "--owner_name=" + ctx.attr.ownername, - ] + # Compute the relative path + data_path = compute_data_path(ctx.outputs.out, ctx.attr.strip_prefix) - file_inputs = ctx.files.srcs[:] + build_tar = ctx.executable.build_tar + args = [ + "--output=" + ctx.outputs.out.path, + "--directory=" + ctx.attr.package_dir, + "--mode=" + ctx.attr.mode, + "--owner=" + ctx.attr.owner, + "--owner_name=" + ctx.attr.ownername, + ] - # Add runfiles if requested - if ctx.attr.include_runfiles: - for f in ctx.attr.srcs: - if hasattr(f, "default_runfiles"): - run_files = f.default_runfiles.files.to_list() - file_inputs += run_files + file_inputs = ctx.files.srcs[:] - args += ["--file=%s=%s" % (f.path, dest_path(f, data_path)) - for f in file_inputs] - for target, f_dest_path in ctx.attr.files.items(): - target_files = target.files.to_list() - if len(target_files) != 1: - fail("Inputs to pkg_tar.files_map must describe exactly one file.") - file_inputs += [target_files[0]] - args += ["--file=%s=%s" % (target_files[0].path, f_dest_path)] - if ctx.attr.modes: - args += ["--modes=%s=%s" % (key, ctx.attr.modes[key]) for key in ctx.attr.modes] - if ctx.attr.owners: - args += ["--owners=%s=%s" % (key, ctx.attr.owners[key]) for key in ctx.attr.owners] - if ctx.attr.ownernames: - args += ["--owner_names=%s=%s" % (key, ctx.attr.ownernames[key]) - for key in ctx.attr.ownernames] - if ctx.attr.empty_files: - args += ["--empty_file=%s" % empty_file for empty_file in ctx.attr.empty_files] - if ctx.attr.empty_dirs: - args += ["--empty_dir=%s" % empty_dir for empty_dir in ctx.attr.empty_dirs] - if ctx.attr.extension: - dotPos = ctx.attr.extension.find('.') - if dotPos > 0: - dotPos += 1 - args += ["--compression=%s" % ctx.attr.extension[dotPos:]] - args += ["--tar=" + f.path for f in ctx.files.deps] - args += ["--link=%s:%s" % (k, ctx.attr.symlinks[k]) - for k in ctx.attr.symlinks] - arg_file = ctx.actions.declare_file(ctx.label.name + ".args") - ctx.actions.write(arg_file, "\n".join(args)) + # Add runfiles if requested + if ctx.attr.include_runfiles: + for f in ctx.attr.srcs: + if hasattr(f, "default_runfiles"): + run_files = f.default_runfiles.files.to_list() + file_inputs += run_files - ctx.actions.run_shell( - command = "%s --flagfile=%s" % (build_tar.path, arg_file.path), - inputs = file_inputs + ctx.files.deps + [arg_file, build_tar], - outputs = [ctx.outputs.out], - mnemonic="PackageTar", - use_default_shell_env = True, - ) + args += [ + "--file=%s=%s" % (f.path, dest_path(f, data_path)) + for f in file_inputs + ] + for target, f_dest_path in ctx.attr.files.items(): + target_files = target.files.to_list() + if len(target_files) != 1: + fail("Inputs to pkg_tar.files_map must describe exactly one file.") + file_inputs += [target_files[0]] + args += ["--file=%s=%s" % (target_files[0].path, f_dest_path)] + if ctx.attr.modes: + args += ["--modes=%s=%s" % (key, ctx.attr.modes[key]) for key in ctx.attr.modes] + if ctx.attr.owners: + args += ["--owners=%s=%s" % (key, ctx.attr.owners[key]) for key in ctx.attr.owners] + if ctx.attr.ownernames: + args += [ + "--owner_names=%s=%s" % (key, ctx.attr.ownernames[key]) + for key in ctx.attr.ownernames + ] + if ctx.attr.empty_files: + args += ["--empty_file=%s" % empty_file for empty_file in ctx.attr.empty_files] + if ctx.attr.empty_dirs: + args += ["--empty_dir=%s" % empty_dir for empty_dir in ctx.attr.empty_dirs] + if ctx.attr.extension: + dotPos = ctx.attr.extension.find(".") + if dotPos > 0: + dotPos += 1 + args += ["--compression=%s" % ctx.attr.extension[dotPos:]] + args += ["--tar=" + f.path for f in ctx.files.deps] + args += [ + "--link=%s:%s" % (k, ctx.attr.symlinks[k]) + for k in ctx.attr.symlinks + ] + arg_file = ctx.actions.declare_file(ctx.label.name + ".args") + ctx.actions.write(arg_file, "\n".join(args)) + ctx.actions.run_shell( + command = "%s --flagfile=%s" % (build_tar.path, arg_file.path), + inputs = file_inputs + ctx.files.deps + [arg_file, build_tar], + outputs = [ctx.outputs.out], + mnemonic = "PackageTar", + use_default_shell_env = True, + ) def _pkg_deb_impl(ctx): - """The implementation for the pkg_deb rule.""" - files = [ctx.file.data] - args = [ - "--output=" + ctx.outputs.deb.path, - "--changes=" + ctx.outputs.changes.path, - "--data=" + ctx.file.data.path, - "--package=" + ctx.attr.package, - "--architecture=" + ctx.attr.architecture, - "--maintainer=" + ctx.attr.maintainer, - ] - if ctx.attr.preinst: - args += ["--preinst=@" + ctx.file.preinst.path] - files += [ctx.file.preinst] - if ctx.attr.postinst: - args += ["--postinst=@" + ctx.file.postinst.path] - files += [ctx.file.postinst] - if ctx.attr.prerm: - args += ["--prerm=@" + ctx.file.prerm.path] - files += [ctx.file.prerm] - if ctx.attr.postrm: - args += ["--postrm=@" + ctx.file.postrm.path] - files += [ctx.file.postrm] + """The implementation for the pkg_deb rule.""" + files = [ctx.file.data] + args = [ + "--output=" + ctx.outputs.deb.path, + "--changes=" + ctx.outputs.changes.path, + "--data=" + ctx.file.data.path, + "--package=" + ctx.attr.package, + "--architecture=" + ctx.attr.architecture, + "--maintainer=" + ctx.attr.maintainer, + ] + if ctx.attr.preinst: + args += ["--preinst=@" + ctx.file.preinst.path] + files += [ctx.file.preinst] + if ctx.attr.postinst: + args += ["--postinst=@" + ctx.file.postinst.path] + files += [ctx.file.postinst] + if ctx.attr.prerm: + args += ["--prerm=@" + ctx.file.prerm.path] + files += [ctx.file.prerm] + if ctx.attr.postrm: + args += ["--postrm=@" + ctx.file.postrm.path] + files += [ctx.file.postrm] - # Conffiles can be specified by a file or a string list - if ctx.attr.conffiles_file: - if ctx.attr.conffiles: - fail("Both conffiles and conffiles_file attributes were specified") - args += ["--conffile=@" + ctx.file.conffiles_file.path] - files += [ctx.file.conffiles_file] - elif ctx.attr.conffiles: - args += ["--conffile=%s" % cf for cf in ctx.attr.conffiles] + # Conffiles can be specified by a file or a string list + if ctx.attr.conffiles_file: + if ctx.attr.conffiles: + fail("Both conffiles and conffiles_file attributes were specified") + args += ["--conffile=@" + ctx.file.conffiles_file.path] + files += [ctx.file.conffiles_file] + elif ctx.attr.conffiles: + args += ["--conffile=%s" % cf for cf in ctx.attr.conffiles] - # Version and description can be specified by a file or inlined - if ctx.attr.version_file: - if ctx.attr.version: - fail("Both version and version_file attributes were specified") - args += ["--version=@" + ctx.file.version_file.path] - files += [ctx.file.version_file] - elif ctx.attr.version: - args += ["--version=" + ctx.attr.version] - else: - fail("Neither version_file nor version attribute was specified") + # Version and description can be specified by a file or inlined + if ctx.attr.version_file: + if ctx.attr.version: + fail("Both version and version_file attributes were specified") + args += ["--version=@" + ctx.file.version_file.path] + files += [ctx.file.version_file] + elif ctx.attr.version: + args += ["--version=" + ctx.attr.version] + else: + fail("Neither version_file nor version attribute was specified") - if ctx.attr.description_file: - if ctx.attr.description: - fail("Both description and description_file attributes were specified") - args += ["--description=@" + ctx.file.description_file.path] - files += [ctx.file.description_file] - elif ctx.attr.description: - args += ["--description=" + ctx.attr.description] - else: - fail("Neither description_file nor description attribute was specified") + if ctx.attr.description_file: + if ctx.attr.description: + fail("Both description and description_file attributes were specified") + args += ["--description=@" + ctx.file.description_file.path] + files += [ctx.file.description_file] + elif ctx.attr.description: + args += ["--description=" + ctx.attr.description] + else: + fail("Neither description_file nor description attribute was specified") - # Built using can also be specified by a file or inlined (but is not mandatory) - if ctx.attr.built_using_file: - if ctx.attr.built_using: - fail("Both build_using and built_using_file attributes were specified") - args += ["--built_using=@" + ctx.file.built_using_file.path] - files += [ctx.file.built_using_file] - elif ctx.attr.built_using: - args += ["--built_using=" + ctx.attr.built_using] + # Built using can also be specified by a file or inlined (but is not mandatory) + if ctx.attr.built_using_file: + if ctx.attr.built_using: + fail("Both build_using and built_using_file attributes were specified") + args += ["--built_using=@" + ctx.file.built_using_file.path] + files += [ctx.file.built_using_file] + elif ctx.attr.built_using: + args += ["--built_using=" + ctx.attr.built_using] - if ctx.attr.priority: - args += ["--priority=" + ctx.attr.priority] - if ctx.attr.section: - args += ["--section=" + ctx.attr.section] - if ctx.attr.homepage: - args += ["--homepage=" + ctx.attr.homepage] + if ctx.attr.priority: + args += ["--priority=" + ctx.attr.priority] + if ctx.attr.section: + args += ["--section=" + ctx.attr.section] + if ctx.attr.homepage: + args += ["--homepage=" + ctx.attr.homepage] - args += ["--distribution=" + ctx.attr.distribution] - args += ["--urgency=" + ctx.attr.urgency] - args += ["--depends=" + d for d in ctx.attr.depends] - args += ["--suggests=" + d for d in ctx.attr.suggests] - args += ["--enhances=" + d for d in ctx.attr.enhances] - args += ["--conflicts=" + d for d in ctx.attr.conflicts] - args += ["--pre_depends=" + d for d in ctx.attr.predepends] - args += ["--recommends=" + d for d in ctx.attr.recommends] + args += ["--distribution=" + ctx.attr.distribution] + args += ["--urgency=" + ctx.attr.urgency] + args += ["--depends=" + d for d in ctx.attr.depends] + args += ["--suggests=" + d for d in ctx.attr.suggests] + args += ["--enhances=" + d for d in ctx.attr.enhances] + args += ["--conflicts=" + d for d in ctx.attr.conflicts] + args += ["--pre_depends=" + d for d in ctx.attr.predepends] + args += ["--recommends=" + d for d in ctx.attr.recommends] - ctx.action( - executable = ctx.executable.make_deb, - arguments = args, - inputs = files, - outputs = [ctx.outputs.deb, ctx.outputs.changes], - mnemonic="MakeDeb" - ) - ctx.action( - command = "ln -s %s %s" % (ctx.outputs.deb.basename, ctx.outputs.out.path), - inputs = [ctx.outputs.deb], - outputs = [ctx.outputs.out]) + ctx.action( + executable = ctx.executable.make_deb, + arguments = args, + inputs = files, + outputs = [ctx.outputs.deb, ctx.outputs.changes], + mnemonic = "MakeDeb", + ) + ctx.action( + command = "ln -s %s %s" % (ctx.outputs.deb.basename, ctx.outputs.out.path), + inputs = [ctx.outputs.deb], + outputs = [ctx.outputs.out], + ) # A rule for creating a tar file, see README.md _real_pkg_tar = rule( implementation = _pkg_tar_impl, attrs = { "strip_prefix": attr.string(), - "package_dir": attr.string(default="/"), - "deps": attr.label_list(allow_files=tar_filetype), - "srcs": attr.label_list(allow_files=True), - "files": attr.label_keyed_string_dict(allow_files=True), - "mode": attr.string(default="0555"), + "package_dir": attr.string(default = "/"), + "deps": attr.label_list(allow_files = tar_filetype), + "srcs": attr.label_list(allow_files = True), + "files": attr.label_keyed_string_dict(allow_files = True), + "mode": attr.string(default = "0555"), "modes": attr.string_dict(), - "owner": attr.string(default="0.0"), - "ownername": attr.string(default="."), + "owner": attr.string(default = "0.0"), + "ownername": attr.string(default = "."), "owners": attr.string_dict(), "ownernames": attr.string_dict(), - "extension": attr.string(default="tar"), + "extension": attr.string(default = "tar"), "symlinks": attr.string_dict(), "empty_files": attr.string_list(), - "include_runfiles": attr.bool(default=False, mandatory=False), + "include_runfiles": attr.bool(default = False, mandatory = False), "empty_dirs": attr.string_list(), # Implicit dependencies. "build_tar": attr.label( - default=Label("//tools/build_defs/pkg:build_tar"), - cfg="host", - executable=True, - allow_files=True) + default = Label("//tools/build_defs/pkg:build_tar"), + cfg = "host", + executable = True, + allow_files = True, + ), }, outputs = { "out": "%{name}.%{extension}", }, - executable = False) + executable = False, +) def pkg_tar(**kwargs): - # Compatibility with older versions of pkg_tar that define files as - # a flat list of labels. - if "srcs" not in kwargs: - if "files" in kwargs: - if not hasattr(kwargs["files"], "items"): - label = "%s//%s:%s" % (native.repository_name(), native.package_name(), kwargs["name"]) - print("%s: you provided a non dictionary to the pkg_tar `files` attribute. " % (label,) + - "This attribute was renamed to `srcs`. " + - "Consider renaming it in your BUILD file.") - kwargs["srcs"] = kwargs.pop("files") - _real_pkg_tar(**kwargs) + # Compatibility with older versions of pkg_tar that define files as + # a flat list of labels. + if "srcs" not in kwargs: + if "files" in kwargs: + if not hasattr(kwargs["files"], "items"): + label = "%s//%s:%s" % (native.repository_name(), native.package_name(), kwargs["name"]) + print("%s: you provided a non dictionary to the pkg_tar `files` attribute. " % (label,) + + "This attribute was renamed to `srcs`. " + + "Consider renaming it in your BUILD file.") + kwargs["srcs"] = kwargs.pop("files") + _real_pkg_tar(**kwargs) # A rule for creating a deb file, see README.md pkg_deb = rule( implementation = _pkg_deb_impl, attrs = { - "data": attr.label(mandatory=True, allow_files=tar_filetype, single_file=True), - "package": attr.string(mandatory=True), - "architecture": attr.string(default="all"), - "distribution": attr.string(default="unstable"), - "urgency": attr.string(default="medium"), - "maintainer": attr.string(mandatory=True), - "preinst": attr.label(allow_files=True, single_file=True), - "postinst": attr.label(allow_files=True, single_file=True), - "prerm": attr.label(allow_files=True, single_file=True), - "postrm": attr.label(allow_files=True, single_file=True), - "conffiles_file": attr.label(allow_files=True, single_file=True), - "conffiles": attr.string_list(default=[]), - "version_file": attr.label(allow_files=True, single_file=True), + "data": attr.label(mandatory = True, allow_files = tar_filetype, single_file = True), + "package": attr.string(mandatory = True), + "architecture": attr.string(default = "all"), + "distribution": attr.string(default = "unstable"), + "urgency": attr.string(default = "medium"), + "maintainer": attr.string(mandatory = True), + "preinst": attr.label(allow_files = True, single_file = True), + "postinst": attr.label(allow_files = True, single_file = True), + "prerm": attr.label(allow_files = True, single_file = True), + "postrm": attr.label(allow_files = True, single_file = True), + "conffiles_file": attr.label(allow_files = True, single_file = True), + "conffiles": attr.string_list(default = []), + "version_file": attr.label(allow_files = True, single_file = True), "version": attr.string(), - "description_file": attr.label(allow_files=True, single_file=True), + "description_file": attr.label(allow_files = True, single_file = True), "description": attr.string(), - "built_using_file": attr.label(allow_files=True, single_file=True), + "built_using_file": attr.label(allow_files = True, single_file = True), "built_using": attr.string(), "priority": attr.string(), "section": attr.string(), "homepage": attr.string(), - "depends": attr.string_list(default=[]), - "suggests": attr.string_list(default=[]), - "enhances": attr.string_list(default=[]), - "conflicts": attr.string_list(default=[]), - "predepends": attr.string_list(default=[]), - "recommends": attr.string_list(default=[]), + "depends": attr.string_list(default = []), + "suggests": attr.string_list(default = []), + "enhances": attr.string_list(default = []), + "conflicts": attr.string_list(default = []), + "predepends": attr.string_list(default = []), + "recommends": attr.string_list(default = []), # Implicit dependencies. "make_deb": attr.label( - default=Label("//tools/build_defs/pkg:make_deb"), - cfg="host", - executable=True, - allow_files=True) + default = Label("//tools/build_defs/pkg:make_deb"), + cfg = "host", + executable = True, + allow_files = True, + ), }, outputs = { "out": "%{name}.deb", "deb": "%{package}_%{version}_%{architecture}.deb", - "changes": "%{package}_%{version}_%{architecture}.changes" + "changes": "%{package}_%{version}_%{architecture}.changes", }, - executable = False) + executable = False, +) -- cgit v1.2.3