#!/usr/local/bin/perl # Show a form for creating or editing an upstart action require './init-lib.pl'; $access{'bootup'} || &error($text{'edit_ecannot'}); &ReadParse(); if ($in{'new'}) { &ui_print_header(undef, $text{'upstart_title1'}, ""); $u = { }; } else { &ui_print_header(undef, $text{'upstart_title2'}, ""); @upstarts = &list_upstart_services(); ($u) = grep { $_->{'name'} eq $in{'name'} } @upstarts; $u || &error($text{'upstart_egone'}); $u->{'legacy'} && &error($text{'upstart_elegacy'}); } print &ui_form_start("save_upstart.cgi", "post"); print &ui_hidden("new", $in{'new'}); print &ui_hidden("name", $in{'name'}) if (!$in{'new'}); print &ui_table_start($text{'upstart_header'}, undef, 2); if ($in{'new'}) { # Service name print &ui_table_row($text{'upstart_name'}, &ui_textbox("name", undef, 30)); # Description print &ui_table_row($text{'upstart_desc'}, &ui_textbox("desc", undef, 60)); # Pre-start script print &ui_table_row($text{'upstart_prestart'}, &ui_textarea("prestart", undef, 5, 80)); # Server command print &ui_table_row($text{'upstart_server'}, &ui_textbox("server", undef, 60)."
\n". &ui_checkbox("fork", 1, $text{'upstart_fork'}, 0)); # Start at boot? print &ui_table_row($text{'upstart_boot'}, &ui_yesno_radio("boot", 1)); } else { # Service name (non-editable) print &ui_table_row($text{'upstart_name'}, "$in{'name'}"); # Config file $cfile = "/etc/init/$in{'name'}.conf"; $conf = &read_file_contents($cfile); print &ui_table_row($text{'upstart_conf'}, &ui_textarea("conf", $conf, 20, 80)); # Current status if ($u->{'boot'} eq 'start' || $u->{'boot'} eq 'stop') { print &ui_table_row($text{'upstart_boot'}, &ui_yesno_radio("boot", $u->{'boot'} eq 'start')); } if ($u->{'status'} eq 'waiting' || $u->{'status'} eq 'running') { print &ui_table_row($text{'upstart_status'}, $u->{'status'} eq 'waiting' ? $text{'upstart_status0'} : &text('upstart_status1', $u->{'pid'})); } } print &ui_table_end(); if ($in{'new'}) { print &ui_form_end([ [ undef, $text{'create'} ] ]); } else { print &ui_form_end([ [ undef, $text{'save'} ], [ 'start', $text{'edit_startnow'} ], [ 'stop', $text{'edit_stopnow'} ], [ 'delete', $text{'delete'} ] ]); } &ui_print_footer("", $text{'index_return'});