87cd7878b7f964a6b4e033eb2af01d0b3ea4f1ba
[platform/core/ml/nnfw.git] / tools / nnpackage_tool / model2nnpkg / model2nnpkg.sh
1 #!/bin/bash
2
3 set -eu
4
5 progname=$(basename "${BASH_SOURCE[0]}")
6 outdir="."
7
8 usage() {
9   echo "Usage: $progname [options] modelfile"
10   echo "Convert modelfile (either tflite or circle) to nnpackage."
11   echo ""
12   echo "Options:"
13   echo "    -h   show this help"
14   echo "    -o   set nnpackage output directory (default=$outdir)"
15   echo ""
16   echo "Examples:"
17   echo "    $progname add.tflite        => create nnpackage in $outdir/"
18   echo "    $progname -o out add.tflite => create nnpackage in out/"
19   exit 1
20 }
21
22 if [ $# -eq 0 ]; then
23   echo "For help, type $progname -h"
24   exit 1
25 fi
26
27 while getopts "ho:" OPTION; do
28 case "${OPTION}" in
29     h) usage;;
30     o) outdir=$OPTARG;;
31     ?) exit 1;;
32 esac
33 done
34
35 shift $((OPTIND-1))
36
37 if [ $# -ne 1 ]; then
38   echo "error: wrong argument (no argument or too many arguments)."
39   echo "For help, type $progname -h"
40   exit 1
41 fi
42
43 modelfile=$(basename "$1")
44
45 if [[ "$modelfile" != *.* ]]; then
46   echo "error: modelfile does not have extension."
47   echo "Please provide extension so that $progname can identify what type of model you use."
48   exit 1
49 fi
50
51 if [ ! -e $1 ]; then
52   echo "error: "$1" does not exist."
53   exit 1
54 fi
55
56 name=${modelfile%.*}
57 extension=${modelfile##*.}
58
59 echo "Generating nnpackage "$name" in "$outdir""
60 mkdir -p "$outdir"/"$name"/metadata
61 cat > "$outdir"/"$name"/metadata/MANIFEST <<-EOF
62 {
63   "major-version" : "1",
64   "minor-version" : "0",
65   "patch-version" : "0",
66   "models"      : [ "$name.$extension" ],
67   "model-types" : [ "$extension" ]
68 }
69 EOF
70 cp "$1" "$outdir"/"$name"