]> nmode's Git Repositories - Fey/blobdiff - lib/App/Fey.pm
Refactor Fey.pm module
[Fey] / lib / App / Fey.pm
index 9939a5c729fe1fb5e5cce3e02cf82e1ed8de4936..c137002901e2aa6dfa7cb86b83695dbd94dbbc5f 100644 (file)
@@ -30,16 +30,13 @@ sub launch {
     die "No files or URIs specified.\n" unless @_;
 
     ARG: for my $file_or_uri (@_) {
-        if ($file_or_uri =~ m|^file://(.+)|) {
-            $file_or_uri = $1;
+        if ($options->{fork} && !$options->{single}) {
+            my $pid = fork;
+            next ARG if ($pid);
         }
 
-        my ($mime_or_uri, $targets);
-        if (-e $file_or_uri) {
-            $mime_or_uri = $self->{mime_query}->($file_or_uri)
-        } else {
-            $mime_or_uri = $file_or_uri;
-        }
+        $file_or_uri = $1 if ($file_or_uri =~ m|^file://(.+)|);
+        my $mime_or_uri = -e $file_or_uri ? $self->{mime_query}->($file_or_uri) : $file_or_uri;
 
         for my $target (@{ $self->{targets} }) {
             for my $pattern (@{ $target->{patterns} }) {
@@ -52,6 +49,7 @@ sub launch {
                                 return;
                             }
                             $associations->{$context}->($file_or_uri);
+                            return if ($options->{fork});
                             next ARG;
                         }
                     }