{"id":15057516,"url":"https://github.com/diversable/maurice","last_synced_at":"2025-04-10T11:11:40.652Z","repository":{"id":211988490,"uuid":"595981347","full_name":"diversable/maurice","owner":"diversable","description":"The Julia Language project manager","archived":false,"fork":false,"pushed_at":"2023-10-18T18:47:31.000Z","size":246,"stargazers_count":6,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T10:03:34.627Z","etag":null,"topics":["cli","cli-app","developer-tools","julia","julialang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diversable.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-02-01T08:00:34.000Z","updated_at":"2023-11-23T09:45:36.000Z","dependencies_parsed_at":"2023-12-12T01:08:09.203Z","dependency_job_id":null,"html_url":"https://github.com/diversable/maurice","commit_stats":null,"previous_names":["diversable/maurice"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diversable%2Fmaurice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diversable%2Fmaurice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diversable%2Fmaurice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diversable%2Fmaurice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diversable","download_url":"https://codeload.github.com/diversable/maurice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248208561,"owners_count":21065202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cli-app","developer-tools","julia","julialang"],"created_at":"2024-09-24T22:07:33.387Z","updated_at":"2025-04-10T11:11:40.636Z","avatar_url":"https://github.com/diversable.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Julia-Rust](https://github.com/diversable/Maurice/actions/workflows/julia-rust.yml/badge.svg?branch=main)](https://github.com/diversable/Maurice/actions/workflows/julia-rust.yml)\n\nThe `mce` (Maurice) CLI has useful functionality for beginners and advanced programmers - so feel free to give it a try and give feedback on the commands / workflow in the Github \"issues\".\n\nJust be aware that this software is still under development and is currently in the 'Alpha' phase.\n\n\nThere's more to come!\n\n\n_Windows Compatibility_:\n\nThe CLI is currently not fully functional / tested on Windows; it works well on Linux though (and presumably Windows' WSL as well as MacOS, too).\n\nNote:\n\nThe Julia language must be installed and on the user's path for this software to function properly. If Julia is not installed, the `mce` tool will ask if you want to install Julia (on Linux or MacOS). Julia install will be performed with [the `juliaup` command line tool](https://github.com/JuliaLang/juliaup).\n\n---\n\n\n\nThe available commands are summarized here:\n(Full descriptions are explicated below)\n\n- mce\n  - new | generate\n    - script \u003cscript_name\u003e\n    - app \u003capp_name\u003e\n    - package \u003cpackage_name\u003e\n  - jl\n    - repl\n    - pluto | notebook | nb\n    - edit | code\n  - run | exec \u003cscript_to_run.jl\u003e\n  - test\n    - run\n  - compile | create\n    - app \u003capp_src_dir\u003e \u003ccompiled_app_output\u003e\n    \u003c!-- - sysimage --\u003e\n  - pkg\n    - status | list | ls\n    - add | install \u003cpackage_name\u003e\n    - remove | rm | delete \u003cpackage_name\u003e\n    - update \u003c?package_name\u003e\n\nNOTE: Using partial commands also works with this CLI tool, so using a command like `mce p up` will work the same as the command `mce pkg update` and will update all packages; `mce j ed` will work the same as `mce jl edit` and will start up VSCode as well as start the Julia process in the terminal for you.\n\n---\n\nSome helpful workflow shortcuts with the `mce` (Maurice) CLI are:\n\n- create an environment with default files \u0026 folders in the current working directory: `mce new` or `mce new env`\n\n- Get the status of packages in your environment:\n`mce pkg ls` or `mce p st` (or `mce pkg status` if you like typing)\n\n- Install a package in the local environment:\n  `mce p i \u003cpackage_name\u003e` or `mce p add \u003cpackage_name\u003e`\n  (ie. Maurice package install | add package)\n\n- Start VSCode in the current directory and start the julia repl for interactive work on the side: `mce jl edit` or `mce j ed` (NB: currently, VSCode must already be installed for this command to work)\n\n- Start a Pluto Notebook:\n  `mce jl pluto` or `mce j p`\n\n\n---\n\n\nCurrently, the CLI functions include:\n(note: if arguments are not given by the user on the command line, then Maurice will ask for them explicitly)\n\n#### \u003cins\u003emce (new | generate)\u003c/ins\u003e\n\u003e mce (new | generate)\n\ncreate a new environment \u0026 project structure; the CLI will ask for a project name\n\n\n\u003e mce new script \u003cscript_name\u003e\n\nsame as above: create a new environment \u0026 project structure; the CLI will ask for a project name if one is not provided\n\n\n\u003e mce new app \u003capp_name\u003e\n\ncreate a new app project structure; the CLI will ask for an app name if one is not provided\n\n\n\u003e mce new package \u003cpackage_name\u003e\n\ncreate a new package, using PkgTemplates.jl (and the template in the startup file written to ./julia/config); the CLI will ask for a package name if one is not provided\n\n\n#### \u003cins\u003emce jl\u003c/ins\u003e\n\n\u003e mce jl\n\nstart Julia with the project in the current directory activated (default), or run the Julia Repl with the global env. if not in a Julia project directory\n\n\n\u003e mce jl (repl | run)\n\nsame as above: start Julia with the project in the current directory activated (default), or run the Julia Repl with the global env. if not in a Julia project directory\n\n\n\u003e mce jl (pluto | notebook | nb)\n\nstarts Pluto.jl, the notebook environment written in native Julia. If Pluto is not installed, mce will install it for you.\n\n\n\u003e mce jl (edit | code)\n\nopen VSCode with the current directory, and start up a Julia process in the terminal for working / testing interactively as well; currently, VSCode must already be installed and on the the user's $PATH\n\n#### \u003cins\u003emce run\u003c/ins\u003e\n\n\u003e mce run \u003cscript_to_run.jl\u003e\n\nrun the script provided on the command line. If a script name isn't provided, Maurice will ask for the path to a script.\n\n#### \u003cins\u003emce test\u003c/ins\u003e\n\n\u003e mce test\n\nrun tests defined in the ./test/runtests.jl file\n\n\n\u003e mce test run\n\nsame as above; run tests defined in the ./test/runtests.jl file\n\n#### \u003cins\u003emce (compile | create)\u003c/ins\u003e\n\n\u003e mce compile app \u003cpath_to_app_source\u003e \u003cpath_for_compilation_output\u003e\n\nCompile an app into an executable which can be run without Julia being installed\n\n#### \u003cins\u003emce pkg\u003c/ins\u003e\n\n\u003e mce pkg\n\nget status of installed packages. NB: all commands default to current local environment for adding/removing packages, and fall back to global environment if not working in a project directory\n\n\n\u003e mce pkg (status | list | ls)\n\nget status of installed packages / list installed packages.\n\n\n\u003e mce pkg add \u003cpackage_name\u003e\n\nadd a package from a Julia registry\n\n\n\u003e mce pkg (remove | rm | delete) \u003cpackage_name\u003e\n\nremove an installed package; defaults to operating on local project environment, and falls back to global environment\n\n\n\u003e mce pkg update \u003c?package_name\u003e\n\nupdate all packages if the 'package_name' is not provided, or update specific package in local environment if 'package_name' is given\n\n\n---\n\n\n### Building from source:\n\nRust language must be installed to compile this tool; Rust can be installed using [the rustup tool](https://rustup.rs/).\n\nFor non-Rust users: after cloning this repo from Github, the `mce` CLI tool can be compiled by typing `cargo build --release` onto the  command line in the project's root directory, and then copying the `mce` binary from the `(project root)/target/release/` folder into a directory on your $PATH (eg. `/usr/bin` or `~/bin`).\n\nOn Linux or Windows WSL, if you enter the `(project root)/target/release` directory, then you can use the command `cp ./mce ~/bin/` to add the binary to your $PATH (you may need to create the ~/bin/ directory if it doesn't exist). Then you're ready to start using the mce (Maurice) CLI tool.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiversable%2Fmaurice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiversable%2Fmaurice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiversable%2Fmaurice/lists"}