github.com/klaytn/klaytn@v1.10.2/build/package-rpm.sh (about)

     1  #!/bin/bash
     2  
     3  DAEMON_BINARIES=(kcn kpn ken kbn kscn kspn ksen)
     4  BINARIES=(kgen homi)
     5  
     6  set -e
     7  
     8  function printUsage {
     9      echo "Usage: $0 [-b] <target binary>"
    10      echo "               -b: use baobab configuration."
    11      echo "  <target binary>: kcn | kpn | ken | kbn | kscn | kspn | ksen | kgen | homi"
    12      exit 1
    13  }
    14  
    15  # Parse options.
    16  BAOBAB_FLAG=
    17  BAOBAB_PREFIX=
    18  while getopts "b" opt; do
    19  	case ${opt} in
    20  		b)
    21  			echo "Using baobab configuration..."
    22  			BAOBAB_FLAG=" --baobab"
    23  			BAOBAB_PREFIX="-baobab"
    24  			;;
    25  	esac
    26  done
    27  shift $((OPTIND -1))
    28  
    29  # Parse target
    30  TARGET=$1
    31  if [ -z "$TARGET" ]; then
    32      echo "specify target binary: ${DAEMON_BINARIES[*]} ${DAEMON[*]}"
    33      printUsage
    34  fi
    35  
    36  MYDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
    37  pushd $MYDIR/..
    38  function finish {
    39    # Your cleanup code here
    40    popd
    41  }
    42  trap finish EXIT
    43  
    44  KLAYTN_VERSION=$(go run build/rpm/main.go version)
    45  KLAYTN_RELEASE_NUM=$(go run build/rpm/main.go release_num)
    46  PLATFORM_SUFFIX=$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)
    47  
    48  PACK_NAME=
    49  PACK_VERSION=
    50  
    51  # Search the target name in DAEMON_BINARIES
    52  for b in ${DAEMON_BINARIES[*]}; do
    53      if [ "$TARGET" == "$b" ]; then
    54          PACK_NAME=${b}-${PLATFORM_SUFFIX}
    55          PACK_VERSION=${b}d${BAOBAB_PREFIX}-${KLAYTN_VERSION}
    56      fi
    57  done
    58  
    59  # Search the target name in BINARIES
    60  for b in ${BINARIES[*]}; do
    61      if [ "$TARGET" == "$b" ]; then
    62          PACK_NAME=${b}-${PLATFORM_SUFFIX}
    63          PACK_VERSION=${b}${BAOBAB_PREFIX}-${KLAYTN_VERSION}
    64      fi
    65  done
    66  
    67  # If not found from both DAEMON_BINARIES and BINARIES, exit.
    68  if [ -z "$PACK_NAME" ]; then
    69      echo "specify target binary: ${DAEMON_BINARIES[*]} ${DAEMON[*]}"
    70      printUsage
    71  fi
    72  
    73  # Go for packaging!
    74  mkdir -p ${PACK_NAME}/rpmbuild/{SPECS,SOURCES,BUILDROOT}
    75  go run build/rpm/main.go gen_spec $BAOBAB_FLAG --binary_type $TARGET > ${PACK_NAME}/rpmbuild/SPECS/${PACK_VERSION}.spec
    76  git archive --format=tar.gz --prefix=${PACK_VERSION}/ HEAD > ${PACK_NAME}/rpmbuild/SOURCES/${PACK_VERSION}.tar.gz
    77  echo "rpmbuild --buildroot ${MYDIR}/../${PACK_NAME}/rpmbuild/BUILDROOT -ba ${PACK_NAME}/rpmbuild/SPECS/${PACK_VERSION}.spec"
    78  HOME=${MYDIR}/../${PACK_NAME}/ rpmbuild --buildroot ${MYDIR}/../${PACK_NAME}/rpmbuild/BUILDROOT -ba ${PACK_NAME}/rpmbuild/SPECS/${PACK_VERSION}.spec