(cmd *cobra.Command, args []string)
| 1766 | func secretsFromFlagPairs(pairs []string) ([]client.SecretDto, error) { |
| 1767 | secrets := make([]client.SecretDto, 0, len(pairs)) |
| 1768 | for _, pair := range pairs { |
| 1769 | secret, err := secretFromString(pair) |
| 1770 | if err != nil { |
| 1771 | return nil, err |
| 1772 | } |
| 1773 | secrets = append(secrets, secret) |
| 1774 | } |
| 1775 | return secrets, nil |
| 1776 | } |
| 1777 | |
| 1778 | func secretsFromJSONConfig(raw interface{}) ([]client.SecretDto, error) { |
| 1779 | items, ok := raw.([]interface{}) |
| 1780 | if !ok { |
| 1781 | return nil, nil |
| 1782 | } |
| 1783 | |
| 1784 | secrets := make([]client.SecretDto, 0, len(items)) |
| 1785 | for _, item := range items { |
| 1786 | secret, ok, err := secretFromJSONItem(item) |
| 1787 | if err != nil { |
| 1788 | return nil, err |
| 1789 | } |
| 1790 | if !ok { |
| 1791 | continue |
| 1792 | } |
| 1793 | secrets = append(secrets, secret) |
| 1794 | } |
| 1795 | return secrets, nil |
| 1796 | } |
| 1797 | |
| 1798 | func secretFromJSONItem(item interface{}) (client.SecretDto, bool, error) { |
| 1799 | switch secret := item.(type) { |
| 1800 | case string: |
| 1801 | secretDto, err := secretFromString(secret) |
| 1802 | return secretDto, true, err |
| 1803 | case map[string]interface{}: |
| 1804 | return secretFromMap(secret), true, nil |
| 1805 | default: |
| 1806 | return client.SecretDto{}, false, nil |
| 1807 | } |
| 1808 | } |
| 1809 | |
| 1810 | func secretFromString(value string) (client.SecretDto, error) { |
| 1811 | parts := strings.SplitN(value, "=", 2) |
| 1812 | if len(parts) != 2 { |
| 1813 | return client.SecretDto{}, fmt.Errorf("invalid secret format '%s': must be name=value", value) |
| 1814 | } |
| 1815 | return client.SecretDto{Name: parts[0], Value: parts[1]}, nil |
| 1816 | } |
| 1817 | |
| 1818 | func secretFromMap(secret map[string]interface{}) client.SecretDto { |
| 1819 | secretDto := client.SecretDto{} |
| 1820 | if name, ok := secret["name"].(string); ok { |
| 1821 | secretDto.Name = name |
| 1822 | } |
| 1823 | if value, exists := secret["value"]; exists { |
| 1824 | secretDto.Value = value |
| 1825 | } |
nothing calls this directly
no test coverage detected