#!/bin/bash # $HeadURL$ $LastChangedRevision$ # Modules . $(bs-config bs_share_prefix)/include/bssupport.sh || { echo "${0##*/}: INTERNAL ERROR: failed to load bssupport.sh" >&2; exit 3; } . $(miniade) || { echo "${0##*/}: ERROR: miniade failed (hint: run 'miniade' to see error)" >&2; exit 1; } # Configurable stuff # Other globals main() { local MY_ARGS local PROGRAM VERBOSELEVEL PROGNAME # Defaults for options # Process options miniade_process_options --help-handler=usage MY_ARGS "$@" && set -- "${MY_ARGS[@]}" # Process arguments # Sanity checks and derivations # bs sets PROGRAM, but passes it to us through environment as BS_PROGRAM, copy it back. PROGRAM=$BS_PROGRAM VERBOSELEVEL=$BS_VERBOSELEVEL SOURCES_SVNREPO_URL=$BS_SOURCES_SVNREPO_URL SOURCES_SVNWC_DIR=$BS_SOURCES_SVNWC_DIR bssupport_checkset VERBOSELEVEL PROGRAM SOURCES_SVNREPO_URL SOURCES_SVNWC_DIR miniade_set_verboselevel $VERBOSELEVEL { ! [[ $PROGRAM =~ .*\.debian$ ]]; } || miniade_internal "PROGRAM ends with '.debian'" # Guts # Check doesn't exist already. SVN_CMDLINE="svn ls $SOURCES_SVNREPO_URL 2>&1" miniade_debug 10 "calling [$SVN_CMDLINE] ..." SVN_OUTPUT=$(eval "$SVN_CMDLINE") || true if ! [[ $SVN_OUTPUT =~ W160013 ]]; then miniade_error "$PROGRAM: svn did not report that this module does not exist (hint: output was [$SVN_OUTPUT])" fi # Generate files echo -n "template: " read TEMPLATE if ! [[ $TEMPLATE =~ ^lx(shell|perl|python|small)$ ]]; then miniade_error "$TEMPLATE: invalid template (hint it should be lxshell, lxperl, lxpython or lxsmall)" fi adegmt -v "$TEMPLATE" $PROGRAM > $PROGRAM/doc/ChangeLog #tweak miniade_info "$PROGRAM: tweaking directories for initial import ..." mv $PROGRAM trunk mkdir tags branches miniade_info "$PROGRAM: importing ..." svn -q import -m " * $PROGRAM: initial version" $SOURCES_SVNREPO_URL miniade_info "$PROGRAM: checking out into the usual place ..." svn -q co $SOURCES_SVNREPO_URL/trunk $SOURCES_SVNWC_DIR } main "$@"