## OpenCA - CA Command
## (c) 2001 by Michael Bell and OpenCA Group
##
##   File Name: new_script
##       Brief: new_script
## Description: create a new script
##  Parameters: script, operation, owner_method, owner_argument

sub cmdNew_script {

## load data
my $script         = $query->param ('script');
my $operation      = $query->param ('operation');
my $owner_method   = $query->param ('owner_method');
my $owner_argument = $query->param ('owner_argument');

## load config
my $rbac         = getRequired ('RBAC_DIR');
my $scriptconfig = getRequired ('SCRIPT_CONFIG_DIR');

## filename
my $configfile = $rbac."/".$scriptconfig."/".encodeName ($script).".conf";

## build content
my $content = "SCRIPT \"".$script."\"\n".
              "OPERATION \"".$operation."\"\n".
              "OWNER_METHOD \"".$owner_method."\"\n".
              "OWNER_ARGUMENT \"".$owner_argument."\"\n";

## write the file
open FILE, ">".$configfile or
  configError (i18nGettext ("Cannot open file __FILE__!", "__FILE__", $configfile));
print FILE $content or
  configError (i18nGettext ("Cannot write to file __FILE__!", "__FILE__", $configfile));
close FILE or
  configError (i18nGettext ("Cannot close file __FILE__!", "__FILE__", $configfile));

## failure?
if ( $? ) {
  configError ( i18nGettext ("Creating Script __SCRIPT__ failed (__FILE__)!",
                             "__SCRIPT__", $script,
                             "__FILE__", $configfile) );
}

libDoCommand ("show_scripts");

}

sub checkNew_script {

    my $script         = $query->param ('script');

    ## load config
    my $rbac         = getRequired ('RBAC_DIR');
    my $scriptconfig = getRequired ('SCRIPT_CONFIG_DIR');

    ## filename
    my $configfile = $rbac."/".$scriptconfig."/".encodeName ($script).".conf";

    ## check that the file is not existent
    if (-e $configfile) {
        configError (
            i18nGettext ("The script already exists (__SCRIPT__)!", "__SCRIPT__", $script).
            "<br>\n".
            gettext ("If you want to change something you have first to remove the script and then add the script again.")
                    );
    }

}

1;
