aboutsummaryrefslogtreecommitdiffstats
path: root/initify.pl
diff options
context:
space:
mode:
Diffstat (limited to 'initify.pl')
-rw-r--r--initify.pl61
1 files changed, 61 insertions, 0 deletions
diff --git a/initify.pl b/initify.pl
new file mode 100644
index 0000000..104d252
--- /dev/null
+++ b/initify.pl
@@ -0,0 +1,61 @@
+use v5.10.1;
+use feature "switch";
+my $type = "simple";
+my @cmds_start = ();
+my @cmds_stop = ();
+my $pidfile = "";
+my $desc = "";
+
+while(<>) {
+ #s/\s*|\s*$//g; # Trim whitespace
+ if (m/^Type\s*=\s*(.*)/) {
+ $type=$1;
+ }
+ if (m/^ExecStart\s*=\s*(.*)/) {
+ if (length $1) {
+ push(@cmds_start, $1);
+ }
+ else {
+ @cmds_start = (); # If the line is "ExecStart=",
+ # it means to clear ExecStart.
+ }
+ }
+ if (m/^ExecStop\s*=\s*(.*)/) {
+ if (length $1) {
+ push(@cmds_stop, $1);
+ }
+ else {
+ @cmds_stop = (); # If the line is "ExecStop=",
+ # it means to clear ExecStop.
+ }
+ }
+ if (m/^PIDFile=(.*)/) {
+ if(length $1) {
+ $pidfile = $1;
+ }
+ }
+ if (m/^Description=(.*)/) {
+ $desc = $1
+ }
+}
+
+my @cmds;
+
+my @cmd_path;
+my @cmd_argl;
+
+map {my @sep = split(/ /, $_, 2);
+ push(@cmd_path, $sep[0]);
+ push(@cmd_argl, $sep[1]);
+} @cmds_start;
+
+print <<"EOF";
+\#!/sbin/openrc-run
+
+command=$cmd_path[0]
+command_args="$cmd_argl[0]"
+pidfile=$pidfile
+
+name="(fill in)"
+description="$desc"
+EOF