• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: how to make cocoa application run as a command line tool?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to make cocoa application run as a command line tool?


  • Subject: Re: how to make cocoa application run as a command line tool?
  • From: Paul M <email@hidden>
  • Date: Tue, 20 Oct 2009 23:42:24 +1300

On 20/10/2009, at 10:58 PM, XiaoGang Li wrote:

Greetings,
I have created an document-based cocoa application, now I need to
provide a command line interface for my users.
for example, users input this into the terminal:
./myApplication.app/Contents/MacOS/myApplication -c --srcFolder "A/B/C"
--dstFolder "A/B/D";
I can get the argument information through [[NSProcessInfo processInfo]
arguments] in the init method of the application
delegate, and parse the arguments, then step by step.
My question is that, I don't want the window and other document be displayed
on the screen, even the menu.
I want all the action be processed without user's interventio.
Maybe, this feature seems odd. anyway, however, user can open my application
in the Finder, and open a document to edit it. but they
also can run it like a shell command utility to do some other faceless work,
like convert the type the document to another type.


I don't know whether I have a detailed description for my issue, but I will
be very appreciated for your feedback.

Your app has to detect whether it's been started from the finder or whether
it's being called from the command line. I'm not sure off the top of my head
how best to do this, but it shouldn't be too hard to figure out a way.
Then it'll either show or not show your UI, as appropriate. Simple.


There's multiple ways to structure this though. You could have 2 separate
apps, but built with as much common code as possible; you could have a single
app which shows or doesnt show the UI - as described above; you could even have
a 3rd app which does the heavy lifting, but is called by either a command line
tool or by a regular cocoa based app.
Without knowing what exactly you're trying to do, it's hard to comment on the
best aproach.


By the way, an alternative aproach to calling into your application bundle
from the command line is to simply type 'open -a myApplication', however I
dont think this will allow you to pass args as you've described above.



paulm

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: how to make cocoa application run as a command line tool?
      • From: Jeremy Pereira <email@hidden>
References: 
 >how to make cocoa application run as a command line tool? (From: XiaoGang Li <email@hidden>)

  • Prev by Date: Re: how to make cocoa application run as a command line tool?
  • Next by Date: Re: Dirty rects getting merged together makes for inefficient drawing
  • Previous by thread: Re: how to make cocoa application run as a command line tool?
  • Next by thread: Re: how to make cocoa application run as a command line tool?
  • Index(es):
    • Date
    • Thread