MCPcopy Index your code
hub / github.com/cloudquery/cloudquery / parseShard

Function parseShard

cli/cmd/sync.go:142–175  ·  view source on GitHub ↗
(cmd *cobra.Command)

Source from the content-addressed store, hash-verified

140}
141
142func parseShard(cmd *cobra.Command) (*shard, error) {
143 shardFlag, err := cmd.Flags().GetString("shard")
144 if err != nil {
145 return nil, err
146 }
147 if shardFlag == "" {
148 return nil, nil
149 }
150
151 parts := strings.Split(shardFlag, "/")
152 if len(parts) != 2 {
153 return nil, fmt.Errorf("invalid shard format: %s. Valid format is num/total, e.g. 1/4", shardFlag)
154 }
155
156 num, err := strconv.ParseInt(parts[0], 10, 32)
157 if err != nil {
158 return nil, fmt.Errorf("invalid shard format: %s. Shard num should be a valid integer", shardFlag)
159 }
160
161 total, err := strconv.ParseInt(parts[1], 10, 32)
162 if err != nil {
163 return nil, fmt.Errorf("invalid shard format: %s. Total shards should be a valid integer", shardFlag)
164 }
165
166 if num < 1 || total < 1 {
167 return nil, fmt.Errorf("invalid shard format: %s. Shard num and total shards should be greater than 0", shardFlag)
168 }
169
170 if num > total {
171 return nil, fmt.Errorf("invalid shard format: %s. Shard num should be less than or equal to total shards", shardFlag)
172 }
173
174 return &shard{num: int32(num), total: int32(total)}, nil
175}
176
177func sync(cmd *cobra.Command, args []string) error {
178 cqDir, err := cmd.Flags().GetString("cq-dir")

Callers 1

syncFunction · 0.85

Calls 1

ErrorfMethod · 0.80

Tested by

no test coverage detected