blob: fb6e1c28629325e21b4654a237771f438567f562 [file] [log] [blame]
Rob Landley7e21d5f2006-04-27 23:34:46 +00001#!/bin/sh
2
Denis Vlasenko7d219aa2006-10-05 10:17:08 +00003target="$1"
4loc="$2"
Rob Landley7e21d5f2006-04-27 23:34:46 +00005
Denis Vlasenko7d219aa2006-10-05 10:17:08 +00006test "$target" || exit 1
Rob Landley7e21d5f2006-04-27 23:34:46 +00007test "$loc" || loc=.
Bernhard Reutner-Fischera1e130f2006-05-21 10:45:01 +00008test -x "$loc/usage" || exit 1
Denis Vlasenko7d219aa2006-10-05 10:17:08 +00009test "$SED" || SED=sed
Bernhard Reutner-Fischerb35e3a82009-10-27 17:05:31 +010010test "$DD" || DD=dd
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000011
Denys Vlasenko0fdf2e12010-09-16 15:46:20 +020012# Some people were bitten by their system lacking a (proper) od
maxwen27116ba2015-08-14 21:41:28 +020013od -v -b </dev/null >/dev/null
Denys Vlasenko06a80bd2010-09-16 13:23:15 +020014if test $? != 0; then
maxwen27116ba2015-08-14 21:41:28 +020015 echo 'od tool is not installed or cannot accept "-v -b" options'
Denys Vlasenko06a80bd2010-09-16 13:23:15 +020016 exit 1
17fi
18
Denys Vlasenko08f0b782010-07-04 23:34:02 +020019exec >"$target.$$"
Rob Landley7e21d5f2006-04-27 23:34:46 +000020
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020021echo '#define UNPACKED_USAGE "" \'
maxwen27116ba2015-08-14 21:41:28 +020022"$loc/usage" | od -v -b \
Denys Vlasenko0e5ba082010-06-05 23:11:07 +020023| $SED -e 's/^[^ ]*//' \
24 -e 's/ //g' \
25 -e '/^$/d' \
maxwen27116ba2015-08-14 21:41:28 +020026 -e 's/\(...\)/\\\1/g' \
Denys Vlasenko0e5ba082010-06-05 23:11:07 +020027 -e 's/^/"/' \
28 -e 's/$/" \\/'
29echo ''
Denis Vlasenko937b10f2008-02-09 09:26:43 +000030
Denys Vlasenko0e5ba082010-06-05 23:11:07 +020031echo '#define PACKED_USAGE \'
Denis Vlasenko63e49fa2008-08-09 20:31:57 +000032## Breaks on big-endian systems!
33## # Extra effort to avoid using "od -t x1": -t is not available
34## # in non-CONFIG_DESKTOPed busybox od
Denis Vlasenkoea7c9b32008-09-25 10:39:10 +000035##
Denis Vlasenko63e49fa2008-08-09 20:31:57 +000036## "$loc/usage" | bzip2 -1 | od -v -x \
37## | $SED -e 's/^[^ ]*//' \
Denys Vlasenko3581c622010-01-25 13:39:24 +010038## -e 's/ //g' \
39## -e '/^$/d' \
40## -e 's/\(..\)\(..\)/0x\2,0x\1,/g'
Denys Vlasenko0e5ba082010-06-05 23:11:07 +020041## -e 's/$/ \\/'
maxwen27116ba2015-08-14 21:41:28 +020042"$loc/usage" | bzip2 -1 | $DD bs=2 skip=1 2>/dev/null | od -v -b \
Denis Vlasenko937b10f2008-02-09 09:26:43 +000043| $SED -e 's/^[^ ]*//' \
Bernhard Reutner-Fischerb35e3a82009-10-27 17:05:31 +010044 -e 's/ //g' \
45 -e '/^$/d' \
maxwen27116ba2015-08-14 21:41:28 +020046 -e 's/\(...\)/0\1,/g' \
Denys Vlasenko0e5ba082010-06-05 23:11:07 +020047 -e 's/$/ \\/'
48echo ''
Denys Vlasenko08f0b782010-07-04 23:34:02 +020049
Denys Vlasenko1d36f242010-07-08 02:29:47 +020050mv -- "$target.$$" "$target"