;; If passed into a use-repo function this will
;; 					download source code and build it.
(def use-sources true)
;; Set to false so that binaries are downloaded.
(def use-binaries false)

(def system-path "sample")
;;;;;;;;;;;;;;;;;;
;; REPOSITORIES ;;
;;;;;;;;;;;;;;;;;;

(use-repo :core "https://repo.ablecorp.us/core" use-sources)
;; another repo example.
(use-repo :games "https://repo.ablecorp.us/games" use-binaries)
(use-repo :personal "https://repo.ablecorp.us/able-personal" use-sources)

;; Treat a path like a repo
(use-repo-path :src "sysdata/")

;;;;;;;;;;;;;;;;
;; BOOTLOADER ;;
;;;;;;;;;;;;;;;;

(def resolution (fn (x y fps) (println x "x" y "@" fps)))

(pkg-install :core :bootloader-limine)
(pkg-configure :bootloader-limine 
               :comment "Default"
               :kernel :kernel-rust
               :boot-protocol "limine"
               :verbose true
               :resolution 1024 768 24
               :timeout 10)

(bootloader-install :bootloader-limine)

;;;;;;;;;;;;;
;; DRIVERS ;;
;;;;;;;;;;;;;

(pkg-install :core :ps2-driver)
(pkg-install :core :ata-pio)

(pkg-install :src :rlbuild-test)




;;;;;;;;;;;;;;
;; SERVICES ;;
;;;;;;;;;;;;;;
(pkg-install :core :vfsaur)

(pkg-install :core :angels-halo)
(pkg-configure :angels-halo)

(pkg-install :core :sunset)
(pkg-install :core :cluster)


;; Init System
(pkg-install :core :genesis)

;; Typically drivers should not have dependencies. Thus simplifing dependency solving.
;; Services might have dependencies on drivers or other services that can be auto-started even if you don:t specify them
(pkg-configure :genesis
               (reincarnation-server :angels-halo)
               (drivers :ata-pio :serial)
               (services :sunset :vfsaur :fat32))

;;;;;;;;;;;;
;; KERNEL ;;
;;;;;;;;;;;;
(system-install :core :kernel-rust)
;; Set the program to be launched to init the system.