xref: /rk3399_rockchip-uboot/scripts/sync-fragment.sh (revision 7d33ddceabe21714997e09222c2fdc213a8a87b5)
18d2c0f5eSJoseph Chen#!/bin/bash
28d2c0f5eSJoseph Chen#
38d2c0f5eSJoseph Chen# Copyright (c) 2020 Rockchip Electronics Co., Ltd
48d2c0f5eSJoseph Chen#
58d2c0f5eSJoseph Chen# SPDX-License-Identifier: GPL-2.0
68d2c0f5eSJoseph Chen#
78d2c0f5eSJoseph Chenset -e
88d2c0f5eSJoseph Chen
98d2c0f5eSJoseph ChenFRAGMENT_CONFIG=$1
108d2c0f5eSJoseph Chen
118d2c0f5eSJoseph Chenif [ -z "${FRAGMENT_CONFIG}" ]; then
128d2c0f5eSJoseph Chen	echo
138d2c0f5eSJoseph Chen	echo "Usage: a script to sync/add config fragment."
148d2c0f5eSJoseph Chen	echo
158d2c0f5eSJoseph Chen	echo "Command:"
168d2c0f5eSJoseph Chen	echo "      $0  [config fragment]"
178d2c0f5eSJoseph Chen	echo "Example:"
188d2c0f5eSJoseph Chen	echo "      $0 ./configs/rv1109.config       -- add or sync rv1109.config"
198d2c0f5eSJoseph Chen	echo
208d2c0f5eSJoseph Chen	exit 1
218d2c0f5eSJoseph Chenfi
228d2c0f5eSJoseph Chen
238d2c0f5eSJoseph Chenif [ ! -f .config ]; then
248d2c0f5eSJoseph Chen	echo "ERROR: No .config"
258d2c0f5eSJoseph Chen	exit 1
268d2c0f5eSJoseph Chenfi
278d2c0f5eSJoseph Chen
28d07fced2SJoseph ChenBASE_DEFCONFIG1=`sed -n "/CONFIG_BASE_DEFCONFIG=/s/CONFIG_BASE_DEFCONFIG=//p" .config | tr -d '\r' | tr -d '"'`
29d07fced2SJoseph Chenif [ -z "${BASE_DEFCONFIG1}" ]; then
30d07fced2SJoseph Chen	echo "ERROR: No base defconfig assigned by BASE_DEFCONFIG1=..."
318d2c0f5eSJoseph Chen	exit 1
328d2c0f5eSJoseph Chenfi
338d2c0f5eSJoseph Chen
34d07fced2SJoseph Chenif [ ! -f configs/${BASE_DEFCONFIG1} ]; then
35d07fced2SJoseph Chen	echo "ERROR: No base defconfig \"${BASE_DEFCONFIG1}\""
368d2c0f5eSJoseph Chen	exit 1
378d2c0f5eSJoseph Chenfi
388d2c0f5eSJoseph Chen
39d07fced2SJoseph ChenBASE_DEFCONFIG0=`sed -n "/CONFIG_BASE_DEFCONFIG=/s/CONFIG_BASE_DEFCONFIG=//p" configs/${BASE_DEFCONFIG1} | tr -d '\r' | tr -d '"'`
40d07fced2SJoseph Chen
418d2c0f5eSJoseph Chenif [ ! -f ${FRAGMENT_CONFIG} ]; then
428d2c0f5eSJoseph Chen	MSG_NEW_FILE="New config fragment: ${FRAGMENT_CONFIG}"
438d2c0f5eSJoseph Chenfi
448d2c0f5eSJoseph Chen
458d2c0f5eSJoseph Chencp .config fragment.config
46d07fced2SJoseph Chenmake ${BASE_DEFCONFIG0} ${BASE_DEFCONFIG1}
478d2c0f5eSJoseph Chen./scripts/diffconfig -m .config fragment.config | sort > ${FRAGMENT_CONFIG}
48*7d33ddceSJoseph Chenmv fragment.config .config
498d2c0f5eSJoseph Chen
508d2c0f5eSJoseph Chenecho "$MSG_NEW_FILE"
518d2c0f5eSJoseph Chenecho "Sync ${FRAGMENT_CONFIG} ... OK."
528d2c0f5eSJoseph Chenecho
538d2c0f5eSJoseph Chen
54