xref: /rk3399_rockchip-uboot/scripts/sync-fragment.sh (revision 8d2c0f5ee8c344ed8f2bb3f7cd860388f42825d6)
1*8d2c0f5eSJoseph Chen#!/bin/bash
2*8d2c0f5eSJoseph Chen#
3*8d2c0f5eSJoseph Chen# Copyright (c) 2020 Rockchip Electronics Co., Ltd
4*8d2c0f5eSJoseph Chen#
5*8d2c0f5eSJoseph Chen# SPDX-License-Identifier: GPL-2.0
6*8d2c0f5eSJoseph Chen#
7*8d2c0f5eSJoseph Chenset -e
8*8d2c0f5eSJoseph Chen
9*8d2c0f5eSJoseph ChenFRAGMENT_CONFIG=$1
10*8d2c0f5eSJoseph Chen
11*8d2c0f5eSJoseph Chenif [ -z "${FRAGMENT_CONFIG}" ]; then
12*8d2c0f5eSJoseph Chen	echo
13*8d2c0f5eSJoseph Chen	echo "Usage: a script to sync/add config fragment."
14*8d2c0f5eSJoseph Chen	echo
15*8d2c0f5eSJoseph Chen	echo "Command:"
16*8d2c0f5eSJoseph Chen	echo "      $0  [config fragment]"
17*8d2c0f5eSJoseph Chen	echo "Example:"
18*8d2c0f5eSJoseph Chen	echo "      $0 ./configs/rv1109.config       -- add or sync rv1109.config"
19*8d2c0f5eSJoseph Chen	echo
20*8d2c0f5eSJoseph Chen	exit 1
21*8d2c0f5eSJoseph Chenfi
22*8d2c0f5eSJoseph Chen
23*8d2c0f5eSJoseph Chenif [ ! -f .config ]; then
24*8d2c0f5eSJoseph Chen	echo "ERROR: No .config"
25*8d2c0f5eSJoseph Chen	exit 1
26*8d2c0f5eSJoseph Chenfi
27*8d2c0f5eSJoseph Chen
28*8d2c0f5eSJoseph ChenBASE_DEFCONFIG=`sed -n "/CONFIG_BASE_DEFCONFIG=/s/CONFIG_BASE_DEFCONFIG=//p" .config | tr -d '\r' | tr -d '"'`
29*8d2c0f5eSJoseph Chenif [ -z "${BASE_DEFCONFIG}" ]; then
30*8d2c0f5eSJoseph Chen	echo "ERROR: No base defconfig assigned by BASE_DEFCONFIG=..."
31*8d2c0f5eSJoseph Chen	exit 1
32*8d2c0f5eSJoseph Chenfi
33*8d2c0f5eSJoseph Chen
34*8d2c0f5eSJoseph Chenif [ ! -f configs/${BASE_DEFCONFIG} ]; then
35*8d2c0f5eSJoseph Chen	echo "ERROR: No base defconfig \"${BASE_DEFCONFIG}\""
36*8d2c0f5eSJoseph Chen	exit 1
37*8d2c0f5eSJoseph Chenfi
38*8d2c0f5eSJoseph Chen
39*8d2c0f5eSJoseph Chenif [ ! -f ${FRAGMENT_CONFIG} ]; then
40*8d2c0f5eSJoseph Chen	MSG_NEW_FILE="New config fragment: ${FRAGMENT_CONFIG}"
41*8d2c0f5eSJoseph Chenfi
42*8d2c0f5eSJoseph Chen
43*8d2c0f5eSJoseph Chencp .config fragment.config
44*8d2c0f5eSJoseph Chenmake ${BASE_DEFCONFIG}
45*8d2c0f5eSJoseph Chen./scripts/diffconfig -m .config fragment.config | sort > ${FRAGMENT_CONFIG}
46*8d2c0f5eSJoseph Chencp fragment.config .config
47*8d2c0f5eSJoseph Chen
48*8d2c0f5eSJoseph Chenecho "$MSG_NEW_FILE"
49*8d2c0f5eSJoseph Chenecho "Sync ${FRAGMENT_CONFIG} ... OK."
50*8d2c0f5eSJoseph Chenecho
51*8d2c0f5eSJoseph Chen
52