Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)

2,286 views

Published on

  • Be the first to comment

Mac OSにおけるShellコマンドの活⽤用 (Xojo 勉強会)

  1. 1. Mac  OSにおけるShellコマンドの活⽤用 2014  Xojo  東京勉強会  (1/25) 野⽥田  純⽣生(  junnama@alfasado.jp  ) 14年1月26日日曜日
  2. 2. About  @junnama • 野⽥田  純⽣生  (  a.k.a.  junnama  ) • アルファサード株式会社  代表(Web系) • Movable  Type  エバンジェリスト • Perl,  PHP,  JavaScript... 14年1月26日日曜日
  3. 3. XojoとYシャツと私 14年1月26日日曜日
  4. 4. 14年1月26日日曜日
  5. 5. Xojo(個⼈人の感想です) • 情報がない、⽇日本語マニュアルどこ? • 出る出る詐欺 • バギー、落落ち着くまで気⻑⾧長に • ⽇日本語まわりとか 14年1月26日日曜日
  6. 6. Xojo(個⼈人の感想です) • 7割くらいまではすぐ作れる、でも • ちょっと凝ったことするには • Declare  使いまくり • Plugin  買いまくり 14年1月26日日曜日
  7. 7. 本⽇日のお題 Mac  OSにおけるShellコマンドの活⽤用 14年1月26日日曜日
  8. 8. Mac  OS  =  Unix 14年1月26日日曜日
  9. 9. Dim Sh As New Shell Sh.Execute( "ls" ) MsgBox( Sh.ReadAll ) 14年1月26日日曜日
  10. 10. http://junnama.alfasado.net/online/2013/12/mac_os_x.html 14年1月26日日曜日
  11. 11. screencapture 14年1月26日日曜日
  12. 12. screencapture screencapture foo.png screencapture -R 117,226,100,100 screencapture -t pdf foo.pdf 14年1月26日日曜日
  13. 13. 14年1月26日日曜日
  14. 14. screencapture  +  Xojo • 現在の座標の周辺のキャプチャを取得 • Canvas  に表⽰示 • 中央の⾊色(Color)を取得 • ⾊色名に変換して表⽰示する 14年1月26日日曜日
  15. 15. say 14年1月26日日曜日
  16. 16. 14年1月26日日曜日
  17. 17. say say Hello World 14年1月26日日曜日
  18. 18. 14年1月26日日曜日
  19. 19. mdfind 14年1月26日日曜日
  20. 20. mdfind mdfind -onlyin /Applications/ 'kMDItemContentTypeTree=="com.appl e.application" 14年1月26日日曜日
  21. 21. mdfind  +  Xojo • リストボックスからドラッグされた時 • ⼀一意の名前のファイルをテンポラリに • ファイルを不不可視にしてドラッグ • タイマーを⾛走らせる • mdfindでドロップされた場所を得る 14年1月26日日曜日
  22. 22. 14年1月26日日曜日
  23. 23. mdfind Dim d As Date = New Date Dim hex As String Dim bytes As String bytes = MD5( Str( round( rnd * 3000 ) + 1 ) ) Dim hex As String = EncodeHex( bytes ) F = F.Child( "dragitem-" + hex +"-" F = F + Format( d.TotalSeconds, "#") + ".abcd" ) FS = BinaryStream.Create( F, true ) FS.close F.visible = False Dim di As DragItem DraggingItem = F.Name 14年1月26日日曜日
  24. 24. mdfind di = New DragItem (self,System.MouseX,System.MouseY-Main.Top,64, 64) di.FolderItem = F di.Drag WatchFile.Mode = Timer.ModeMultiple Return False Dim Command As String = "mdfind -name " + DraggingItem Dim Sh As New Shell Sh.Execute( Command ) Dim Res As String = Sh.ReadAll if Res <> "" Then F = GetFolderItem( Res ) ... 14年1月26日日曜日
  25. 25. qlmanage 14年1月26日日曜日
  26. 26. qlmanage qlmanage -p foo.png 14年1月26日日曜日
  27. 27. qlmanage  +  Xojo • リストボックスで項⽬目を選択 • スペースキー押下でテンポラリフォル ダにファイルをダウンロード • クイックルックを表⽰示 14年1月26日日曜日
  28. 28. 14年1月26日日曜日
  29. 29. さて、Perl 14年1月26日日曜日
  30. 30. Mac  OS  =  Unix 14年1月26日日曜日
  31. 31. Perl,  PHP,  Ruby,  Python... 14年1月26日日曜日
  32. 32. 14年1月26日日曜日
  33. 33. my $StorageClient = Net::Azure::StorageClient->new( type => 'Blob', account_name => $you_account_name, primary_access_key => $your_primary_access_key, protocol => 'https', api_version => '2012-02-12' ); my $res = $StorageClient->get( $url ); print $res->content; 14年1月26日日曜日
  34. 34. use strict; use lib qw( lib ); use Getopt::Long qw/:config posix_default no_ignore_case bundling auto_help/; ... 14年1月26日日曜日
  35. 35. GetOptions(my %options, qw/ account=s accesskey=s path=s action=s acl=s file=s get_all=i thread=i metadata=s pass=s proc=s /); 14年1月26日日曜日
  36. 36. cd path/to/app; perl app.pl --action=get --path https://foo 14年1月26日日曜日
  37. 37. Application  =  Folder 14年1月26日日曜日
  38. 38. 14年1月26日日曜日
  39. 39. 14年1月26日日曜日
  40. 40. Dim AppName As String = CurrentBuildAppName AppName = ReplaceAll( AppName, " ", " " ) Dim AppPath As String AppPath = CurrentBuildLocation + "/" + AppName + ".app" Dim Command As String command = "cp /path/to/src.zip " + AppPath + "/Contents/MacOS/src.zip" Call DoShellCommand( Command ) command = "cd " + AppPath + "/Contents/MacOS; unzip src.zip" Call DoShellCommand( Command ) command = "cd " + AppPath + "/Contents/MacOS; rm src.zip" Call DoShellCommand( Command ) 14年1月26日日曜日
  41. 41. cd path/to/app; 14年1月26日日曜日
  42. 42. Dim App as new application Dim MyApp As FolderItem MyApp = App.ExecutableFile Dim Name As String = MyApp.Name + ".app" MyApp = GetFolderItem( MyApp.NativePath,3 ).Parent Dim CMD As String = “cd ” + MyApp.ShellPath + “;” CMD = CMD + “perl src/app.pl --account ” CMD = CMD + EscapeShell ( Account ) CMD = CMD + “ --token ” + EscapeShell( Token ) CMS = CMD + “ --action put --path ” + EscapeShell( Path ) CMS = CMD + “ --file ” + EscapeShell( File.ShellPath ) 14年1月26日日曜日
  43. 43. cd path/to/MyApp/Contents/MacOS; perl ./app.pl --action=get --path https://foo.blob.... 14年1月26日日曜日

×