#!/bin/bash log_file=../init-import.log log() { echo "$@" | tee -a $log_file } execute() { log "$" $@ "$@" 2>&1 | tee -a $log_file [ ${PIPESTATUS[0]} -eq 0 ] || $SHELL -i || exit 1 } init="$(cd ../init;pwd)" sfile="$init/series" cpwd=$(pwd) base=$1 log "Importing init based on $base" base=$(git rev-parse --verify "$base" 2>/dev/null) || { log "Bad base $base" exit 1 } [ -d "../quilt-tmp" ] || execute git clone -s -l -n -q . ../quilt-tmp log '$' cd ../quilt-tmp cd ../quilt-tmp execute git checkout -b init/master "$base" git branch init/master-base patches=$(sed -e '/^#/d' -e '/^[ \t]*$/d' "$sfile") for f in $patches; do execute git am -3 --patch-format=mbox "$init/$f" done log '$' cd $cpwd cd $cpwd execute git fetch -f ../quilt-tmp init/master-base:init/master-base execute git fetch -f ../quilt-tmp init/master:init/master rm -rf ../quilt-tmp exit 0