Updated Branches:
  refs/heads/master 084578c12 -> 3eab1090b

Added ShellUtils for plugins to use.


Project: http://git-wip-us.apache.org/repos/asf/cordova-osx/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-osx/commit/3eab1090
Tree: http://git-wip-us.apache.org/repos/asf/cordova-osx/tree/3eab1090
Diff: http://git-wip-us.apache.org/repos/asf/cordova-osx/diff/3eab1090

Branch: refs/heads/master
Commit: 3eab1090beeb6ed0ccff0d1e9b2b88f05044388a
Parents: 084578c
Author: Shazron Abdullah <[email protected]>
Authored: Tue Apr 9 17:55:52 2013 -0700
Committer: Shazron Abdullah <[email protected]>
Committed: Tue Apr 9 17:55:52 2013 -0700

----------------------------------------------------------------------
 .../CordovaFramework.xcodeproj/project.pbxproj     |   10 ++
 .../CordovaFramework/Classes/Utils/ShellUtils.h    |   32 +++++++
 .../CordovaFramework/Classes/Utils/ShellUtils.m    |   73 +++++++++++++++
 3 files changed, 115 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/3eab1090/CordovaFramework/CordovaFramework.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/CordovaFramework/CordovaFramework.xcodeproj/project.pbxproj 
b/CordovaFramework/CordovaFramework.xcodeproj/project.pbxproj
index 1a93e74..ea990fa 100644
--- a/CordovaFramework/CordovaFramework.xcodeproj/project.pbxproj
+++ b/CordovaFramework/CordovaFramework.xcodeproj/project.pbxproj
@@ -68,6 +68,9 @@
                7E4C0AF916EAA2AD00542982 /* NSWindow+Utils.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 7E4C0AC516EAA2AD00542982 /* NSWindow+Utils.m */; 
};
                7E4C0AFB16EAA35300542982 /* SystemConfiguration.framework in 
Frameworks */ = {isa = PBXBuildFile; fileRef = 7E4C0AFA16EAA35300542982 /* 
SystemConfiguration.framework */; };
                7E4C0AFD16EAA36400542982 /* WebKit.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = 7E4C0AFC16EAA36400542982 /* WebKit.framework */; 
};
+               7EE6E73D1714E77C0051492C /* ShellUtils.h in Headers */ = {isa = 
PBXBuildFile; fileRef = 7EE6E73B1714E77C0051492C /* ShellUtils.h */; };
+               7EE6E73E1714E77C0051492C /* ShellUtils.m in Sources */ = {isa = 
PBXBuildFile; fileRef = 7EE6E73C1714E77C0051492C /* ShellUtils.m */; };
+               7EE6E73F1714E77C0051492C /* ShellUtils.m in Sources */ = {isa = 
PBXBuildFile; fileRef = 7EE6E73C1714E77C0051492C /* ShellUtils.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -133,6 +136,8 @@
                7E4C0AC516EAA2AD00542982 /* NSWindow+Utils.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= "NSWindow+Utils.m"; sourceTree = "<group>"; };
                7E4C0AFA16EAA35300542982 /* SystemConfiguration.framework */ = 
{isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = 
SystemConfiguration.framework; path = 
System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; 
};
                7E4C0AFC16EAA36400542982 /* WebKit.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree 
= SDKROOT; };
+               7EE6E73B1714E77C0051492C /* ShellUtils.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
ShellUtils.h; sourceTree = "<group>"; };
+               7EE6E73C1714E77C0051492C /* ShellUtils.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= ShellUtils.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -287,6 +292,8 @@
                                7E4C0AC316EAA2AD00542982 /* NSData+Base64.m */,
                                7E4C0AC416EAA2AD00542982 /* NSWindow+Utils.h */,
                                7E4C0AC516EAA2AD00542982 /* NSWindow+Utils.m */,
+                               7EE6E73B1714E77C0051492C /* ShellUtils.h */,
+                               7EE6E73C1714E77C0051492C /* ShellUtils.m */,
                        );
                        name = Utils;
                        path = Classes/Utils;
@@ -319,6 +326,7 @@
                                7E4C0AF116EAA2AD00542982 /* CDVReachability.h 
in Headers */,
                                7E4C0AF416EAA2AD00542982 /* NSData+Base64.h in 
Headers */,
                                7E4C0AF716EAA2AD00542982 /* NSWindow+Utils.h in 
Headers */,
+                               7EE6E73D1714E77C0051492C /* ShellUtils.h in 
Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
@@ -445,6 +453,7 @@
                                7E4C0AF216EAA2AD00542982 /* CDVReachability.m 
in Sources */,
                                7E4C0AF516EAA2AD00542982 /* NSData+Base64.m in 
Sources */,
                                7E4C0AF816EAA2AD00542982 /* NSWindow+Utils.m in 
Sources */,
+                               7EE6E73E1714E77C0051492C /* ShellUtils.m in 
Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
@@ -469,6 +478,7 @@
                                7E4C0AF316EAA2AD00542982 /* CDVReachability.m 
in Sources */,
                                7E4C0AF616EAA2AD00542982 /* NSData+Base64.m in 
Sources */,
                                7E4C0AF916EAA2AD00542982 /* NSWindow+Utils.m in 
Sources */,
+                               7EE6E73F1714E77C0051492C /* ShellUtils.m in 
Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };

http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/3eab1090/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.h
----------------------------------------------------------------------
diff --git a/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.h 
b/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.h
new file mode 100644
index 0000000..ab84604
--- /dev/null
+++ b/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.h
@@ -0,0 +1,32 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+ 
+ http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+
+#import <Foundation/Foundation.h>
+
+@interface ShellUtils : NSObject
+
++ (BOOL) restartComputer;
++ (void) quitApp;
+
++ (NSTask*) shellTask:(NSString*)command;
++ (oneway void) executeShellTaskAsync:(NSString*)command;
++ (NSString*) executeShellTask:(NSString*)command;
+
+@end

http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/3eab1090/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.m
----------------------------------------------------------------------
diff --git a/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.m 
b/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.m
new file mode 100644
index 0000000..27e127f
--- /dev/null
+++ b/CordovaFramework/CordovaFramework/Classes/Utils/ShellUtils.m
@@ -0,0 +1,73 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+ 
+ http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+
+#import "ShellUtils.h"
+#import <Cocoa/Cocoa.h>
+#import <Security/Authorization.h>
+
+@implementation ShellUtils
+
++ (BOOL) restartComputer
+{
+       NSAppleScript* script = [[NSAppleScript alloc] initWithSource:@"tell 
application \"System Events\" to restart"];
+       NSDictionary* errorInfo;
+       NSAppleEventDescriptor* descriptor = [script 
executeAndReturnError:&errorInfo];
+    
+       return (descriptor != nil);
+}
+
++ (void) quitApp
+{
+    [[NSApplication sharedApplication] terminate:nil];    
+}
+
++ (NSTask*) shellTask:(NSString*)command
+{
+       NSTask* task = [[NSTask alloc] init];
+    [task setLaunchPath: @"/bin/sh"];
+       [task setStandardInput:[NSFileHandle fileHandleWithNullDevice]];
+    [task setArguments: @[@"-c", command]];
+    
+    return task;
+}
+
++ (NSString*) executeShellTask:(NSString*)command
+{
+    NSPipe* pipe = [NSPipe pipe];
+    NSFileHandle* fileHandle = [pipe fileHandleForReading];
+    
+       NSTask* task = [[self class] shellTask:command];
+    [task setStandardOutput:pipe];
+       [task setStandardError:pipe];
+    [task launch];
+    
+    NSData* outputData = [fileHandle readDataToEndOfFile];
+    
+       return [[NSString alloc] initWithData:outputData 
encoding:NSUTF8StringEncoding];
+}
+
++ (oneway void) executeShellTaskAsync:(NSString*)command
+{
+       [[[self class] shellTask:command] launch];
+    
+       return;
+}
+
+@end

Reply via email to