Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
CLI apps. For fun and profit
Marin Usalj
May 29, 2014
Programming
4
15k
CLI apps. For fun and profit
Talk given at Cocoa Kucha on #inspect conference, May 2014
Marin Usalj
May 29, 2014
Tweet
Share
More Decks by Marin Usalj
See All by Marin Usalj
Code signing on iOS/OSX
supermarin
2
380
Launch Arguments - the mysteries
supermarin
1
83
Swift for CLI tools
supermarin
15
24k
CocoaPods intro
supermarin
2
150
Private pods - best practices
supermarin
1
79
Alcatraz internals
supermarin
2
210
ObjectiveSugar & ObjectiveRecord
supermarin
5
430
Alcatraz - Xcode package manager
supermarin
3
240
BubbleWrap
supermarin
3
290
Other Decks in Programming
See All in Programming
Android入門
hn410
0
310
CIでAndroidUIテストの様子を録画してみた
mkeeda
0
180
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customize Haptic
endoumari
0
310
GraphQL+KMM開発でわかったこと / What we learned from GraphQL+KMM development
kubode
0
130
Airflow1=>Airflow2へのupgrade 事例紹介
reizist
0
110
偏見と妄想で語るスクリプト言語としての Swift / Swift as a Scripting Language
lovee
2
270
【PHPerKaigi2022】Mongo に溜まった約1.6億件の記事データを BigQuery へ …
userkazun
0
110
職場にPythonistaを増やす方法
soogie
0
320
WindowsコンテナDojo : 第1回 Visual StudioでWindowsコンテナアプリ作成
oniak3ibm
PRO
0
330
Microsoft Teams の 会議アプリ開発のはじめかた / How to start Microsoft Teams app development
karamem0
0
1.6k
The future of trust stores in Python
sethmlarson
0
180
Learning DDD輪読会#4 / Learning DDD Book Club #4
suzushin54
1
140
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Atom: Resistance is Futile
akmur
255
20k
Documentation Writing (for coders)
carmenhchung
48
2.5k
How To Stay Up To Date on Web Technology
chriscoyier
780
250k
Why You Should Never Use an ORM
jnunemaker
PRO
47
5.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
WebSockets: Embracing the real-time Web
robhawkes
57
5k
Designing for humans not robots
tammielis
241
23k
YesSQL, Process and Tooling at Scale
rocio
157
12k
Writing Fast Ruby
sferik
612
57k
A Philosophy of Restraint
colly
192
14k
Debugging Ruby Performance
tmm1
65
10k
Transcript
CLI APPS. FOR FUN AND PROFIT @SUPERMARIN
WHEN FUNCTIONALITY NOT SUPPORTED BY GUI IT'S HARD TO AUTOMATE
TASKS ENDLESS POSSIBILITIES
HOW DO I RUBY, GO, PYTHON, EVEN OBJECTIVE-C
PIPELINE CAT BUILD.LOG | GREP ERROR | WC -L
STATUS CODES $ XCODEBUILD | TEE XCODEBUILD.LOG | XCPRETTY
XCODEBUILD FAILS, STATUS 0
PIPESTATUS [] $ xcodebuild | tee output.log | xcpretty $?
=> 0 ${PIPESTATUS[0]} => 65 ${PIPESTATUS[2]} => 0 $ xcodebuild | tee output.log | xcpretty; exit ${PIPESTATUS[0]}
SET -O PIPEFAIL $ xcodebuild | tee output.log | xcpretty
$ echo $? => 65
BEWARE OF YOUR $SHELL | $SHELL | Exit status |
Pipe status | Set a var | |--------|-------------|---------------|-------------| | bash | $? | $PIPESTATUS | export VAR= | |--------|-------------|---------------|-------------| | zsh | $status | $pipestatus | export VAR= | |--------|-------------|---------------|-------------| | fish | $status | / | set -x VAR |
#! #!/USR/BIN/ENV RUBY
POSIX FLAGS $ COMMAND --VERBOSE --COLOR = $ COMMAND -VC
(ONLY IN SILICON VALLEY)
CLI FRAMEWORKS DON'T DIY
XCPRETTY GITHUB.COM/SUPERMARIN/XCPRETTY
SUCH HTML
WHY IN THE WORLD? THERE'S XCTOOL
XCTOOL(XCODEBUILD) -FLAG -FLAG WRAPPING XCODEBUILD, RECREATING FLAGS
XCODEBUILD -FLAG -FLAG | XCPRETTY USING VANILLA XCODEBUILD
XCTOOL - TESTS maintaining separate settings XCODEBUILD - BETA XCODEBUILD
- APPSTORE maintaining separate settings
USED BY RUBYMOTION FACEBOOK (POP) AFNETWORKING KIWI YAMMER THOUGHTBOT MANY
OTHERS
<3 HIPBYTE YAMMER @KATTRALI