(.module: [library [lux "*" [abstract [monad {"+" [do]}]] [control [pipe {"+" [do>]}] ["[0]" try {"+" [Try]}] [concurrency ["[0]" async {"+" [Async]} ("[1]\[0]" monad)]] ["<>" parser ["<[0]>" xml]]] [data [binary {"+" [Binary]}] [text ["%" format {"+" [format]}] [encoding ["[0]" utf8]]] [collection ["[0]" set]] [format ["[0]" binary] ["[0]" tar] ["[0]" xml]]] [time ["[0]" instant {"+" [Instant]}]] [world ["[0]" file] ["[0]" console {"+" [Console]}]]]] [program [compositor ["[0]" export]]] ["[0]" // "_" ["[1][0]" clean] ["/[1]" // "_" [command {"+" [Command]}] ["/" profile] ["[1][0]" action {"+" [Action]}] ["[1][0]" pom] ["[1][0]" hash] ["[1][0]" package] ["[1][0]" dependency ["[1]/[0]" deployment] ["[1]/[0]" status {"+" [Status]}]] ["[1][0]" repository {"+" [Repository]} [identity {"+" [Identity]}] ["[1]/[0]" remote] ["[1]/[0]" origin]] ["[1][0]" metadata ["[1]/[0]" artifact] ["[1]/[0]" snapshot]] ["[1][0]" artifact {"+" [Artifact]} ["[1]/[0]" extension {"+" [Extension]}] ["[1]/[0]" type]]]]) (def: .public success "Successfully deployed the project.") (def: .public (do! console repository fs artifact profile) (-> (Console Async) (Repository Async) (file.System Async) Artifact (Command Any)) (do [! ///action.monad] [library (|> profile (value@ #/.sources) set.list (export.library fs) (\ ! each (binary.result tar.writer))) pom (\ async.monad in (///pom.write profile)) _ (///dependency/deployment.one repository [artifact ///artifact/type.lux_library] (let [pom_data (|> pom (\ xml.codec encoded) (\ utf8.codec encoded))] [#///package.origin {#///repository/origin.Remote ""} #///package.library [library (///dependency/status.verified library)] #///package.pom [pom pom_data (///dependency/status.verified pom_data)]]))] (console.write_line ..success console)))