|
16 | 16 | use WRE::Config;
|
17 | 17 | use WRE::File;
|
18 | 18 | use WRE::Mysql;
|
| 19 | +use WRE::Starman; |
| 20 | +use 5.010.; |
19 | 21 |
|
20 | 22 | my ($all, $help, $verbose);
|
21 | 23 | $|=1;
|
|
27 | 29 | );
|
28 | 30 |
|
29 | 31 | if ($help) {
|
30 |
| - print <<STOP; |
| 32 | + say <<STOP; |
31 | 33 |
|
32 | 34 | Usage: $0
|
33 | 35 |
|
|
42 | 44 | STOP
|
43 | 45 | }
|
44 | 46 |
|
45 |
| -print "START UP.\n" if ($verbose); |
46 |
| -print "Reading demo config.\n" if ($verbose); |
| 47 | +say "START UP." if ($verbose); |
| 48 | +say "Reading demo config." if ($verbose); |
47 | 49 | my $config = WRE::Config->new;
|
48 | 50 | my $file = WRE::File->new(wreConfig=>$config);
|
49 |
| -print "Getting the list of demo sites.\n" if ($verbose); |
| 51 | +say "Getting the list of demo sites." if ($verbose); |
50 | 52 | opendir(my $demodir, $config->getWebguiRoot("/etc"));
|
51 | 53 | my @demos = ();
|
52 | 54 | foreach my $file (readdir($demodir)) {
|
53 | 55 | next unless $file =~ m/^demo/;
|
54 | 56 | my $config = eval {Config::JSON->new($config->getWebguiRoot("/etc/".$file)) };
|
55 | 57 | if ($@) {
|
56 |
| - print "Error reading $file\n" if ($verbose); |
| 58 | + say "Error reading $file" if ($verbose); |
57 | 59 | }
|
58 | 60 | else {
|
59 | 61 | push @demos, $config;
|
60 | 62 | }
|
61 | 63 | }
|
62 | 64 | closedir($demodir);
|
63 | 65 |
|
64 |
| -print "Deleting demos.\n" if ($verbose); |
| 66 | +say "Deleting demos." if ($verbose); |
65 | 67 | foreach my $demo (@demos) {
|
66 | 68 | my $demoId = $demo->getFilename;
|
67 | 69 | $demoId =~ s/(demo.*)\.conf/$1/;
|
68 | 70 | if ($all || time() - $demo->get("demoCreated") > $config->get("demo/duration") * 60 * 60 * 24) {
|
69 |
| - print "Deleting Site: ".$demoId."\n" if ($verbose); |
| 71 | + say "Deleting Site: ".$demoId."" if ($verbose); |
70 | 72 |
|
71 | 73 | # database
|
72 |
| - print "\tConnecting to database.\n" if ($verbose); |
| 74 | + say "\tConnecting to database." if ($verbose); |
73 | 75 | my $databaseName = $demo->get("dsn");
|
74 | 76 | $databaseName =~ s/^DBI\:mysql\:(\w+).*$/$1/i;
|
75 | 77 | my $databaseUser = $demo->get("dbuser");
|
|
79 | 81 | username=>$config->get("demo/user")
|
80 | 82 | )};
|
81 | 83 | if ($@) {
|
82 |
| - print "\tCan't connect to database, so can't delete site.\n" if ($verbose); |
| 84 | + say "\tCan't connect to database, so can't delete site." if ($verbose); |
83 | 85 | }
|
84 | 86 | else {
|
85 |
| - print "\tDropping database.\n" if ($verbose); |
| 87 | + say "\tDropping database." if ($verbose); |
86 | 88 | eval{$db->do("drop database $databaseName")};
|
87 |
| - print "\tError: $@\n" if ($@ && $verbose); |
88 |
| - print "\tRevoking database privileges.\n" if ($verbose); |
| 89 | + say "\tError: $@" if ($@ && $verbose); |
| 90 | + say "\tRevoking database privileges." if ($verbose); |
89 | 91 | eval{$db->do("revoke all privileges on ".$databaseName.".* from '".$databaseUser."'\@'%'")};
|
90 |
| - print "\tError: $@\n" if ($@ && $verbose); |
| 92 | + say "\tError: $@" if ($@ && $verbose); |
91 | 93 | $db->disconnect;
|
92 | 94 |
|
93 | 95 | # web root
|
94 |
| - print "\tDeleting Web Root.\n" if ($verbose); |
| 96 | + say "\tDeleting Web Root." if ($verbose); |
95 | 97 | $file->delete($config->getDomainRoot("/demo/".$demoId));
|
96 | 98 |
|
97 | 99 | # webgui
|
98 |
| - print "\tDeleting WebGUI Config.\n" if ($verbose); |
| 100 | + say "\tDeleting WebGUI Config." if ($verbose); |
99 | 101 | $file->delete($demo->getFilePath);
|
100 | 102 |
|
101 |
| - print "\tFinished deleting $demoId\n" if ($verbose); |
| 103 | + say "\tFinished deleting $demoId" if ($verbose); |
102 | 104 | }
|
103 | 105 | }
|
104 | 106 | else {
|
105 |
| - print "Skipping Site: ".$demoId."\n" if ($verbose); |
| 107 | + say "Skipping Site: ".$demoId if ($verbose); |
106 | 108 | }
|
107 | 109 | }
|
108 |
| -print "COMPLETE.\n" if ($verbose); |
| 110 | +say "Restarting Starman" if $verbose; |
| 111 | +if (eval { WRE::Starman->new(wreConfig=>$config)->restart; }) { |
| 112 | + say "OK" if $verbose; |
| 113 | +} |
| 114 | +else { |
| 115 | + say "Failed: $@"; |
| 116 | +} |
| 117 | +say "COMPLETE." if ($verbose); |
109 | 118 |
|
0 commit comments