{"id":17324423,"url":"https://github.com/guicho271828/eazy-project","last_synced_at":"2026-02-20T19:03:59.449Z","repository":{"id":23586265,"uuid":"26954632","full_name":"guicho271828/eazy-project","owner":"guicho271828","description":"Boost your development!","archived":false,"fork":false,"pushed_at":"2019-05-27T00:11:43.000Z","size":116,"stargazers_count":22,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-10-14T03:24:26.557Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Common Lisp","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/guicho271828.png","metadata":{"files":{"readme":"README.org","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}},"created_at":"2014-11-21T09:51:00.000Z","updated_at":"2022-09-23T00:36:32.000Z","dependencies_parsed_at":"2022-08-19T01:00:35.533Z","dependency_job_id":null,"html_url":"https://github.com/guicho271828/eazy-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/guicho271828/eazy-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guicho271828%2Feazy-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guicho271828%2Feazy-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guicho271828%2Feazy-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guicho271828%2Feazy-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guicho271828","download_url":"https://codeload.github.com/guicho271828/eazy-project/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guicho271828%2Feazy-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29661585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T16:33:43.953Z","status":"ssl_error","status_checked_at":"2026-02-20T16:33:43.598Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-15T14:10:37.840Z","updated_at":"2026-02-20T19:03:59.429Z","avatar_url":"https://github.com/guicho271828.png","language":"Common Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"* EAZY-Project - Interactive Project Generator \u0026 Manager\n\n[[https://travis-ci.org/guicho271828/eazy-project][https://travis-ci.org/guicho271828/eazy-project.svg?branch=master]]\n\nThis used to be a fork from cl-project@fukamachi, but since almost everything is\nrewritten and added very much of new features, I renamed it as a new library.\nIt is focused on the interactive features.\n\nNow quicklisp loadable: =(ql:quickload :eazy-project)=.\n\n* Launching the menu from the shell\n\nIn order to use the library from the command line you have to install it from =ros install=.\n\n#+begin_src\n$ ros install eazy-project\n$ eazy-project\n#+end_src\n\nMake sure =~/.roswell/bin= is in the =PATH=. otherwise replace the second line with =ros exec eazy-project=\n\n* Usage\n\n*On the command line*:\n\n#+begin_src \n$ eazy-project                 # launches the main menu.\n$ eazy-project \u003cproject name\u003e  # starts from the project creation submenu, with the project name already set.\n#+end_src\n\n*On REPL*:\n\n#+BEGIN_SRC lisp\n;; Add this statement in your .sbclrc / .ccl-init.lisp\n(ql:quickload :eazy-project.autoload)\n\n;; To launch a menu, enter \"!\".\n;; This is a symbol-macrolet alias to (eazy-project:launch-menu).\n;; symbol \"!\" is imported to CL-USER when eazy-project.autoload is loaded.\n!\n\n;; \"!!\" restores the saved lisp state (described later).\n!!\n\n;; Otherwise load eazy-project and use !/!! with a package prefix\n(ql:quickload :eazy-project)\neazy-project:!\n#+END_SRC\n\n** Tutorial: Creating a project using templates\n\nAssume you are creating a new project named \"myproj\".\nFirst, open the menu from a REPL or the command line.\n\n#+BEGIN_SRC \n(You are now in menu EP-MAIN.)\nWhat to do next?\n\nHere are current default configs:\n:SESSION.SYSTEMS     = (...\n                        \"fare-quasiquote\")\n:SESSION.PACKAGE     = \"COMMON-LISP-USER\"\n:LOCAL-REPOSITORY    = #P\"/mnt/video/guicho/repos/lisp/\"\n:SKELETON-DIRECTORY  = #P\"/mnt/video/guicho/repos/lisp/eazy-project/skeleton\"\n:AUTHOR              = \"Masataro Asai\"\n:EMAIL               = \"guicho2.71828@gmail.com\"\n:GIT                 = T\n:README-EXTENSION    = \"md\"\n:SOURCE-DIR          = \"src\"\n:TEST-DIR            = \"t\"\n:TEST-SUBNAME        = \"test\"\n:DELIMITER           = \".\"\n:LICENSE             = \"LLGPL\"\n:TEST                = :FIVEAM\n   [Condition of type EAZY-PROJECT:ASK]\n\nRestarts:\n 0: [SESSION] Save/Restore the currently loaded libraries\n 1: [CREATE-PROJECT] Create a new project.\n 2: [SET-GLOBAL] Modify these default values\n 3: [UP] Back to the section EP-MAIN.\n 4: [QUIT-SESSION] Quit this session.\n 5: [RETRY] Retry SLIME REPL evaluation request.\n#+END_SRC\n\nNoitice the several entries are already filled in, e.g.,\n=:AUTHOR = \"Masataro Asai\"=, =:EMAIL = \"guicho2.71828@gmail.com\"=.\nThey can be modified later in =SET-GLOBAL= submenu. The similar interactive interface shows up.\nTo select a submenu, enter the corresponding number for the restarts (0-5) or click on each menu (on Slime REPL).\n\nIf you are satisfied with these global configurations, then select =CREATE-PROJECT=. A new menu shows up:\n\n#+BEGIN_SRC \n(You are now in menu CREATE-PROJECT.)\nSelect and enter the information, then select 'CREATE'.\nCurrent global configuration:\n....\n\nCurrent local configuration:\n(no configuration specified)\n   [Condition of type EAZY-PROJECT:ASK]\n\nRestarts:\n 0: [CREATE] Create\n 1: [RESET-LOCAL-CONFIG] Reset the current local config\n 2: [ADD-LOCAL-DEPENDENCY] Add-Local-Dependency\n 3: [NAME] Name\n...\n#+END_SRC\n\nIn this submenu, you can further modify several /project-local/\nconfigurations. Those configurations are cleared each time you enter\n=CREATE-PROJECT= submenu.\n\n+ Select =NAME= to enter the name of the new project, now \"myproj\". (if\n  you attempt to create a project without it, the generator complains and\n  opens an interactive prompt).\n+ You can further add the dependencies in ADD-LOCAL-DEPENDENCY submenu.\n  + The project-local dependency is a dependency only for this project.\n\nFinally, select =CREATE=. It will set up the repository, initialize the\nrepo with git (by default. It can be disabled) and load it.\n\n** Tutorial: Restore the Yesterday's Coding Environment\n\nSave and restore the set of currently loaded libraries.\nIn the main menu, select the =SESSION= submenu.\n(The menu items below might not reflect the latest version)\n\nMain menu:\n#+BEGIN_SRC \n(You are now in menu EP-MAIN.)\nWhat to do next?\n...\n...\n   [Condition of type EAZY-PROJECT:ASK]\n\nRestarts:\n 0: [SESSION] Save/Restore the currently loaded libraries\n 1: [CREATE-PROJECT] Create a new project.\n 2: [SET-GLOBAL] Modify these default values\n 3: [UP] Back to the section EP-MAIN.\n 4: [QUIT-SESSION] Quit this session.\n 5: [RETRY] Retry SLIME REPL evaluation request.\n#+END_SRC\n\nSESSION submenu:\n#+BEGIN_SRC \n(You are now in menu SESSION.)\nWhat to do next?\n   [Condition of type EAZY-PROJECT:ASK]\n\nRestarts:\n 0: [TOGGLE-WATCH] Watch and automatically save the session\n 1: [ADD-DEFAULT-SYSTEM] Add-Default-System\n 2: [SAVE] Save the current loaded session\n 3: [ABORT] Return to sldb level 1.\n 4: [UP] Back to the section EP-MAIN.\n 5: [QUIT-MENU] Quit this eazy-project menu.\n#+END_SRC\n\nThen, SAVE or RESTORE the current session. SAVE will store the current\n=*package*= and =asdf:already-loaded-systems= to a persistent database.\nRESTORE will restore the saved session. Finally, TOGGLE-WATCH\nwill initiate watching in a background thread\nwhich periodically check and save the session.\n\n** TODO Using Programatically\n\nAlthough it is possible, the interface is not documented not structured\nvery well.\nFor automated testing, I'm using =simulate-menu-selection=, but please\ndon't use it. For such a purpose, use =cl-project=.\n\n#+BEGIN_SRC lisp\n(simulate-menu-selection\n  `((eazy-project::create-project)\n    (:name \"test\")\n    (eazy-project::create)))\n#+END_SRC\n\nI plan to separate the interactive interface as an independent library in\nthe near future.\n\n** TODO Skeletons\n\nSkeleton of the new project is currently not customizable, unlike original\n=cl-project=.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguicho271828%2Feazy-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguicho271828%2Feazy-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguicho271828%2Feazy-project/lists"}