steilerDev / icloud-photos-sync

One-way sync engine for the iCloud Photos Library into the native file system
https://icps.steiler.dev/
GNU General Public License v3.0
341 stars 9 forks source link

token command not working properly? #451

Closed eliotalanfoss closed 8 months ago

eliotalanfoss commented 9 months ago

Describe the issue

When I run the command docker exec -t photos-sync icloud-photos-sync token after running docker compose up -d, It prompts me for my icloud username. When I type out my username and then press enter, nothing happens, and fails to the prompt for my icloud password. The token command works as intended if I pass the username and password using CLI option arguments.

How to reproduce the behavior?

Use rootless docker install on Debian 12 grab v.1.4.0-beta.1 amd64 docker image from releases page use following docker-compose.yml:

version: '2'
services:
  photos-sync:
    image: steilerdev/icloud-photos-sync:latest-ci-build
    container_name: photos-sync
    tty: true
    stdin_open: true
    environment:
      SCHEDULE: "* 2 * * *"
      LOG_LEVEL: debug
      ENABLE_CRASH_REPORTING: true
    volumes:
      - "/home/PUT_YOUR_USER_HERE/Pictures/iCloud:/opt/icloud-photos-library"

Start service using docker compose up -d Use docker attach photos-sync command to attach and fill in icloud username and password when prompted Detach from container Run docker exec -t photos-sync icloud-photos-sync token

Error Code

N/A

Relevant log output

[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event log-info from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event log-warn from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-count_mismatch from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-filetype_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-library_load_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-extraneous_file from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-icloud_load_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-write_asset_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-write_album_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-link_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-mfa_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-resource_file_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event warn-archive_asset_error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event sync-retry from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event log-error from source LogInterface
[2023-12-21T23:13:41.425Z] DEBUG EventManager: Registering listener for event error-handled from source LogInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event warn-mfa_error from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event warn-filetype_error from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event warn-resource_file_error from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event error-handled from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-auth_started from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-auth_done from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-mfa_req from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-trusted from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-account_ready from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-session_expired from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-pcs_req from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event icloud-pcs_not_ready from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event mfa-started from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event mfa-resend from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event mfa-received from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event mfa-not_provided from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event photos-setup-complete from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event photos-ready from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event token from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event scheduled from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event scheduled-done from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event scheduled-retry from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event scheduled-overrun from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-start from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-fetch_n_load from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-fetch_n_load_completed from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-diff from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-diff_completed from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-write from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-write_assets from source CLIInterface
[2023-12-21T23:13:41.427Z] DEBUG EventManager: Registering listener for event sync-write_asset_completed from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event warn-write_asset_error from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event sync-write_assets_completed from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event sync-write_albums from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event sync-write_albums_completed from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event sync-write_completed from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event sync-done from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event sync-retry from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event archive-start from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event archive-persist_start from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event archive-remote_delete from source CLIInterface
[2023-12-21T23:13:41.428Z] DEBUG EventManager: Registering listener for event archive-done from source CLIInterface

Operating system

Debian 12

Execution environment

docker

icloud-photos-sync version

v.1.4.0-beta.1

Checklist

eliotalanfoss commented 9 months ago

I noticed that the same problem occurs with the docker exec -t photos-sync icloud-photos-sync sync command

steilerDev commented 8 months ago

@eliotalanfoss thanks for reporting this and sorry for not getting back to you earlier!

I've had a look and added documentation for your case.

Generally speaking you need to supply both flags -t and -i to get CLI interactions working.

Therefore -in your last step- you'd need to run docker exec -ti photos-sync icloud-photos-sync token and this should correctly prompt for username and password.

eliotalanfoss commented 8 months ago

Thank you, that has indeed fixed the problem for me.

The only other thing I have noticed is that when attaching to the docker container using docker attach photos-sync the first prompt doesn't actually show to the terminal until I press a key. This is not a huge problem since it just requires a key press to get the prompt to show up, but it can be a little confusing at first.

steilerDev commented 8 months ago

Oh yeah - but that's a docker limitation.

I've updated the tool to retry when there is an empty input (ie if you are immediately press enter)

eliotalanfoss commented 8 months ago

I assumed that may be the case.

But yeah I've accidentally entered an empty input and had to restart the container a few times so that change would be nice!

Thanks again for your help. The photo sync tool is working great otherwise.