| #!/usr/bin/env node |
| import { relative } from 'node:path'; |
| import { defineCommand, runMain } from 'citty'; |
| import { consola } from 'consola'; |
| import { d as downloadTemplate, s as startShell } from './shared/giget.OCaTp9b-.mjs'; |
| import 'node:fs/promises'; |
| import 'node:fs'; |
| import 'assert'; |
| import 'path'; |
| import 'events'; |
| import 'stream'; |
| import 'string_decoder'; |
| import 'buffer'; |
| import 'zlib'; |
| import 'process'; |
| import 'fs'; |
| import 'util'; |
| import 'crypto'; |
| import 'pathe'; |
| import 'defu'; |
| import 'nypm'; |
| import 'node:stream'; |
| import 'node:child_process'; |
| import 'node:os'; |
| import 'node:util'; |
| import 'node-fetch-native/proxy'; |
|
|
| const name = "giget"; |
| const version = "2.0.0"; |
| const description = "Download templates and git repositories with pleasure!"; |
| const pkg = { |
| name: name, |
| version: version, |
| description: description}; |
|
|
| const mainCommand = defineCommand({ |
| meta: { |
| name: pkg.name, |
| version: pkg.version, |
| description: pkg.description |
| }, |
| args: { |
| |
| template: { |
| type: "positional", |
| description: "Template name or a a URI describing provider, repository, subdir, and branch/ref" |
| }, |
| dir: { |
| type: "positional", |
| description: "A relative or absolute path where to extract the template", |
| required: false |
| }, |
| auth: { |
| type: "string", |
| description: "Custom Authorization token to use for downloading template. (Can be overriden with `GIGET_AUTH` environment variable)" |
| }, |
| cwd: { |
| type: "string", |
| description: "Set current working directory to resolve dirs relative to it" |
| }, |
| force: { |
| type: "boolean", |
| description: "Clone to existing directory even if exists" |
| }, |
| forceClean: { |
| type: "boolean", |
| description: "Remove any existing directory or file recusively before cloning" |
| }, |
| offline: { |
| type: "boolean", |
| description: "o not attempt to download and use cached version" |
| }, |
| preferOffline: { |
| type: "boolean", |
| description: "Use cache if exists otherwise try to download" |
| }, |
| shell: { |
| type: "boolean", |
| description: "Open a new shell with current working " |
| }, |
| install: { |
| type: "boolean", |
| description: "Install dependencies after cloning" |
| }, |
| verbose: { |
| type: "boolean", |
| description: "Show verbose debugging info" |
| } |
| }, |
| run: async ({ args }) => { |
| if (args.verbose) { |
| process.env.DEBUG = process.env.DEBUG || "true"; |
| } |
| const r = await downloadTemplate(args.template, { |
| dir: args.dir, |
| force: args.force, |
| forceClean: args.forceClean, |
| offline: args.offline, |
| preferOffline: args.preferOffline, |
| auth: args.auth, |
| install: args.install |
| }); |
| const _from = r.name || r.url; |
| const _to = relative(process.cwd(), r.dir) || "./"; |
| consola.log(`\u2728 Successfully cloned \`${_from}\` to \`${_to}\` |
| `); |
| if (args.shell) { |
| startShell(r.dir); |
| } |
| } |
| }); |
| runMain(mainCommand); |
|
|