# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

load("@bazel_gazelle//:def.bzl", "gazelle")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
load("@package_bundle//file:packages.bzl", "packages")
load("@rules_pkg//:pkg.bzl", "pkg_deb", "pkg_tar")

# gazelle:prefix github.com/GoogleCloudPlatform/cos-customizer
gazelle(name = "gazelle")

exports_files(glob(["src/data/**"]))

genrule(
    name = "workspace_dir",
    outs = ["workspace"],
    cmd = "mkdir $@",
)

genrule(
    name = "tmp_dir",
    outs = ["tmp"],
    cmd = "mkdir $@",
)

container_image(
    name = "veritysetup",
    debs = [
        packages["coreutils"],
        packages["tar"],
        packages["libacl1"],
        packages["libattr1"],
        packages["libc6"],
        packages["libselinux1"],
        packages["libpcre3"],
        packages["cryptsetup-bin"],
        packages["libcryptsetup4"],
        packages["libpopt0"],
        packages["libuuid1"],
        packages["libdevmapper1.02.1"],
        packages["libgcrypt20"],
        packages["libargon2-0"],
        packages["libjson-c3"],
        packages["libudev1"],
        packages["libpthread-stubs0-dev"],
        packages["libm17n-0"],
        packages["libgpg-error0"],
    ],
    repository = "veritysetup",
    visibility = ["//visibility:public"],
)

pkg_tar(
    name = "data_tar",
    srcs = glob(["src/data/**"]),
    strip_prefix = "src/",
)

container_image(
    name = "cos_customizer_base",
    base = "@daisy//image",
    data_path = ".",
    debs = [
        packages["coreutils"],
        packages["tar"],
        packages["libacl1"],
        packages["libattr1"],
        packages["libc6"],
        packages["libselinux1"],
        packages["libpcre3"],
        packages["mtools"],
    ],
    files = [
        ":tmp_dir",
        ":workspace_dir",
    ],
    tars = [
        ":data_tar",
    ],
)

go_image(
    name = "cos_customizer",
    base = ":cos_customizer_base",
    embed = ["//src/cmd/cos_customizer:cos_customizer_lib"],
    goarch = "amd64",
    goos = "linux",
    pure = "on",
    visibility = ["//visibility:public"],
)
