From b2b8666da127489b3e0309c498b5009eaf227cc6 Mon Sep 17 00:00:00 2001 From: Vahagn Khachatryan Date: Thu, 5 Jan 2023 14:43:07 +0000 Subject: [PATCH] Profile split to multiple files. --- .profile.roku | 199 ++------------------------------- .profile.roku.build | 262 ++++++++++++++++++++++++++++++++++++++++++++ .profile.roku.svin | 40 +++++++ 3 files changed, 312 insertions(+), 189 deletions(-) create mode 100644 .profile.roku.build create mode 100644 .profile.roku.svin diff --git a/.profile.roku b/.profile.roku index d54dbc2..af5e784 100644 --- a/.profile.roku +++ b/.profile.roku @@ -7,190 +7,6 @@ export ROKU_NFS_ROOT=$HOME/roku/nfs export ROKU_NFS_IP=192.168.0.64 export EXPORTROOT=${ROKU_NFS_ROOT} -############################################################################### -# -# Build -# - -# This is needed to be able to set brake point on /bin/Application -export PAX_DEBUG=on - -build_help() -{ - cat <&2 + exit 1 + fi + local BUILD_ROOT=$REPO_ROOT/os + + # + # Parse arguments + # + while [ $# -gt 0 ]; do + case "$1" in + wdk) + BUILD_ROOT=$REPO_ROOT/os + BUILD_PLATFORM=carbon + TARGET=wdk-kit + BUILD_PLID=00 + if [ "$1" == "streambar"]; then + PLATFORM_TYPE=WDK_STREAMBAR + else + PLATFORM_TYPE=WDK_STB + fi + ;; + porting-kit|\ + streambar|\ + stb) + BUILD_ROOT=$REPO_ROOT/os + BUILD_PLATFORM=carbon + TARGET=porting-kit + BUILD_PLID=00 + if [ "$1" == "streambar"]; then + PLATFORM_TYPE=STREAMBAR + else + PLATFORM_TYPE=STB + fi + ;; + tests|\ + unittests) + BUILD_PLATFORM=host + PLATFORM_TYPE=unittests + TARGET=build-tests-all + PAX_DEBUG=off + ;; + host|\ + hoststatic|\ + unity|\ + native) + BUILD_PLATFORM=$1 + PAX_DEBUG=off + MAKE=$DOCKER_MAKE + TARGET=all + ;; + reno|\ + nemo|\ + rockett|\ + bailey|\ + marlin|\ + brewster|\ + benjamin|\ + benjaminw|\ + loggan|\ + madison) + local ROOT_DIR="$(basename $REPO_ROOT)" + if [ "$ROOT_DIR" == "stark" ] || \ + [ "$ROOT_DIR" == "hank" ]; then + local BUILD_ROOT="$REPO_ROOT/$1" + local ROKU_OS_DIR=$REPO_ROOT/../../../os/dist/rootfs/Carbon14_dev_stb.OBJ/export/package/porting_kit/os + # local ROKU_WLAN_DIR=$REPO_ROOT/common/wlan + local TARGET=image + else + local BUILD_ROOT=$REPO_ROOT/os + fi + BUILD_PLATFORM=$1 + ;; + icecc) + ENABLE_ICECC=1 + JOBS=256 + ;; + port-only) + ROKU_OS_DIR=$REPO_ROKU_OS_DIR + ;; + local) + ENABLE_ICECC=0 + JOBS=$(nproc) + ;; + all|\ + addon-checksums|\ + addon-checksum-check|\ + clean|\ + cleanall|\ + clobber|\ + build-tests-all|\ + build-tests-ZipMountServerTest|\ + build-tests-FuseServerTest|\ + build-tests-PluginPackageManagemnetPluginUnitTests|\ + make_custom_package|\ + clobber-all) + TARGET=$1 + ;; + build-integration-tests) + OPTIONS+="BUILD_INTEGRATION_TESTS=true" + ;; + here) + BUILD_ROOT="." + ;; + nopax) + PAX_DEBUG=off + ;; + make) + MAKE=make + ;; + docker) + MAKE=$DOCKER_MAKE + ;; + debug) + BUILD_MODE=dbg + ;; + help) + build_help + return + ;; + *) + echo "Really? Do you mean that?" + return + ;; + esac + shift + done + + # Fallback to make if docker image not found. + if [ -e $MAKE ]; then + local MAKE=make + fi + + if [ "$BUILD_PLATFORM" == "carbon" ]; then + __build_os + elif [ "$TARGET" == "image" ]; then + __build_port + else + __build_legacy + fi +} + +############################################################################### +# +# Build Completion +# +__build_completion_contains() +{ + # Platforms + for WORD in "$@"; do + if [[ "${COMP_WORDS[*]}" =~ "$WORD" ]]; then + return 1 + fi + done + return 0 +} + +__build_completion_add_if() +{ + __build_completion_contains "$@" + if [[ $? == 0 ]]; then + CANDIDATES+=" $@" + fi +} + +complete -F __build_completion build +__build_completion() +{ + local CANDIDATES="help clobber tests addon-checksums" + + # Docker + __build_completion_add_if docker make + + # Build hosts + __build_completion_add_if icecc local + + # Port dir + __build_completion_add_if port-only + + # Platforms + __build_completion_add_if native marlin bailey loggan lockhart porting-kit streambar stb + + COMPREPLY=($(compgen -W "$CANDIDATES" "${COMP_WORDS[${COMP_CWORD}]}")) +} + diff --git a/.profile.roku.svin b/.profile.roku.svin new file mode 100644 index 0000000..06c3882 --- /dev/null +++ b/.profile.roku.svin @@ -0,0 +1,40 @@ +#!/bin/sh + +############################################################################### +# +# Build +# + +# This is needed to be able to set brake point on /bin/Application +export PAX_DEBUG=on + +__svin_completion_contains() +{ + # Platforms + for WORD in "$@"; do + if [[ "${COMP_WORDS[*]}" =~ "$WORD" ]]; then + return 1 + fi + done + return 0 +} + +__svin_completion_add_if() +{ + __svin_completion_contains "$@" + if [[ $? == 0 ]]; then + CANDIDATES+=" $@" + fi +} + +complete -o nospace -o bashdefault -o default -F svin_completion svin +svin_completion() +{ + local CANDIDATES="--help fetch init version worktree" + + # Docker + # completion_add_if docker make + + COMPREPLY=($(compgen -W "$CANDIDATES" "${COMP_WORDS[${COMP_CWORD}]}")) +} +