#! /usr/bin/env bash
##########################################################################
#                                                                        #
#  This file is part of Frama-C.                                         #
#                                                                        #
#  Copyright (C) 2007-2022                                               #
#    CEA (Commissariat à l'énergie atomique et aux énergies              #
#         alternatives)                                                  #
#                                                                        #
#  you can redistribute it and/or modify it under the terms of the GNU   #
#  Lesser General Public License as published by the Free Software       #
#  Foundation, version 2.1.                                              #
#                                                                        #
#  It is distributed in the hope that it will be useful,                 #
#  but WITHOUT ANY WARRANTY; without even the implied warranty of        #
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
#  GNU Lesser General Public License for more details.                   #
#                                                                        #
#  See the GNU Lesser General Public License version 2.1                 #
#  for more details (enclosed in the file licenses/LGPLv2.1).            #
#                                                                        #
##########################################################################

if [[ $# != 1 && $# != 2 ]]; then
  echo "Usage: $0 <plugin-name> [<directory>]"
  exit 2
fi
if [[ $# == 1 ]]; then
  directory="."
else
  directory=$2
fi

if [[ ! -d $directory ]]; then
  echo "'$directory': not such file or directory"
  exit 17
fi

echo "Target directory is '$directory'"

dune_file=$directory/dune

if [[ -f $dune_file ]]; then
  echo "'$dune_file' file already exists."
  exit 17
fi

cat > $dune_file <<EOF
( library
  (name $1)
  (public_name frama-c-$1.core)
  (flags -open Frama_c_kernel :standard)
  (libraries frama-c.kernel)
)

(plugin (optional) (name $1) (libraries frama-c-$1.core) (site (frama-c plugins)))
EOF
