{"id":20646096,"url":"https://github.com/joefiorini/projit","last_synced_at":"2025-09-05T03:41:23.385Z","repository":{"id":66384307,"uuid":"1824020","full_name":"joefiorini/projit","owner":"joefiorini","description":"Generate project directory structure based on a switchable template.","archived":false,"fork":false,"pushed_at":"2012-01-20T02:33:19.000Z","size":183,"stargazers_count":32,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-16T02:48:25.080Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/joefiorini.png","metadata":{"files":{"readme":"README.markdown","changelog":"Changelog.markdown","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":"2011-05-31T00:52:36.000Z","updated_at":"2022-11-28T16:09:28.000Z","dependencies_parsed_at":"2023-02-20T03:15:29.295Z","dependency_job_id":null,"html_url":"https://github.com/joefiorini/projit","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/joefiorini/projit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joefiorini%2Fprojit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joefiorini%2Fprojit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joefiorini%2Fprojit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joefiorini%2Fprojit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joefiorini","download_url":"https://codeload.github.com/joefiorini/projit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joefiorini%2Fprojit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273708966,"owners_count":25153728,"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","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-11-16T16:23:52.334Z","updated_at":"2025-09-05T03:41:23.347Z","avatar_url":"https://github.com/joefiorini.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A clean ~ keeps a development environment together\n\nProjit is a utility to specify directory structures for the different types of projects you work on and consistently generate them. It very nicely supports creating directories and files, copying directories and files, symlinking to dropbox and cloning source code directly from any git repository.\n\n## Installation\n\n    gem install projit\n\nIf you don't use Ruby on a regular basis you may want to hold off until I get a chance to create some package manager recipes.\n\n## Usage\n\n    projit new personal/projit\n\nThis will run the recipe you have installed in `~/.projit/template.rb`. To get the generator that I use for web applications download [this gist][template].\n\n    projit new personal/projit --git joefiorini/projit\n\nThis will run the same recipe but also clone the specified git repository (assuming you have `clone_from_git` in your recipe).\n\n    projit new screencast personal/projit_demo\n\nRuns the recipe stored in `~/.projit/screencast.rb` to setup a directory structure for screencasting. To get the generator that I use for screencasting download [this gist][screencasting] (structure stolen from @topfunky).\n\n## Templates\n\nProjit makes a few methods available to you to assist you in creating your directory structure. Use `project_name` to get access to the name you specified at the command line. `create_project_directory` will create the directory specified by \"name\" at your project root; its counterpart `create_project_subdirs` will create the directories you specified by calling `project_subdirs` under the project. Finally, `create_link_in_dropbox` will symlink your project to Dropbox (add a `dropbox_home` option to ~/.projit/config).\n\n## Contributions\n\nContributions are encouraged, but given the very personal nature of workflows don't be suprised if I prefer creating recipes over adding to projit itself. Feel free to send pull requests though, it's the only way for me to see how other people use this. I will not accept Ruby code without spec coverage.\n\nI would especially welcome package manager packages/tips. I don't want to require Rubygems for others to use this, but I have never packaged anything for distribution to brew/apt/emerge/port/etc.\n\nNow, go get your home directory organized!\n\n[template]: https://gist.github.com/1336554\n[screencasting]: https://gist.github.com/1336563\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoefiorini%2Fprojit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoefiorini%2Fprojit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoefiorini%2Fprojit/lists"}