Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CLI apps. For fun and profit
Search
Marin Usalj
May 29, 2014
Programming
16k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CLI apps. For fun and profit
Talk given at Cocoa Kucha on #inspect conference, May 2014
Marin Usalj
May 29, 2014
Transcript
20 slides
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
More Decks by Marin Usalj
See All by Marin Usalj
Code signing on iOS/OSX
supermarin
2
520
Launch Arguments - the mysteries
supermarin
1
280
Swift for CLI tools
supermarin
16
25k
CocoaPods intro
supermarin
2
270
Private pods - best practices
supermarin
1
210
Alcatraz internals
supermarin
2
370
ObjectiveSugar & ObjectiveRecord
supermarin
5
610
Alcatraz - Xcode package manager
supermarin
3
370
BubbleWrap
supermarin
3
370
Other Decks in Programming
See All in Programming
Railsバージョンを4倍にした話
optim
0
1k
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
250
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
2.1k
Distance field of Julia set
kinakomoti321
0
320
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
160
オーケストレーション記述言語 Katari
yukikurage
0
250
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
850
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
180
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
980
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
180
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
660
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Ethics towards AI in product and experience design
skipperchong
2
460
Writing Fast Ruby
sferik
630
63k
Building AI with AI
inesmontani
PRO
1
1.4k
Faster Mobile Websites
deanohume
310
32k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
BBQ
matthewcrist
90
10k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k