ishare2-cli icon indicating copy to clipboard operation
ishare2-cli copied to clipboard

Make --overwrite flag work with ishare2 pull <type> all command

Open Laminad opened this issue 7 months ago • 1 comments
trafficstars

When adding the --overwrite flag to the ishare2 pull [type] all command it's not recognizing the flag as part of the command.

I am not entirely sure which function's user input being read from the command line is at fault, but this function seems likely to me. I am only seeing it read one user input regarding type. I also don't see any variables being passed to the function from something that calls this, so it doesn't seem possible for it to handle the --overwrite flag if it were passed to it.

pull_all() {
    TYPE=${1^^}
    if [[ $TYPE == "BIN" ]]; then
        TYPE="IOL"
    fi
    if [[ $TYPE == "QEMU" ]]; then
        echo -e "${YELLOW}[!] WARNING: Pulling all QEMU images will take a long time.\n [!] Make sure you have enough disk space and bandwidth!${NO_COLOR}"
        # Enter confirmation text
        CONFIRMATION="I understand that pulling all QEMU images will take a long time. I have enough disk space and bandwidth."
        # Ask the user to enter the confirmation text
        read -p "[?] Please enter the following text to confirm: \"$CONFIRMATION\" (case sensitive): " -r
        # If the confirmation text is incorrect then exit
        if [[ ! $REPLY =~ ^$CONFIRMATION$ ]]; then
            echo -e "${RED}[!] Aborting.${NO_COLOR}"
            exit 1
        fi
    fi
    echo -e "${YELLOW}[+] Pulling all $TYPE images...${NO_COLOR}"
    # Ask for conirmation
    read -p "[?] Are you sure you want to pull all $TYPE images? (y/n): " -r
    # If reply was no Y or y then exit
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        echo -e "${RED}[!] Aborting.${NO_COLOR}"
        exit 1
    fi
    # Get the list of all images
    fetch_json
    # Get all the IDs for the images of the specified type
    IDS=$(jq -r --arg type "$TYPE" '.[$type][] | .id' "$TEMP_JSON")
    # Pull all the images
    i=1
    total=$(echo "$IDS" | wc -l)
    for ID in $IDS; do
        echo -e "${YELLOW}[+] Pulling image $i/$total...${NO_COLOR}"
        ishare2 pull ${TYPE,,} $ID
        i=$((i + 1))
    done
}

Laminad avatar Apr 04 '25 17:04 Laminad

Hi @Laminad I labeled this as feature request since this is the intended behavior of the pull all command. However, you are correct, the modification needed has to be made on that function for --overwrite to work on pull all.

sudoalx avatar May 02 '25 01:05 sudoalx