{"id":19741811,"url":"https://github.com/ludevnet/lupdate","last_synced_at":"2025-11-23T13:01:51.683Z","repository":{"id":128388301,"uuid":"445613604","full_name":"LUDevNet/LUpdate","owner":"LUDevNet","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-27T23:04:42.000Z","size":74,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T07:00:59.161Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/LUDevNet.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}},"created_at":"2022-01-07T18:15:45.000Z","updated_at":"2022-01-17T03:49:51.000Z","dependencies_parsed_at":"2024-11-12T01:30:50.099Z","dependency_job_id":"604aaab3-e0c0-4e15-ba11-59ed04c6e695","html_url":"https://github.com/LUDevNet/LUpdate","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/LUDevNet/LUpdate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LUDevNet%2FLUpdate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LUDevNet%2FLUpdate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LUDevNet%2FLUpdate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LUDevNet%2FLUpdate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LUDevNet","download_url":"https://codeload.github.com/LUDevNet/LUpdate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LUDevNet%2FLUpdate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285954195,"owners_count":27260104,"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-11-23T02:00:06.149Z","response_time":135,"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-12T01:27:56.591Z","updated_at":"2025-11-23T13:01:51.643Z","avatar_url":"https://github.com/LUDevNet.png","language":"Rust","readme":"# LUpdate\n\nThis is a command line tool to generate LU-patcher *compatible* cache directories.\n\n## Usage\n\nAssuming a directory structure like the following, where `{cat1}`, `{cat2}`, …, `{catN}` are directories\nwith data:\n\n```txt\n/LUpdate.toml\n/dev\n├──/server\n│  ├──/MyServer.exe\n│  ├──/res\n│  │  ├──{cat1}\n│  │  ├──{cat2}\n│  │  ⋮\n│  │  └──{catN}\n│  └──/config.toml\n└──/project\n   ├──/MyProject.exe\n   ├──/res\n   │  ├──{cat1}\n   │  ├──{cat2}\n   │  ⋮\n   │  └──{catN}\n   └──/config.toml\n/cache\n├──/luserver\n└──/luproject\n```\n\nYou need to do the following:\n\n1. Run `lupdate pki` to generate `primary.pki`\n2. Run `lupdate cache` to populate the sd0 cache and create `trunk.txt`\n3. Run `lupdate pack` to pre-package all PK-archives with `front` (`--filter *front*`)\n4. Run `lupdate cache` again to cache PK files\n5. Cut down `trunk.txt` to what the frontend needs\n\n*Note*: This process may change in the future\n\n## Sample config file\n\nSave the following file as `LUpdate.toml` in the root directory (i.e. next to `dev`).\nFor the PKI you need another config file in the project dir (i.e. `server` / `project`)\n\n```toml\n[general]\nsrc = \"dev\"\n\n[project.luserver]\ndir = \"server\"\nconfig = \"config.toml\"\ncache = \"cache\"\n```\n\n## PKI Config\n\nExample:\n\n```toml\n[pack.cat1]\ndirs = [\n   \"cat1\\\\sub1\", \n   \"cat1\\\\sub3\",\n]\n\n[pack.cat2]\ndirs = [\n   \"cat2\\\\subA\",\n   \"cat2\\\\subX\"\n]\n```\n\n## Disclaimer\n\nThis tool is intended to facilitate distributing new user-generated content for\nprivate servers. Use is at your own risk. Note that the patcher protocol is using a\npublic HTTP host, so should you use this tool to prepare a full client, you *are distributing it*\nand are liable for any consequences of that.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fludevnet%2Flupdate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fludevnet%2Flupdate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fludevnet%2Flupdate/lists"}