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.
37 lines
666 B
Plaintext
37 lines
666 B
Plaintext
9 years ago
|
#!/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 dependancy 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"
|
||
|
|