...

Text file src/go.opentelemetry.io/otel/get_main_pkgs.sh

Documentation: go.opentelemetry.io/otel

     1#!/usr/bin/env bash
     2
     3# Copyright The OpenTelemetry Authors
     4#
     5# Licensed under the Apache License, Version 2.0 (the "License");
     6# you may not use this file except in compliance with the License.
     7# You may obtain a copy of the License at
     8#
     9#     http://www.apache.org/licenses/LICENSE-2.0
    10#
    11# Unless required by applicable law or agreed to in writing, software
    12# distributed under the License is distributed on an "AS IS" BASIS,
    13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14# See the License for the specific language governing permissions and
    15# limitations under the License.
    16
    17set -euo pipefail
    18
    19top_dir='.'
    20if [[ $# -gt 0 ]]; then
    21    top_dir="${1}"
    22fi
    23
    24p=$(pwd)
    25mod_dirs=()
    26
    27# Note `mapfile` does not exist in older bash versions:
    28# https://stackoverflow.com/questions/41475261/need-alternative-to-readarray-mapfile-for-script-on-older-version-of-bash
    29
    30while IFS= read -r line; do
    31    mod_dirs+=("$line")
    32done < <(find "${top_dir}" -type f -name 'go.mod' -exec dirname {} \; | sort)
    33
    34for mod_dir in "${mod_dirs[@]}"; do
    35    cd "${mod_dir}"
    36
    37    while IFS= read -r line; do
    38        echo ".${line#${p}}"
    39    done < <(go list --find -f '{{.Name}}|{{.Dir}}' ./... | grep '^main|' | cut -f 2- -d '|')
    40    cd "${p}"
    41done

View as plain text