You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
thinkpad-ec/scripts/slice.insert

37 lines
666 B
Bash

#!/bin/bash
#
# Quick and dirty script to insert a slice into a binary file
# Copyright (C) 2016 Hamish Coleman
#
# TODO:
# - a tool that is portable to Windows
# - should output dependency information
INFOFILE="$1"
if [ ! -r "$INFOFILE" ]; then
echo Need file with source and offset info
exit 1
fi
shift
INPUT="$1"
if [ -z "$INPUT" ]; then
echo Need input filename
exit 1
fi
shift
OUT="$1"
if [ -z "$OUT" ]; then
echo Need output filename
exit 1
fi
read SOURCE OFFSET LENGTH <"$INFOFILE"
set -x
cp --reflink=auto $SOURCE $OUT
dd status=none if=$INPUT bs=$[$LENGTH] count=1 | dd status=none conv=notrunc bs=$[$OFFSET] seek=1 of="$OUT"