diff --git a/pkg/cli/auth.go b/pkg/cli/auth.go index ddf7691..513a90e 100644 --- a/pkg/cli/auth.go +++ b/pkg/cli/auth.go @@ -160,11 +160,11 @@ func newAuthCommand() *cli.Command { Description: `Authenticate with the Pinner.xyz service. Ways to authenticate: - 1. Provide JWT token directly: pinner auth + 1. Provide an auth token directly: pinner auth 2. Interactive login: pinner auth (prompts for all inputs) 3. Semi-interactive: pinner auth --email user@example.com (prompts for password and OTP if needed) - 4. Non-interactive: PINNER_EMAIL=x PINNER_PASSWORD=y pinner auth - 5. Non-interactive with 2FA: PINNER_EMAIL=x PINNER_PASSWORD=y PINNER_OTP=123456 pinner auth + 4. Non-interactive: PINNER_EMAIL=x PINNER_PASSWORD=*** pinner auth + 5. Non-interactive with 2FA: PINNER_EMAIL=x PINNER_PASSWORD=*** PINNER_OTP=123456 pinner auth 6. Secure non-interactive: echo "pass" | pinner auth --email user@example.com Examples: @@ -173,7 +173,7 @@ Examples: pinner auth --email user@example.com --password mypass --otp-code 123456 PINNER_EMAIL=user@example.com PINNER_PASSWORD=mypass pinner auth echo "mypass" | pinner auth --email user@example.com --key-name "my-laptop"`, - ArgsUsage: "[jwt-token]", + ArgsUsage: "[token]", Flags: []cli.Flag{ &cli.StringFlag{ Name: FlagEmail, @@ -204,7 +204,7 @@ Examples: }, &cli.BoolFlag{ Name: FlagNoCreateKey, - Usage: "Skip API key creation, save JWT directly", + Usage: "Skip API key creation, save token directly", }, &cli.BoolFlag{ Name: FlagForce, diff --git a/pkg/cli/dns.go b/pkg/cli/dns.go index 721100f..3271e4c 100644 --- a/pkg/cli/dns.go +++ b/pkg/cli/dns.go @@ -113,7 +113,7 @@ func newDNSZonesGetCommand() *cli.Command { return &cli.Command{ Name: "get", Usage: "Get a DNS zone by domain", - Description: `Get details of a specific DNS zone by domain name or ID. + Description: `Get details of a specific DNS zone. Examples: pinner dns zones get example.com @@ -129,7 +129,7 @@ func newDNSZonesDeleteCommand() *cli.Command { return &cli.Command{ Name: "delete", Usage: "Delete a DNS zone", - Description: `Delete a DNS zone and all its records by domain name or ID. + Description: `Delete a DNS zone and all its records. Examples: pinner dns zones delete example.com`, @@ -185,7 +185,7 @@ func newDNSRecordsListCommand() *cli.Command { return &cli.Command{ Name: "list", Usage: "List DNS records for a zone", - Description: `List all DNS records for a specific zone by domain name or ID. + Description: `List all DNS records for a specific zone. Examples: pinner dns records list example.com @@ -201,11 +201,11 @@ func newDNSRecordsCreateCommand() *cli.Command { return &cli.Command{ Name: "create", Usage: "Create a DNS record", - Description: `Create a new DNS record in a zone. + Description: `Create a DNS record in the specified zone. Examples: pinner dns records create example.com --name www --type CNAME --content example.com - pinner dns records create example.com --name _dnslink --type TXT --content "/ipfs/QmHash" --ttl 3600 + pinner dns records create example.com --name _dnslink --type TXT --content "/ipfs/bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e" --ttl 3600 pinner dns records create example.com --name @ --type A --content 192.168.1.1 --json`, ArgsUsage: "", Flags: []cli.Flag{ diff --git a/pkg/cli/download.go b/pkg/cli/download.go index f9488da..9e18042 100644 --- a/pkg/cli/download.go +++ b/pkg/cli/download.go @@ -35,12 +35,12 @@ For streaming content to stdout, use 'pinner cat' instead. For listing directory contents, use 'pinner ls' instead. Examples: - pinner download QmHash - pinner download QmHash/subdir/file.txt - pinner download QmHash -o myfile.txt - pinner download QmHash -o /path/to/dir/ - pinner download QmHash -o existing.txt --force - pinner download QmHash --dry-run + pinner download bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner download bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e/subdir/file.txt + pinner download bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e -o myfile.txt + pinner download bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e -o /path/to/dir/ + pinner download bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e -o existing.txt --force + pinner download bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --dry-run The output includes: - CID: Content identifier of the downloaded file @@ -76,11 +76,11 @@ func newCatCommand() *cli.Command { Supports CID paths (e.g., CID/path/to/file) to cat a specific file from a directory. Examples: - pinner cat QmHash - pinner cat QmHash/path/to/file.txt - pinner cat QmHash > output.txt - pinner cat QmHash | jq . - pinner cat QmHash | gzip > data.gz + pinner cat bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner cat bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e/path/to/file.txt + pinner cat bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e > output.txt + pinner cat bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e | jq . + pinner cat bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e | gzip > data.gz Note: This command outputs raw content to stdout. Use --verbose or redirect stderr for progress info.`, @@ -111,10 +111,10 @@ Supports CID paths (e.g., CID/path/to/dir) to list nested directories. If the path targets a file, shows file metadata instead of erroring. Examples: - pinner ls QmHash - pinner ls QmHash --json - pinner ls QmHash --limit 5 - pinner ls QmHash/subdir`, + pinner ls bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner ls bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --json + pinner ls bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --limit 5 + pinner ls bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e/subdir`, ArgsUsage: "[/]", Flags: []cli.Flag{ LimitFlag(), diff --git a/pkg/cli/flags.go b/pkg/cli/flags.go index 5aa1083..29fb647 100644 --- a/pkg/cli/flags.go +++ b/pkg/cli/flags.go @@ -406,7 +406,7 @@ func RequiredDomainFlag() *cli.StringFlag { func TargetHashFlag() *cli.StringFlag { return &cli.StringFlag{ Name: FlagTargetHash, - Usage: "Target CID (IPFS hash) for the website", + Usage: "Target CID for the website", } } @@ -415,7 +415,7 @@ func TargetHashFlag() *cli.StringFlag { func RequiredTargetHashFlag() *cli.StringFlag { return &cli.StringFlag{ Name: FlagTargetHash, - Usage: "Target CID (IPFS hash) for the website", + Usage: "Target CID for the website", Required: true, } } @@ -424,7 +424,7 @@ func RequiredTargetHashFlag() *cli.StringFlag { func CIDFlag() *cli.StringFlag { return &cli.StringFlag{ Name: FlagCID, - Usage: "CID (Content Identifier) for the website", + Usage: "CID for the website", } } @@ -432,7 +432,7 @@ func CIDFlag() *cli.StringFlag { func RequiredCIDFlag() *cli.StringFlag { return &cli.StringFlag{ Name: FlagCID, - Usage: "CID (Content Identifier) for the website", + Usage: "CID for the website", Required: true, } } diff --git a/pkg/cli/flags_test.go b/pkg/cli/flags_test.go index 59c756e..4acb2a6 100644 --- a/pkg/cli/flags_test.go +++ b/pkg/cli/flags_test.go @@ -162,7 +162,7 @@ func TestCommandArgsVerification(t *testing.T) { { name: "auth command", commandName: "auth", - argsUsage: "[jwt-token]", + argsUsage: "[token]", minArgs: 0, maxArgs: 1, }, diff --git a/pkg/cli/ipns.go b/pkg/cli/ipns.go index 3e7ccbf..21bb975 100644 --- a/pkg/cli/ipns.go +++ b/pkg/cli/ipns.go @@ -15,7 +15,7 @@ func newIPNSCommand() *cli.Command { Category: "Management", Usage: "Manage IPNS (InterPlanetary Name System) keys and records", Description: `IPNS provides a mutable address scheme for IPFS content, allowing you to -publish content under a stable name that can be updated to point to new CIDs. +publish content under a stable name that you can update to point to new CIDs. IPNS operations include: - Managing IPNS keys (create, list, get, delete) @@ -23,7 +23,7 @@ IPNS operations include: - Republishing IPNS records - Resolving IPNS names to their target CIDs -Key names can be used interchangeably with numeric IDs. For example: +Key names and numeric IDs are interchangeable. For example: pinner ipns keys get my-key is equivalent to: pinner ipns keys get 1 @@ -33,7 +33,7 @@ Examples: pinner ipns keys create my-key pinner ipns keys get my-key pinner ipns keys delete my-key - pinner ipns publish QmHash --key-name my-key + pinner ipns publish bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --key-name my-key pinner ipns republish my-key pinner ipns resolve k51qzi5uqu5djx...`, Commands: []*cli.Command{ @@ -50,9 +50,9 @@ func newIPNSKeysCommand() *cli.Command { Name: "keys", Usage: "Manage IPNS keys", Description: `Manage your IPNS keys. Keys are used to publish content under stable -IPNS names that can be updated to point to new CIDs. +IPNS names that you can update to point to new CIDs. -Key names can be used interchangeably with numeric IDs. +Key names and numeric IDs are interchangeable. Examples: pinner ipns keys list @@ -87,7 +87,7 @@ func newIPNSKeysCreateCommand() *cli.Command { return &cli.Command{ Name: "create", Usage: "Create a new IPNS key", - Description: `Create a new IPNS key with the given name. The key can be used to + Description: `Create a new IPNS key with the given name. Use the key to publish content under a stable IPNS name. Examples: @@ -147,12 +147,12 @@ func newIPNSPublishCommand() *cli.Command { Description: `Publish a CID to an IPNS key, making it resolvable via the IPNS name. After publishing, the IPNS name will resolve to the specified CID. -The key can be specified by name or numeric ID. +Specify the key by name or numeric ID. Examples: - pinner ipns publish QmHash --key-name my-key - pinner ipns publish QmHash --key-name my-key --ttl 24h - pinner ipns publish QmHash --key-name 1 --json`, + pinner ipns publish bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --key-name my-key + pinner ipns publish bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --key-name my-key --ttl 24h + pinner ipns publish bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --key-name 1 --json`, ArgsUsage: "", Flags: []cli.Flag{ &cli.StringFlag{ @@ -181,7 +181,7 @@ func newIPNSRepublishCommand() *cli.Command { Description: `Republish the IPNS record for a specific key. This refreshes the record on the network, extending its validity. -The key can be specified by name or numeric ID. +Specify the key by name or numeric ID. Examples: pinner ipns republish my-key diff --git a/pkg/cli/list.go b/pkg/cli/list.go index 34a7f89..986205e 100644 --- a/pkg/cli/list.go +++ b/pkg/cli/list.go @@ -14,7 +14,7 @@ func newListCommand() *cli.Command { Name: "list", Category: "Pinning", Usage: "List pinned content (see: pinner pins ls)", - Description: `List your pinned content with optional filtering. + Description: `Shortcut for 'pinner pins ls'. List your pinned content with optional filtering. Examples: pinner list diff --git a/pkg/cli/operations.go b/pkg/cli/operations.go index 37db301..615f26b 100644 --- a/pkg/cli/operations.go +++ b/pkg/cli/operations.go @@ -28,7 +28,7 @@ Operations track server-side processing of your requests. Each operation has a s Examples: pinner operations list pinner operations list --status running - pinner operations list --cid QmHash --limit 20 + pinner operations list --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --limit 20 pinner operations get 42 pinner operations get 42 --watch`, Commands: []*cli.Command{ @@ -43,13 +43,14 @@ func newOperationsListCommand() *cli.Command { Name: "list", Usage: "List account operations", Description: `List your account operations with optional filtering. +Operations track server-side processing of your requests (uploads, pins, etc.). Examples: pinner operations list pinner operations list --status running pinner operations list --operation upload pinner operations list --protocol ipfs - pinner operations list --cid QmHash + pinner operations list --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e pinner operations list --limit 20 pinner operations list --watch`, Flags: []cli.Flag{ diff --git a/pkg/cli/pin.go b/pkg/cli/pin.go index 496218a..ab0777d 100644 --- a/pkg/cli/pin.go +++ b/pkg/cli/pin.go @@ -14,18 +14,18 @@ func newPinCommand() *cli.Command { Name: "pin", Category: "Pinning", Usage: "Pin existing content by CID (see: pinner pins add)", - Description: `Pin content that is already on IPFS by providing its CID. + Description: `Shortcut for 'pinner pins add'. Pin existing IPFS content by CID. Multiple CIDs can be provided as arguments, read from a file using --file, or piped from stdin. Examples: - pinner pin QmHash - pinner pin QmHash --name "my file" - pinner pin QmHash --no-wait - pinner pin QmHash1 QmHash2 QmHash3 --parallel 5 + pinner pin bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner pin bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --name "my file" + pinner pin bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --no-wait + pinner pin bafybeig...abc bafybeig...def bafybeig...ghi --parallel 5 pinner pin --file cids.txt - echo "QmHash" | pinner pin + echo "bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e" | pinner pin pinner pin --file cids.txt --continue --parallel 10 - pinner pin QmHash --dry-run`, + pinner pin bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --dry-run`, ArgsUsage: "", Flags: []cli.Flag{ NameFlag("Custom name for the pin"), diff --git a/pkg/cli/pinning_client.go b/pkg/cli/pinning_client.go index b3da6ce..41ff993 100644 --- a/pkg/cli/pinning_client.go +++ b/pkg/cli/pinning_client.go @@ -265,7 +265,7 @@ func (s *PinningServiceDefault) Unpin(ctx context.Context, cidStr string, confir s.output.PrintVerbosef("Using API endpoint: %s", s.apiEndpoint) if !confirm { - s.output.Printfln("Use --confirm to unpin CID: %s", cidStr) + s.output.Printfln("Use --force to unpin CID: %s", cidStr) return NewUnpinResult(cidStr), nil } diff --git a/pkg/cli/pins.go b/pkg/cli/pins.go index 3e969a1..c1d3c78 100644 --- a/pkg/cli/pins.go +++ b/pkg/cli/pins.go @@ -13,12 +13,12 @@ func newPinsCommand() *cli.Command { removing, listing, checking status, and updating pin metadata. Examples: - pinner pins add QmHash --name "my file" - pinner pins add QmHash --meta owner=alice --meta env=prod - pinner pins rm QmHash --confirm + pinner pins add bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --name "my file" + pinner pins add bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --meta owner=alice --meta env=prod + pinner pins rm bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --force pinner pins ls --status pinned - pinner pins status QmHash - pinner pins update QmHash --meta owner=bob`, + pinner pins status bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner pins update bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --meta owner=bob`, Commands: []*cli.Command{ newPinsAddCommand(), newPinsRmCommand(), diff --git a/pkg/cli/pins_add.go b/pkg/cli/pins_add.go index 8a3dd9d..d61ab9b 100644 --- a/pkg/cli/pins_add.go +++ b/pkg/cli/pins_add.go @@ -16,13 +16,13 @@ func newPinsAddCommand() *cli.Command { Optionally set metadata key-value pairs at pin time using --meta. Examples: - pinner pins add QmHash - pinner pins add QmHash --name "my file" - pinner pins add QmHash --no-wait - pinner pins add QmHash --meta owner=alice --meta env=prod - pinner pins add QmHash1 QmHash2 QmHash3 --parallel 5 + pinner pins add bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner pins add bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --name "my file" + pinner pins add bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --no-wait + pinner pins add bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --meta owner=alice --meta env=prod + pinner pins add bafybeig...abc bafybeig...def bafybeig...ghi --parallel 5 pinner pins add --file cids.txt - pinner pins add QmHash --dry-run`, + pinner pins add bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --dry-run`, ArgsUsage: "", Flags: []cli.Flag{ NameFlag("Custom name for the pin"), diff --git a/pkg/cli/pins_rm.go b/pkg/cli/pins_rm.go index ef36195..b32d0d3 100644 --- a/pkg/cli/pins_rm.go +++ b/pkg/cli/pins_rm.go @@ -13,11 +13,11 @@ func newPinsRmCommand() *cli.Command { Description: `Remove a pin by its CID, or remove all pins with --all. Examples: - pinner pins rm QmHash - pinner pins rm QmHash --confirm - pinner pins rm QmHash1 QmHash2 QmHash3 --confirm - pinner pins rm --file cids.txt --confirm - pinner pins rm QmHash --dry-run + pinner pins rm bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner pins rm bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --force + pinner pins rm bafybeig...abc bafybeig...def bafybeig...ghi --force + pinner pins rm --file cids.txt --force + pinner pins rm bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --dry-run pinner pins rm --all --force pinner pins rm --all --status failed --force`, ArgsUsage: "", diff --git a/pkg/cli/pins_status.go b/pkg/cli/pins_status.go index b2e5ccb..af1bf39 100644 --- a/pkg/cli/pins_status.go +++ b/pkg/cli/pins_status.go @@ -10,13 +10,13 @@ func newPinsStatusCommand() *cli.Command { return &cli.Command{ Name: "status", Usage: "Get pin status for CID (see: pinner status)", - Description: `Check the status of a pin to see if it has been completed. + Description: `Check whether a pin has completed. If the pin is not found, account operations are checked as a fallback. Examples: - pinner pins status QmHash - pinner pins status QmHash --watch - pinner pins status QmHash --json`, + pinner pins status bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner pins status bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --watch + pinner pins status bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --json`, ArgsUsage: "", Flags: []cli.Flag{ &cli.BoolFlag{ diff --git a/pkg/cli/pins_update.go b/pkg/cli/pins_update.go index 4e28402..c34651a 100644 --- a/pkg/cli/pins_update.go +++ b/pkg/cli/pins_update.go @@ -12,14 +12,15 @@ func newPinsUpdateCommand() *cli.Command { return &cli.Command{ Name: "update", Usage: "Update pin name and metadata", - Description: `Update name and/or metadata for a pin. + Description: `Update name and/or metadata for a pin. Metadata is a set of +key-value pairs (e.g., owner=alice, env=prod) that help you organize and filter pins. Examples: - pinner pins update QmHash --name "renamed" - pinner pins update QmHash --meta owner=alice --meta env=prod - pinner pins update QmHash --clear-meta - pinner pins update QmHash --clear-meta --meta fresh=start - pinner pins update QmHash --name "renamed" --meta env=prod`, + pinner pins update bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --name "renamed" + pinner pins update bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --meta owner=alice --meta env=prod + pinner pins update bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --clear-meta + pinner pins update bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --clear-meta --meta fresh=start + pinner pins update bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --name "renamed" --meta env=prod`, ArgsUsage: "", Flags: []cli.Flag{ NameFlag("Rename the pin"), diff --git a/pkg/cli/root.go b/pkg/cli/root.go index b7b923a..4516e36 100644 --- a/pkg/cli/root.go +++ b/pkg/cli/root.go @@ -26,18 +26,18 @@ via the Pinner.xyz service. Common workflows: First-time setup: pinner setup Quick upload & pin: pinner upload myfile.txt - Stream content: pinner cat QmHash - Download content: pinner download QmHash - List directory: pinner ls QmHash - Pin existing CID: pinner pin QmHash --name "my file" + Stream content: pinner cat bafybeig...td7e + Download content: pinner download bafybeig...td7e + List directory: pinner ls bafybeig...td7e + Pin existing CID: pinner pin bafybeig...td7e --name "my file" List your pins: pinner list - Check pin status: pinner status QmHash - Remove a pin: pinner unpin QmHash --confirm + Check pin status: pinner status bafybeig...td7e + Remove a pin: pinner unpin bafybeig...td7e --force Batch operations: - Pin multiple CIDs: pinner pin QmHash1 QmHash2 QmHash3 --parallel 5 + Pin multiple CIDs: pinner pin bafybeig...abc bafybeig...def bafybeig...ghi --parallel 5 Pin from file: pinner pin --file cids.txt --wait - Unpin multiple: pinner unpin --file cids.txt --confirm + Unpin multiple: pinner unpin --file cids.txt --force Authentication: Login: pinner auth --email user@example.com diff --git a/pkg/cli/status.go b/pkg/cli/status.go index 18591e4..1f830ff 100644 --- a/pkg/cli/status.go +++ b/pkg/cli/status.go @@ -13,14 +13,14 @@ func newStatusCommand() *cli.Command { Name: "status", Category: "Pinning", Usage: "Get pin status for CID (see: pinner pins status)", - Description: `Check the status of a pin to see if it has been completed. + Description: `Shortcut for 'pinner pins status'. Check whether a pin has completed. If the pin is not found, account operations are checked as a fallback. Examples: - pinner status QmHash - pinner status QmHash --watch - pinner status QmHash --json - echo "QmHash" | pinner status + pinner status bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner status bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --watch + pinner status bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --json + echo "bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e" | pinner status cat cids.txt | pinner status Status values: diff --git a/pkg/cli/unpin.go b/pkg/cli/unpin.go index 1cd3543..4add75d 100644 --- a/pkg/cli/unpin.go +++ b/pkg/cli/unpin.go @@ -14,17 +14,17 @@ func newUnpinCommand() *cli.Command { Name: "unpin", Category: "Pinning", Usage: "Remove pins (see: pinner pins rm)", - Description: `Remove pins by CID or remove all pins. + Description: `Shortcut for 'pinner pins rm'. Remove pins by CID or remove all pins. Examples: - pinner unpin QmHash - pinner unpin QmHash --confirm - pinner unpin QmHash1 QmHash2 QmHash3 --confirm - pinner unpin --file cids.txt --confirm - pinner unpin --file cids.txt --confirm --parallel 5 --continue - pinner unpin QmHash --dry-run - pinner unpin all --confirm - pinner unpin all --confirm --status failed --dry-run`, + pinner unpin bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner unpin bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --force + pinner unpin bafybeig...abc bafybeig...def bafybeig...ghi --force + pinner unpin --file cids.txt --force + pinner unpin --file cids.txt --force --parallel 5 --continue + pinner unpin bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --dry-run + pinner unpin all --force + pinner unpin all --force --status failed --dry-run`, ArgsUsage: "", Flags: []cli.Flag{ ForceFlag(), @@ -106,7 +106,7 @@ func unpin(ctx context.Context, cmd cidFlagGetter, output Output, cfgMgr config. options[DryRunOptionContinueOnError] = "yes" } if confirm { - options[DryRunOptionConfirm] = "no (using --confirm)" + options[DryRunOptionConfirm] = "no (using --force)" } else { options[DryRunOptionConfirm] = "yes" } diff --git a/pkg/cli/unpin_all.go b/pkg/cli/unpin_all.go index c5e3b1e..62e186c 100644 --- a/pkg/cli/unpin_all.go +++ b/pkg/cli/unpin_all.go @@ -16,19 +16,19 @@ func newUnpinAllCommand() *cli.Command { Description: `Remove all pinned content. This is a destructive operation with safety guards. This command requires two explicit confirmations: -1. The --confirm flag to acknowledge the destructive nature +1. The --force flag to acknowledge the destructive nature 2. An interactive prompt requiring you to type the exact number of pins For non-interactive use (scripts, CI), use --yes to accept the safety prompt. ---confirm is always required regardless of --yes. +--force is always required regardless of --yes. Examples: - pinner unpin all --confirm - pinner unpin all --confirm --status failed - pinner unpin all --confirm --parallel 5 --continue - pinner unpin all --confirm --dry-run - pinner unpin all --confirm --yes - pinner unpin all --confirm --status queued --dry-run`, + pinner unpin all --force + pinner unpin all --force --status failed + pinner unpin all --force --parallel 5 --continue + pinner unpin all --force --dry-run + pinner unpin all --force --yes + pinner unpin all --force --status queued --dry-run`, Flags: []cli.Flag{ ForceFlag(), ConfirmFlag(), @@ -38,7 +38,7 @@ Examples: DryRunFlag(), &cli.BoolFlag{ Name: FlagYes, - Usage: "Accept the safety prompt non-interactively (requires --confirm)", + Usage: "Accept the safety prompt non-interactively (requires --force)", Hidden: true, }, }, @@ -99,7 +99,7 @@ func unpinAll(ctx context.Context, cmd flagGetterWithInt, output Output, cfgMgr items[i] = pin.RequestID } options := map[string]string{ - DryRunOptionConfirm: "no (using --confirm)", + DryRunOptionConfirm: "no (using --force)", } if statusFilter != "" { options["Status filter"] = statusFilter diff --git a/pkg/cli/websites.go b/pkg/cli/websites.go index 83aa21b..a8fd6ad 100644 --- a/pkg/cli/websites.go +++ b/pkg/cli/websites.go @@ -28,7 +28,7 @@ func newWebsitesCommand() *cli.Command { Aliases: []string{"website"}, Usage: "Manage websites", Description: `Manage websites for your IPFS content. Websites allow you to associate -domain names with IPFS hashes, making your content accessible through custom domains. +domain names with CIDs, making your content accessible through custom domains. Website operations include: - List all websites @@ -40,9 +40,9 @@ Website operations include: Examples: pinner websites list - pinner websites create example.com --cid QmHash + pinner websites create example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e pinner websites get example.com - pinner websites update example.com --cid QmNewHash + pinner websites update example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e pinner websites delete example.com pinner websites validate example.com`, Commands: []*cli.Command{ @@ -82,10 +82,10 @@ func newWebsitesCreateCommand() *cli.Command { Description: `Create a new website with the specified domain and target CID. Examples: - pinner websites create example.com --cid QmHash - pinner websites create example.com --cid QmHash --target-type ipfs - pinner websites create example.com --cid QmHash --dns-hosting - pinner websites create example.com --cid QmHash --json`, + pinner websites create example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e + pinner websites create example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --target-type ipfs + pinner websites create example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --dns-hosting + pinner websites create example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --json`, ArgsUsage: "", Flags: []cli.Flag{ RequiredCIDFlag(), @@ -131,9 +131,9 @@ When --target-type is "ipns" and --cid is a regular IPFS CID (not a peer ID), an IPNS key is auto-created and that CID is published to it. Examples: - pinner websites update example.com --cid QmNewHash --target-type ipfs + pinner websites update example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --target-type ipfs pinner websites update example.com --target-type ipns - pinner websites update example.com --cid QmNewHash --target-type ipns + pinner websites update example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e --target-type ipns pinner websites update example.com --dns-hosting pinner websites update example.com --no-dns-hosting pinner websites update example.com --json`, @@ -386,7 +386,7 @@ If --cid is provided, the IPNS key will publish that CID instead of the current Examples: pinner websites enable-ipns example.com - pinner websites enable-ipns example.com --cid QmNewHash + pinner websites enable-ipns example.com --cid bafybeigqaforwjgcx45jnh7dgyfgqqm2lei4hurrrnsizrpgyxz3egtd7e pinner websites enable-ipns example.com --json`, ArgsUsage: "", Flags: []cli.Flag{