MCPcopy Create free account
hub / github.com/52funny/pikpakcli / rewriteDownloadLikeArgs

Function rewriteDownloadLikeArgs

internal/shell/shell.go:792–861  ·  view source on GitHub ↗
(args []string, currentPath string, source fileStatProvider)

Source from the content-addressed store, hash-verified

790}
791
792func rewriteDownloadLikeArgs(args []string, currentPath string, source fileStatProvider) ([]string, error) {
793 rewritten := make([]string, 0, len(args))
794 stopFlags := false
795 pathValue := ""
796 hasParentID := false
797
798 for i := 0; i < len(args); i++ {
799 token := args[i]
800 if stopFlags {
801 matches, err := expandRemotePatternToken(token, pathValue, currentPath, source, true)
802 if err != nil {
803 return nil, err
804 }
805 rewritten = append(rewritten, matches...)
806 continue
807 }
808
809 switch {
810 case token == "--":
811 stopFlags = true
812 rewritten = append(rewritten, token)
813 case token == "--path" || token == "-p":
814 rewritten = append(rewritten, token)
815 if i+1 < len(args) {
816 pathValue = args[i+1]
817 rewritten = append(rewritten, pathValue)
818 i++
819 }
820 case strings.HasPrefix(token, "--path="):
821 pathValue = strings.TrimPrefix(token, "--path=")
822 rewritten = append(rewritten, token)
823 case strings.HasPrefix(token, "-p="):
824 pathValue = strings.TrimPrefix(token, "-p=")
825 rewritten = append(rewritten, token)
826 case token == "--parent-id" || token == "-P":
827 hasParentID = true
828 rewritten = append(rewritten, token)
829 if i+1 < len(args) {
830 rewritten = append(rewritten, args[i+1])
831 i++
832 }
833 case strings.HasPrefix(token, "--parent-id=") || strings.HasPrefix(token, "-P="):
834 hasParentID = true
835 rewritten = append(rewritten, token)
836 default:
837 if consumesNextValue(token) {
838 rewritten = append(rewritten, token)
839 if i+1 < len(args) {
840 rewritten = append(rewritten, args[i+1])
841 i++
842 }
843 continue
844 }
845 if strings.HasPrefix(token, "-") {
846 rewritten = append(rewritten, token)
847 continue
848 }
849 if hasParentID && pathValue == "" && hasWildcard(token) {

Callers 1

expandDownloadGlobsFunction · 0.85

Calls 3

expandRemotePatternTokenFunction · 0.85
consumesNextValueFunction · 0.85
hasWildcardFunction · 0.70

Tested by

no test coverage detected