; amigent-repair: restores Amigent after a system update. Safe to run twice.
FailAt 21
; amigent-setup puts its folder here (SYS:amigent unless --home says otherwise)
Set SRC SYS:amigent
; amigactld only where an older setup installed it
If EXISTS $SRC/amigactld
  If NOT EXISTS C:amigactld
    Copy $SRC/amigactld C: CLONE
    Protect C:amigactld rwed
  EndIf
EndIf
If NOT EXISTS C:amigentd
  Copy $SRC/amigentd C: CLONE
  Protect C:amigentd rwed
EndIf
If NOT EXISTS S:amigent.key
  If EXISTS $SRC/amigent.key
    Copy $SRC/amigent.key S: CLONE
  EndIf
EndIf
If NOT EXISTS S:amigent-tls.pem
  If EXISTS $SRC/amigent-tls.pem
    Copy $SRC/amigent-tls.pem S: CLONE
  EndIf
EndIf
If NOT EXISTS S:amigactld.conf
  If EXISTS $SRC/amigactld.conf
    Copy $SRC/amigactld.conf S: CLONE
  EndIf
EndIf
Delete >NIL: S:amigent-start QUIET
If EXISTS $SRC/amigactld
  Search >NIL: S:User-Startup "C:amigactld" QUIET
  If WARN
    Echo >>S:User-Startup "RUN >NIL: C:amigactld"
  EndIf
EndIf
Search >NIL: S:User-Startup "C:amigentd" QUIET
If WARN
  If EXISTS $SRC/amigent.tlsonly
    Echo >>S:User-Startup "RUN >NIL: C:amigentd TLSONLY"
  Else
    Echo >>S:User-Startup "RUN >NIL: C:amigentd"
  EndIf
EndIf
If EXISTS C:amigactld
  Status >NIL: COMMAND=C:amigactld
  If WARN
    Run >NIL: C:amigactld
  EndIf
EndIf
Status >NIL: COMMAND=C:amigentd
If WARN
  Run >NIL: C:amigentd
EndIf
; every installed program brings its own module
List $SRC/repair.d PAT=#?.repair LFORMAT "Execute %p%n" >T:amigent-modules
Execute T:amigent-modules
Delete >NIL: T:amigent-modules QUIET
Search >NIL: S:Startup-Sequence "S:User-Startup" QUIET
If WARN
  RequestChoice >NIL: "Amigent" "Startup-Sequence no longer runs S:User-Startup.*NPlease tell the AI agent." "OK"
Else
  RequestChoice >NIL: "Amigent" "Amigent is repaired.*NPlease restart the Amiga." "OK"
EndIf
