(List (FunctionDef main [] (List (If (Com {[LIT_CHARS which]} {[LIT_CHARS tput]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (= scope= flags=0 words=[] bindings=[('ncolors', {[ComSub (Com {[LIT_CHARS tput]} {[LIT_CHARS colors]})]})]) ) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -t]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ncolors]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ncolors]]} {[LIT_CHARS -ge]} {[LIT_CHARS 8]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (List (= scope= flags=0 words=[] bindings=[('RED', {[DQ [ComSub (Com {[LIT_CHARS tput]} {[LIT_CHARS setaf]} {[LIT_CHARS 1]})]]})]) (= scope= flags=0 words=[] bindings=[('GREEN', {[DQ [ComSub (Com {[LIT_CHARS tput]} {[LIT_CHARS setaf]} {[LIT_CHARS 2]})]]})]) (= scope= flags=0 words=[] bindings=[('YELLOW', {[DQ [ComSub (Com {[LIT_CHARS tput]} {[LIT_CHARS setaf]} {[LIT_CHARS 3]})]]})]) (= scope= flags=0 words=[] bindings=[('BLUE', {[DQ [ComSub (Com {[LIT_CHARS tput]} {[LIT_CHARS setaf]} {[LIT_CHARS 4]})]]})]) (= scope= flags=0 words=[] bindings=[('BOLD', {[DQ [ComSub (Com {[LIT_CHARS tput]} {[LIT_CHARS bold]})]]})]) (= scope= flags=0 words=[] bindings=[('NORMAL', {[DQ [ComSub (Com {[LIT_CHARS tput]} {[LIT_CHARS sgr0]})]]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('RED', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('GREEN', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('YELLOW', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('BLUE', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('BOLD', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('NORMAL', {[DQ ]})]) ) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -e]} ) (= scope= flags=0 words=[] bindings=[('CHECK_ZSH_INSTALLED', {[ComSub (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS /zsh] [LIT_OTHER "$"]} {[LIT_CHARS /etc/shells]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[VarSub CHECK_ZSH_INSTALLED]} {[LIT_CHARS -ge]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS printf]} {[DQ [VarSub YELLOW][LIT_CHARS "Zsh is not installed!"][VarSub NORMAL][LIT_CHARS " Please install zsh first!"][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS exit]} ) ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS CHECK_ZSH_INSTALLED]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -n]} {[DQ [VarSub ZSH]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('ZSH', {[TildeSub ''] [LIT_CHARS /.oh-my-zsh]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -d]} {[DQ [VarSub ZSH]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS printf]} {[DQ [VarSub YELLOW][LIT_CHARS "You already have Oh My Zsh installed."][VarSub NORMAL][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "You'll need to remove "][VarSub ZSH][LIT_CHARS " if you want to re-install."][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS exit]} ) ) ) (Com {[LIT_CHARS umask]} {[LIT_CHARS g-w] [LIT_COMMA ","] [LIT_CHARS o-w]} ) (Com {[LIT_CHARS printf]} {[DQ [VarSub BLUE][LIT_CHARS "Cloning Oh My Zsh..."][VarSub NORMAL][\ LIT_ESCAPED_CHAR "\\n"]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS hash]} {[LIT_CHARS git]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: git is not installed"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub OSTYPE]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS cygwin]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS --version]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS msysgit]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: Windows/MSYS Git is not supported on Cygwin"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: Make sure the Cygwin git package is installed and is first on the path"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS env]} {[LIT_CHARS git]} {[LIT_CHARS clone]} {[LIT_CHARS --depth] [LIT_DBRACKET_LIKE "="] [LIT_CHARS 1]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //github.com/robbyrussell/oh-my-zsh.git]} {[VarSub ZSH]} ) (List (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Error: git clone of oh-my-zsh repo failed"][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS printf]} {[DQ [VarSub BLUE][LIT_CHARS "Looking for an existing zsh config..."][VarSub NORMAL][\ LIT_ESCAPED_CHAR "\\n"]]} ) (If (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[TildeSub ''] [LIT_CHARS /.zshrc]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -h]} {[TildeSub ''] [LIT_CHARS /.zshrc]} {[LIT_DBRACKET_LIKE "]"]} ) ) (List (Com {[LIT_CHARS printf]} {[DQ [VarSub YELLOW][LIT_CHARS "Found ~/.zshrc."][VarSub NORMAL][LIT_CHARS " "][VarSub GREEN][LIT_CHARS "Backing up to ~/.zshrc.pre-oh-my-zsh"][VarSub NORMAL][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS mv]} {[TildeSub ''] [LIT_CHARS /.zshrc]} {[TildeSub ''] [LIT_CHARS /.zshrc.pre-oh-my-zsh]} ) ) ) (Com {[LIT_CHARS printf]} {[DQ [VarSub BLUE][LIT_CHARS "Using the Oh My Zsh template file and adding it to ~/.zshrc"][VarSub NORMAL][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS cp]} {[VarSub ZSH] [LIT_CHARS /templates/zshrc.zsh-template]} {[TildeSub ''] [LIT_CHARS /.zshrc]} ) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "/^export ZSH=/ c"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS "\n"][LIT_CHARS " export ZSH="][VarSub ZSH][LIT_CHARS "\n"][LIT_CHARS " "]]} {[TildeSub ''] [LIT_CHARS /.zshrc]} < (FilenameRedirectNode filename={[LIT_TILDE "~"] [LIT_CHARS /.zshrc-omztemp]} "> 1), > ) (Com {[LIT_CHARS mv]} {[LIT_CHARS -f]} {[TildeSub ''] [LIT_CHARS /.zshrc-omztemp]} {[TildeSub ''] [LIT_CHARS /.zshrc]} ) (= scope= flags=0 words=[] bindings=[('TEST_CURRENT_SHELL', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [VarSub SHELL]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub TEST_CURRENT_SHELL]]} {[LIT_NEQUAL "!="]} {[DQ [LIT_CHARS zsh]]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Com {[LIT_CHARS hash]} {[LIT_CHARS chsh]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (Com {[LIT_CHARS printf]} {[DQ [VarSub BLUE][LIT_CHARS "Time to change your default shell to zsh!"][VarSub NORMAL][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS chsh]} {[LIT_CHARS -s]} {[ComSub (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS /zsh] [LIT_OTHER "$"]} {[LIT_CHARS /etc/shells]}) (Com {[LIT_CHARS tail]} {[LIT_CHARS -1]}) )]} ) ) (ElseTrue) (List (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "I can't change your shell automatically because this system does not have chsh."][\ LIT_ESCAPED_CHAR "\\n"]]} ) (Com {[LIT_CHARS printf]} {[DQ [VarSub BLUE][LIT_CHARS "Please manually change your default shell to zsh!"][VarSub NORMAL][\ LIT_ESCAPED_CHAR "\\n"]]} ) ) ) ) (Com {[LIT_CHARS printf]} {[DQ [VarSub GREEN]]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS printf]} {[DQ [VarSub NORMAL]]} ) (Com {[LIT_CHARS env]} {[LIT_CHARS zsh]} ) ) ) (Com {[LIT_CHARS main]} ) )