| #!/bin/sh |
| # |
| # Script to create seabios release and snapshot tarballs. |
| # Accepts conmmit (hash, tag, branch, ...) as first argument, |
| # uses HEAD if unspecified. |
| # |
| |
| commit="${1-HEAD}" |
| |
| # figure name for the tarball |
| reltag="$(git describe --tags --match 'rel-*' --exact $commit 2>/dev/null)" |
| if test "$reltag" != ""; then |
| # release |
| name="${reltag#rel-}" |
| else |
| # snapshot |
| reltag="$(git describe --tags --match 'rel-*' $commit 2>/dev/null)" |
| name="snap-${reltag#rel-}" |
| fi |
| |
| # export tarball archive from git |
| prefix="seabios-${name}/" |
| output="seabios-${name}.tar" |
| echo "# commit $commit -> tarball: ${output}.gz" |
| rm -f "$output" "${output}.gz" |
| git archive --format=tar --prefix="$prefix" "$commit" > "$output" |
| |
| # add .version file to tarball |
| dotver="$(mktemp dotver.XXXXXX)" |
| echo "$name" > "$dotver" |
| tar --append --file="$output" --owner=root --group=root --mode=0664 \ |
| --transform "s:${dotver}:${prefix}.version:" "$dotver" |
| rm -f "$dotver" |
| |
| # finally compress it |
| gzip "$output" |