From 617771d89a71efa9d8d5733b5366397dad4e8262 Mon Sep 17 00:00:00 2001 From: Isaac Date: Thu, 30 Jan 2025 12:15:04 +1100 Subject: [PATCH] wip --- gleam.toml | 5 +++++ manifest.toml | 13 +++++++++++++ src/promptbox.gleam | 7 ++++++- src/promptbox/files.gleam | 11 +++++++++++ src/promptbox/postcss.gleam | 2 ++ src/promptbox/postcss_ffi.js | 3 +++ 6 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 src/promptbox/postcss.gleam create mode 100644 src/promptbox/postcss_ffi.js diff --git a/gleam.toml b/gleam.toml index f4dfcf3..107e1ba 100644 --- a/gleam.toml +++ b/gleam.toml @@ -1,5 +1,6 @@ name = "promptbox" version = "1.0.0" +target = "javascript" # Fill out these fields if you intend to generate HTML documentation or publish # your project to the Hex package manager. @@ -18,6 +19,10 @@ jot = ">= 2.0.0 and < 3.0.0" simplifile = ">= 2.2.0 and < 3.0.0" lustre = ">= 4.6.3 and < 5.0.0" birl = ">= 1.8.0 and < 2.0.0" +argv = ">= 1.0.2 and < 2.0.0" +glen = ">= 2.2.1 and < 3.0.0" +gleam_javascript = ">= 0.13.0 and < 1.0.0" +glen_node = ">= 0.0.2 and < 1.0.0" [dev-dependencies] gleeunit = ">= 1.0.0 and < 2.0.0" diff --git a/manifest.toml b/manifest.toml index e831e68..9c44431 100644 --- a/manifest.toml +++ b/manifest.toml @@ -2,25 +2,38 @@ # You typically do not need to edit this file packages = [ + { name = "argv", version = "1.0.2", build_tools = ["gleam"], requirements = [], otp_app = "argv", source = "hex", outer_checksum = "BA1FF0929525DEBA1CE67256E5ADF77A7CDDFE729E3E3F57A5BDCAA031DED09D" }, { name = "birl", version = "1.8.0", build_tools = ["gleam"], requirements = ["gleam_regexp", "gleam_stdlib", "ranger"], otp_app = "birl", source = "hex", outer_checksum = "2AC7BA26F998E3DFADDB657148BD5DDFE966958AD4D6D6957DD0D22E5B56C400" }, + { name = "conversation", version = "1.4.3", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_javascript", "gleam_stdlib"], otp_app = "conversation", source = "hex", outer_checksum = "908B46F60444442785A495197D482558AD8B849C3714A38FAA1940358CC8CCCD" }, { name = "filepath", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "67A6D15FB39EEB69DD31F8C145BB5A421790581BD6AA14B33D64D5A55DBD6587" }, + { name = "gleam_community_ansi", version = "1.4.2", build_tools = ["gleam"], requirements = ["gleam_community_colour", "gleam_regexp", "gleam_stdlib"], otp_app = "gleam_community_ansi", source = "hex", outer_checksum = "479DEDC748D08B310C9FEB9C4CBEC46B95C874F7F4F2844304D6D20CA78A8BB5" }, + { name = "gleam_community_colour", version = "1.4.1", build_tools = ["gleam"], requirements = ["gleam_json", "gleam_stdlib"], otp_app = "gleam_community_colour", source = "hex", outer_checksum = "386CB9B01B33371538672EEA8A6375A0A0ADEF41F17C86DDCB81C92AD00DA610" }, { name = "gleam_erlang", version = "0.33.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "A1D26B80F01901B59AABEE3475DD4C18D27D58FA5C897D922FCB9B099749C064" }, + { name = "gleam_http", version = "3.7.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "8A70D2F70BB7CFEB5DF048A2183FFBA91AF6D4CF5798504841744A16999E33D2" }, + { name = "gleam_javascript", version = "0.13.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "F98328FCF573DA6F3A35D7F6CB3F9FF19FD5224CCBA9151FCBEAA0B983AF2F58" }, { name = "gleam_json", version = "2.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "C55C5C2B318533A8072D221C5E06E5A75711C129E420DD1CE463342106012E5D" }, { name = "gleam_otp", version = "0.16.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "FA0EB761339749B4E82D63016C6A18C4E6662DA05BAB6F1346F9AF2E679E301A" }, { name = "gleam_regexp", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_regexp", source = "hex", outer_checksum = "A3655FDD288571E90EE9C4009B719FEF59FA16AFCDF3952A76A125AF23CF1592" }, { name = "gleam_stdlib", version = "0.52.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "50703862DF26453B277688FFCDBE9DD4AC45B3BD9742C0B370DB62BC1629A07D" }, { name = "gleam_yielder", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_yielder", source = "hex", outer_checksum = "8E4E4ECFA7982859F430C57F549200C7749823C106759F4A19A78AEA6687717A" }, { name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" }, + { name = "glen", version = "2.2.1", build_tools = ["gleam"], requirements = ["conversation", "filepath", "gleam_community_ansi", "gleam_http", "gleam_javascript", "gleam_stdlib", "marceau"], otp_app = "glen", source = "hex", outer_checksum = "836E324CD4604E19C04469156F3CAD71A5E26619582D2257DC6CD7B8D97D174E" }, + { name = "glen_node", version = "0.0.2", build_tools = ["gleam"], requirements = ["gleam_javascript", "glen"], otp_app = "glen_node", source = "hex", outer_checksum = "D2157D1E38B0963945E55F99E8C3F95FDA494DD1D3DF8DBF3A3744C4E501EA80" }, { name = "jot", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "jot", source = "hex", outer_checksum = "81E61DA896901BFC0522DCFB14C661B6C70F0664C01D8B461F5F9B1A9E965FD4" }, { name = "lustre", version = "4.6.3", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib"], otp_app = "lustre", source = "hex", outer_checksum = "BDF833368F6C8F152F948D5B6A79866E9881CB80CB66C0685B3327E7DCBFB12F" }, + { name = "marceau", version = "1.3.0", build_tools = ["gleam"], requirements = [], otp_app = "marceau", source = "hex", outer_checksum = "2D1C27504BEF45005F5DFB18591F8610FB4BFA91744878210BDC464412EC44E9" }, { name = "ranger", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_yielder"], otp_app = "ranger", source = "hex", outer_checksum = "C8988E8F8CDBD3E7F4D8F2E663EF76490390899C2B2885A6432E942495B3E854" }, { name = "simplifile", version = "2.2.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "0DFABEF7DC7A9E2FF4BB27B108034E60C81BEBFCB7AB816B9E7E18ED4503ACD8" }, ] [requirements] +argv = { version = ">= 1.0.2 and < 2.0.0" } birl = { version = ">= 1.8.0 and < 2.0.0" } +gleam_javascript = { version = ">= 0.13.0 and < 1.0.0" } gleam_stdlib = { version = ">= 0.34.0 and < 2.0.0" } gleeunit = { version = ">= 1.0.0 and < 2.0.0" } +glen = { version = ">= 2.2.1 and < 3.0.0" } +glen_node = { version = ">= 0.0.2 and < 1.0.0" } jot = { version = ">= 2.0.0 and < 3.0.0" } lustre = { version = ">= 4.6.3 and < 5.0.0" } simplifile = { version = ">= 2.2.0 and < 3.0.0" } diff --git a/src/promptbox.gleam b/src/promptbox.gleam index 3fe015d..4020348 100644 --- a/src/promptbox.gleam +++ b/src/promptbox.gleam @@ -1,5 +1,10 @@ +import argv import gleam/io pub fn main() { - io.println("Hello from promptbox!") + case argv.load().arguments { + ["serve"] -> Nil + ["build"] -> Nil + _ -> io.println("usage: gleam run ") + } } diff --git a/src/promptbox/files.gleam b/src/promptbox/files.gleam index 19e497f..7ff75e6 100644 --- a/src/promptbox/files.gleam +++ b/src/promptbox/files.gleam @@ -18,3 +18,14 @@ pub fn read_all_posts() { _ -> order.Lt } } + +pub fn freshen_dist_dir() { + // void this result since we dont care if it cant be deleted / doesn't exist + let _ = simplifile.delete("./dist") + + simplifile.create_directory("./dist") +} + +pub fn write_built_file(name: String, contents: String) { + simplifile.write(to: "./dist/" <> name, contents:) +} diff --git a/src/promptbox/postcss.gleam b/src/promptbox/postcss.gleam new file mode 100644 index 0000000..4baa973 --- /dev/null +++ b/src/promptbox/postcss.gleam @@ -0,0 +1,2 @@ +@external(javascript, "./promptbox/postcss_ffi.js", "compile_css") +pub fn compile_css() -> Nil diff --git a/src/promptbox/postcss_ffi.js b/src/promptbox/postcss_ffi.js new file mode 100644 index 0000000..ea219ee --- /dev/null +++ b/src/promptbox/postcss_ffi.js @@ -0,0 +1,3 @@ +export function compile_css() { + +}