.Key FILE/A
.bra {
.ket }

FailAt 21
CD /
SetEnv yatMSG{$$} "Install "
If "{FILE}" EQ "ALL"
 Echo >>ENV:yatMSG{$$} "all taglines"
Else
 Echo >>ENV:yatMSG{$$} "{FILE}"
EndIf
Echo "$yatMSG{$$}"
SetEnv yatMSG{$$} "Aborted"
CD >ENV:yatDIR{$$}
Assign >NIL: YAM: EXISTS
If WARN
 SetEnv yatPAT{$$} ""
Else
 SetEnv yatPAT{$$} "YAM:"
EndIf

Lab DEST
RequestFile >ENV:yatDST{$$} "$yatPAT{$$}" FILE ".taglines" TITLE "Append or Copy to..."
If WARN
 Skip EXIT
EndIf
SetEnv yatOPT{$$} "2"
If EXISTS $yatDST{$$}
 CD >NIL: $yatDST{$$}
 If NOT WARN
  CD "$yatDIR{$$}"
  SetEnv yatPAT{$$} $yatDST{$$}
  Skip DEST BACK
 EndIf
Else
 Skip DOIT
EndIf

SetEnv yatNAM{$$} $yatDST{$$}
RequestChoice >ENV:yatOPT{$$} TITLE "YAT Request" BODY "$yatNAM{$$} already exists" GADGETS "Append" "Overwrite" "Cancel"
If WARN
 Skip EXIT
EndIf
If "$yatOPT{$$}" EQ "0"
 Skip EXIT
EndIf
RequestChoice >ENV:yatTMP{$$} TITLE "YAT Request" BODY "Backup $yatNAM{$$}" GADGETS "Ok" "Skip" "Cancel"
If WARN
 Skip EXIT
EndIf
If "$yatTMP{$$}" EQ "0"
 Skip EXIT
EndIf
If "$yatTMP{$$}" EQ "2"
 Skip DOIT
EndIf

SetEnv yatBAK{$$} $yatDST{$$}

Lab BKUP
Echo >>ENV:yatBAK{$$} ".bak" NOLINE
If NOT EXISTS "$yatBAK{$$}"
 Skip NAME
EndIf

SetEnv yatEXT{$$} "1"

Lab SUFF
SetEnv yatTMP{$$} "$yatEXT{$$}"
Eval >ENV:yatEXT{$$} $yatTMP{$$} + 1
SetEnv yatTMP{$$} "$yatBAK{$$}"
Echo >>ENV:yatTMP{$$} "$yatEXT{$$}" NOLINE
If EXISTS "$yatTMP{$$}"
 Skip SUFF BACK
EndIf
SetEnv yatBAK{$$} "$yatTMP{$$}"

Lab NAME
Install/Component >ENV:yatPAT{$$} "$yatBAK{$$}" PATH
Install/Component >ENV:yatNAM{$$} "$yatBAK{$$}" NAME
RequestFile >ENV:yatBAK{$$} "$yatPAT{$$}" FILE "$yatNAM{$$}" TITLE "Backup name..."
If WARN
 Skip EXIT
EndIf
If $yatBAK{$$} EQ $yatDST{$$}
 SetEnv yatBAK{$$} $yatDST{$$}
 Skip BKUP BACK
EndIf
If EXISTS $yatBAK{$$}
 CD >NIL: $yatBAK{$$}
 If NOT WARN
  CD "$yatDIR{$$}"
  SetEnv yatTMP{$$} $yatBAK{$$}
  Echo >>ENV:yatTMP{$$} "`Install/Component $yatDST{$$} NAME`" NOLINE
  SetEnv yatBAK{$$} "$yatTMP{$$}"
  Skip BKUP BACK
 EndIf
 RequestChoice >ENV:yatTMP{$$} TITLE "YAT Request" BODY "`Echo $yatBAK{$$} NOLINE` already exists" GADGETS "Overwrite" "Cancel"
 If WARN
  Skip EXIT
 EndIf
 If "$yatTMP{$$}" EQ "0"
  SetEnv yatTMP{$$} "`Install/Component $yatBAK{$$} PATH`"
  Echo >>ENV:yatTMP{$$} "`Install/Component $yatDST{$$} NAME`" NOLINE
  SetEnv yatBAK{$$} "$yatTMP{$$}"
  Skip BKUP BACK
 EndIf
EndIf

Copy $yatDST{$$} TO $yatBAK{$$} CLONE QUIET
If WARN
 Skip EXIT
EndIf
SetEnv yatTMP{$$} $yatDST{$$}
Echo >>ENV:yatTMP{$$} " copied to " NOLINE
Echo >>ENV:yatTMP{$$} $yatBAK{$$} NOLINE
Echo "$yatTMP{$$}"

Lab DOIT
SetEnv yatNAM{$$} $yatDST{$$}
If "$yatOPT{$$}" EQ "1"
 Echo >>"$yatNAM{$$}" "%%"
 If WARN
  Skip EXIT
 EndIf
 If NOT "{FILE}" EQ "ALL"
  Type >>"$yatNAM{$$}" Taglines/{FILE}
  If WARN
   Skip EXIT
  EndIf
 EndIf
 SetEnv yatOPT{$$} "appended"
Else
 If "{FILE}" EQ "ALL"
  Echo >"$yatNAM{$$}" "" NOLINE
  If WARN
   Skip EXIT
  EndIf
 Else
  Copy Taglines/{FILE} TO "$yatNAM{$$}" CLONE QUIET
  If WARN
   Skip EXIT
  EndIf
 EndIf
 SetEnv yatOPT{$$} "copied"
EndIf

SetEnv yatEXT{$$} "1"

If "{FILE}" EQ "ALL"
 SetEnv yatTMP{$$} "$yatOPT{$$}"
 Echo >T:YAT-00-T{$$} ".Key *"*"*N.bra [*N.ket ]*N"
 List >>T:YAT-00-T{$$} Taglines/~(#?.info) FILES LFORMAT="If *"$yatEXT[*$$]*" GT *"0*"*N Echo *"%n  *" NOLINE*N If *"$yatEXT[*$$]*" EQ *"2*"*N  Echo >>*"$yatNAM[*$$]*" *"%%*"*N Else*N  SetEnv yatEXT[*$$] *"2*"*N EndIf*N Type >>*"$yatNAM[*$$]*" Taglines/%n*N If WARN*N  SetEnv yatEXT[*$$] *"0*"*N Else*N  Echo *"$yatTMP[*$$]*"*N EndIf*N If *"$yatTMP[*$$]*" EQ *"copied*"*N  SetEnv yatTMP[*$$] *"appended*"*N EndIf*NEndIf"
 If WARN
  Skip EXIT
 EndIf
 Execute T:YAT-00-T{$$}
 If WARN
  Skip EXIT
 EndIf
EndIf

If "$yatEXT{$$}" GT "0"
 If "{FILE}" EQ "ALL"
  SetEnv yatMSG{$$} "All taglines "
 Else
  SetEnv yatMSG{$$} "{FILE} "
 EndIf
 Echo >>ENV:yatMSG{$$} "$yatOPT{$$} to " NOLINE
 Echo >>ENV:yatMSG{$$} $yatDST{$$} NOLINE
EndIf

Lab EXIT
Echo "$yatMSG{$$}"
RequestChoice >NIL: TITLE "YAT Request" BODY "$yatMSG{$$}" GADGETS "Bye"
Delete >NIL: ENV:yat#?{$$} T:YAT-#?-T{$$}
