(cmd *cobra.Command)
| 148 | } |
| 149 | |
| 150 | func parseShareLinkUpdateOptions(cmd *cobra.Command) (shareLinkUpdateOptions, error) { |
| 151 | expiresChanged := cmd.Flags().Changed("expires") |
| 152 | removeExpiration, err := cmd.Flags().GetBool("remove-expiration") |
| 153 | if err != nil { |
| 154 | return shareLinkUpdateOptions{}, err |
| 155 | } |
| 156 | allowDownload, err := cmd.Flags().GetBool("allow-download") |
| 157 | if err != nil { |
| 158 | return shareLinkUpdateOptions{}, err |
| 159 | } |
| 160 | disallowDownload, err := cmd.Flags().GetBool("disallow-download") |
| 161 | if err != nil { |
| 162 | return shareLinkUpdateOptions{}, err |
| 163 | } |
| 164 | audienceChanged := cmd.Flags().Changed("audience") |
| 165 | password, err := sharedLinkPasswordFromFlags(cmd) |
| 166 | if err != nil { |
| 167 | return shareLinkUpdateOptions{}, err |
| 168 | } |
| 169 | removePassword, err := localBoolFlag(cmd, "remove-password") |
| 170 | if err != nil { |
| 171 | return shareLinkUpdateOptions{}, err |
| 172 | } |
| 173 | |
| 174 | if expiresChanged && removeExpiration { |
| 175 | return shareLinkUpdateOptions{}, invalidArgumentsErrorWithDetails("`--expires` and `--remove-expiration` cannot be used together", flagsErrorDetails("expires", "remove-expiration")) |
| 176 | } |
| 177 | if allowDownload && disallowDownload { |
| 178 | return shareLinkUpdateOptions{}, invalidArgumentsErrorWithDetails("`--allow-download` and `--disallow-download` cannot be used together", flagsErrorDetails("allow-download", "disallow-download")) |
| 179 | } |
| 180 | if password.set && removePassword { |
| 181 | return shareLinkUpdateOptions{}, invalidArgumentsErrorWithDetails("password-setting flags and `--remove-password` cannot be used together", flagsErrorDetails("password", "password-prompt", "password-file", "remove-password")) |
| 182 | } |
| 183 | if !expiresChanged && !removeExpiration && !allowDownload && !disallowDownload && !audienceChanged && !password.set && !removePassword { |
| 184 | return shareLinkUpdateOptions{}, invalidArgumentsErrorWithDetails("at least one shared link setting flag is required", flagsErrorDetails("expires", "remove-expiration", "allow-download", "disallow-download", "audience", "password", "password-prompt", "password-file", "remove-password")) |
| 185 | } |
| 186 | |
| 187 | var expires *time.Time |
| 188 | if expiresChanged { |
| 189 | value, err := cmd.Flags().GetString("expires") |
| 190 | if err != nil { |
| 191 | return shareLinkUpdateOptions{}, err |
| 192 | } |
| 193 | parsed, err := time.Parse(time.RFC3339, value) |
| 194 | if err != nil { |
| 195 | return shareLinkUpdateOptions{}, invalidArgumentsErrorfWithDetails("invalid --expires %q: use RFC3339 timestamp", flagValueErrorDetails("expires", value), value) |
| 196 | } |
| 197 | expires = &parsed |
| 198 | } |
| 199 | |
| 200 | var audience *sharing.LinkAudience |
| 201 | if audienceChanged { |
| 202 | parsed, err := shareLinkAudienceFlag(cmd) |
| 203 | if err != nil { |
| 204 | return shareLinkUpdateOptions{}, err |
| 205 | } |
| 206 | audience = parsed |
| 207 | } |
no test coverage detected