{"id":28828690,"url":"https://github.com/crisfeim/cli-swiftimport","last_synced_at":"2025-08-21T17:27:51.219Z","repository":{"id":297017506,"uuid":"994991978","full_name":"crisfeim/cli-swiftimport","owner":"crisfeim","description":"🛠️ A CLI tool that resolves import statements in Swift scripts — enabling file and folder-level inclusion to improve Swift scripting ergonomics.","archived":false,"fork":false,"pushed_at":"2025-06-03T12:32:00.000Z","size":159,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-03T22:29:37.235Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Swift","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/crisfeim.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-06-02T19:54:04.000Z","updated_at":"2025-06-03T12:32:01.000Z","dependencies_parsed_at":"2025-06-03T22:30:55.457Z","dependency_job_id":"b10e3ba2-6932-43cb-a113-ce4b43c9d6fc","html_url":"https://github.com/crisfeim/cli-swiftimport","commit_stats":null,"previous_names":["crisfeim/cli-swiftimporter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/crisfeim/cli-swiftimport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisfeim%2Fcli-swiftimport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisfeim%2Fcli-swiftimport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisfeim%2Fcli-swiftimport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisfeim%2Fcli-swiftimport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crisfeim","download_url":"https://codeload.github.com/crisfeim/cli-swiftimport/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisfeim%2Fcli-swiftimport/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260690915,"owners_count":23047101,"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":[],"created_at":"2025-06-19T05:09:08.203Z","updated_at":"2025-08-21T17:27:51.183Z","avatar_url":"https://github.com/crisfeim.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Swift import\n\nA CLI tool that resolves import statements in Swift scripts — enabling file and folder-level inclusion to improve Swift scripting ergonomics.\n\n![](img.png)\n\n### Introduction\n\nGiven a scripting project structured as follows:\n\n```\n/b.swift\n    func b() { print(\"b\") }\n\n/folder\n    |- c.swift\n        func c() { print(\"c\") }\n    |- d.swift\n        func d() { print(\"d\") }\n    \n/a.swift\n    // import b.swift\n    // import /folder\n    \n    b()\n    c()\n    d()\n```\n\nWhen running:\n\n```bash\n$ swiftimport a.swift \n```\n\nWill resolve all imports and return a single concatenated file:\n\n```\nfunc b() { print(\"b\") }\nfunc c() { print(\"c\") }\nfunc d() { print(\"d\") }\n\nb()\nc()\nd()\n```\n\nThen you can pass the concatenation to the compiler to run the code:\n\n```\ntmp_file=\"swiftimport-$(date +\"%Y%m%d-%H%M%S\").swift\"\nswiftimport --input \"$1\" \u003e \"$tmp_file\"\nswift \"$tmp_file\"\nrm \"$tmp_file\"\n```\n\n### Use cases\n\n- Quick explorations and playgrounds\n- Small sized projects without Xcode\n- Expanding Swift scripting\n\n### Usage\n\nAdd this run script to your IDE/Text editor or run directly from terminal:\n\n```bash\ntmp_file=\"swiftimport-$(date +\"%Y%m%d-%H%M%S\").swift\"\nswiftimport --input \"$1\" \u003e \"$tmp_file\"\nswift \"$tmp_file\"\nrm \"$tmp_file\"\n```\n\n\n\nhttps://github.com/user-attachments/assets/39679225-4540-4147-b221-8237fc70ec5c\n\n\n\n#### CodeRunner\n\nIf the swiftimport binary is in your $PATH, you can add preprocessing to your Swift compile script in CodeRunner:\n\n```bash\n[ -z \"$CR_SUGGESTED_OUTPUT_FILE\" ] \u0026\u0026 CR_SUGGESTED_OUTPUT_FILE=\"$PWD/${CR_FILENAME%.*}\"\n\n# Check if Xcode is installed\nxcrun swiftc \u0026\u003e/dev/null\nstatus=$?\nif [ $status -eq 69 ]; then\n    echo \"To run swift code you need to open Xcode and accept the developer license agreement.\"\n    exit 69\nelse\n    if [ \"$CR_FILENAME\" = \"main.swift\" ]; then\n        xcrun -sdk macosx swiftc -o \"$CR_SUGGESTED_OUTPUT_FILE\" *.swift \"${@:1}\" ${CR_DEBUGGING:+-g}\n    else\n        TMP_SWIFT=\"$CR_TMPDIR/swiftimport-$(date +\"%Y%m%d-%H%M%S\").swift\"\n        swiftimport --input \"$CR_FILENAME\" \u003e \"$TMP_SWIFT\"\n        xcrun -sdk macosx swiftc -o \"$CR_SUGGESTED_OUTPUT_FILE\" \"$TMP_SWIFT\" \"${@:1}\" ${CR_DEBUGGING:+-g}\n    fi\n    status=$?\nfi\n\nif [ $status -eq 0 ]; then\n    echo \"$CR_SUGGESTED_OUTPUT_FILE\"\nfi\nexit $status\n```\n\n\n\nhttps://github.com/user-attachments/assets/508ba6d8-7221-4a78-b99d-02ed00921337\n\n\n\n### Installation\n\nClone repo and build binary:\n\n```bash\nswift build -c release\n```\n\nThen optionally move the binary to your global path:\n\n```bash\nsudo mv .build/release/swiftimport /usr/local/bin\n```\nSo you can run it from anywhere with:\n\n```bash\n$ swiftimport --input yourfile.swift\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisfeim%2Fcli-swiftimport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrisfeim%2Fcli-swiftimport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisfeim%2Fcli-swiftimport/lists"}