{"id":28510967,"url":"https://github.com/foopis23/cc-pack","last_synced_at":"2025-06-25T21:35:53.751Z","repository":{"id":291321105,"uuid":"977276490","full_name":"foopis23/cc-pack","owner":"foopis23","description":"Very simple package manager for ComputerCraft.","archived":false,"fork":false,"pushed_at":"2025-05-06T16:26:34.000Z","size":36,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T23:06:34.523Z","etag":null,"topics":["cctweaked","computercraft","minecraft"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/foopis23.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-03T20:29:41.000Z","updated_at":"2025-06-08T01:03:37.000Z","dependencies_parsed_at":"2025-05-03T21:35:41.507Z","dependency_job_id":null,"html_url":"https://github.com/foopis23/cc-pack","commit_stats":null,"previous_names":["foopis23/cc-pack"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/foopis23/cc-pack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2Fcc-pack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2Fcc-pack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2Fcc-pack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2Fcc-pack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foopis23","download_url":"https://codeload.github.com/foopis23/cc-pack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foopis23%2Fcc-pack/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261958090,"owners_count":23236401,"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":["cctweaked","computercraft","minecraft"],"created_at":"2025-06-08T23:06:36.734Z","updated_at":"2025-06-25T21:35:53.721Z","avatar_url":"https://github.com/foopis23.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cc-pack\nVery simple package manager for ComputerCraft.\n\n## Features\n- Install packages from remote repositories, URLs, or local files.\n- Uninstall packages.\n- Manage remote repositories.\n\n## Advantages\n- Descriptive error messages.\n- Simple package format.\n- Easy to create and host packages.\n\n## Installation \n```\nwget run https://raw.githubusercontent.com/foopis23/cc-pack/refs/heads/main/install.lua\n```\n\n## Usage\n\n### add (or install) package\n\nInstall a package. Packages can be installed from three different sources:\n\n1. Remote repository:\n\n    ```\n    ccp add package_name\n    ```\n\n    *When installing by package name, cc-pack will search through configured remote repositories to find the package.*\n\n2. URL:\n    ```\n    ccp add https://example.com/package.lua\n    ```\n\n3. Local file:\n    ```\n    ccp add file://path/to/package.lua\n    ```\n\n\n### rm (or uninstall) package\n\nRemove an installed package.\n\n```\nccp rm \u003cpackage_name\u003e\n```\n\n### remote\n\nManage remote package repositories.\n\n```\nccp remote \u003ccommand\u003e\n```\n\nAvailable remote commands:\n\n#### add\n\nAdd a remote package repository.\n\n```\nccp remote add \u003curl\u003e\n```\n\n#### rm\n\nRemove a remote package repository.\n\n```\nccp remote rm \u003curl\u003e\n```\n\n#### list\n\nList all configured remote repositories.\n\n```\nccp remote list\n```\n\n## Creating a Package\n### Package Format\n\nPackages are Lua files that return a table with the following structure:\n\n```lua\n{\n    name = \"package_name\",         -- required: string\n    version = \"1.0.0\",            -- optional: string (defaults to \"0.0.0\")\n    description = \"Description\",   -- optional: string (defaults to \"No description provided.\")\n    author = \"Author Name\",       -- optional: string (defaults to \"Unknown\")\n    base_path = \"https://...\",    -- required: string - base URL for file downloads\n    file_map = {                  -- required: table mapping remote files to local paths\n        [\"/remote/path/file1.lua\"] = \"/local/path/file1.lua\",\n        [\"/remote/path/file2.lua\"] = \"/local/path/file2.lua\"\n    }\n}\n```\n\n### Example Package\n\nHere's an example package definition that installs from a GitHub repository:\n\n```lua\n-- example_package.lua\nreturn {\n    name = \"example_package\",\n    version = \"1.0.0\",\n    description = \"An example package for testing.\",\n    author = \"Garfeud\",\n    base_path = \"https://raw.githubusercontent.com/Space-Boy-Industries/unicornpkg-repo/refs/heads/main\",\n    file_map = {\n        [\"/sbi_software/startup.lua\"] = \"/startup/99_sbs_startup.lua\",\n    },\n}\n```\n\n*As of right now, packages are resolved by file name, not by the name field in the package table. This means that if you have a package file named `example_package.lua`, it will be installed as `example_package` regardless of the name field in the package table.*\n\n## Creating a Remote Repository\nA remote repository is just a web server that hosts packages at a specific URL. The package manager will look for packages in the following format:\n\n```\nhttps://\u003crepository_url\u003e/\u003cpackage_name\u003e.lua\n```\n\n### Github as a Remote Repository\nYou can use GitHub to host your packages. Just create a new repository and add your package files. The package manager will be able to access them using the raw URL.\n\nBase url format:\n```\nhttps://raw.githubusercontent.com/\u003caccount_or_org\u003e/\u003crepo_name\u003e/refs/heads/\u003cbranch_name\u003e\n```\n\n## Configuration\n\nThe package manager uses ComputerCraft's settings API for configuration. Available settings:\n\n### Logging\n\nConfigure the logging level using the `cc-pack.log_level` setting:\n\n```\nset cc-pack.log_level \u003clevel\u003e\n```\n\nLog levels:\n- 0 = DEBUG (verbose output)\n- 1 = INFO (default, normal output)\n- 2 = WARN (warnings only)\n- 3 = ERROR (errors only)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoopis23%2Fcc-pack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoopis23%2Fcc-pack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoopis23%2Fcc-pack/lists"}