├── .gitattributes ├── .github ├── ISSUE_TEMPLATE.md ├── ISSUE_TEMPLATE │ ├── Bug.md │ ├── Feature.md │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ ├── build.yml │ ├── build_publish_beta_docker_image.yml │ ├── build_publish_release_docker_image.yml │ └── winget.yml ├── .gitignore ├── .golangci.yml ├── CONTRIBUTING.md ├── COPYING ├── Dockerfile ├── MAINTAINERS.md ├── MANUAL.html ├── MANUAL.md ├── MANUAL.txt ├── Makefile ├── README.md ├── RELEASE.md ├── VERSION ├── backend ├── alias │ ├── alias.go │ ├── alias_internal_test.go │ └── test │ │ └── files │ │ ├── four │ │ ├── five │ │ │ └── underfive.txt │ │ └── under four.txt │ │ ├── one%.txt │ │ ├── three │ │ └── underthree.txt │ │ └── two.html ├── all │ └── all.go ├── amazonclouddrive │ ├── amazonclouddrive.go │ └── amazonclouddrive_test.go ├── azureblob │ ├── azureblob.go │ ├── azureblob_internal_test.go │ ├── azureblob_test.go │ └── azureblob_unsupported.go ├── azurefiles │ ├── azurefiles.go │ ├── azurefiles_internal_test.go │ ├── azurefiles_test.go │ └── azurefiles_unsupported.go ├── b2 │ ├── api │ │ ├── types.go │ │ └── types_test.go │ ├── b2.go │ ├── b2_internal_test.go │ ├── b2_test.go │ └── upload.go ├── box │ ├── api │ │ └── types.go │ ├── box.go │ ├── box_test.go │ └── upload.go ├── cache │ ├── cache.go │ ├── cache_internal_test.go │ ├── cache_test.go │ ├── cache_unsupported.go │ ├── cache_upload_test.go │ ├── directory.go │ ├── handle.go │ ├── object.go │ ├── plex.go │ ├── storage_memory.go │ ├── storage_persistent.go │ └── utils_test.go ├── chunker │ ├── chunker.go │ ├── chunker_internal_test.go │ └── chunker_test.go ├── combine │ ├── combine.go │ ├── combine_internal_test.go │ └── combine_test.go ├── compress │ ├── .gitignore │ ├── compress.go │ └── compress_test.go ├── crypt │ ├── cipher.go │ ├── cipher_test.go │ ├── crypt.go │ ├── crypt_internal_test.go │ ├── crypt_test.go │ └── pkcs7 │ │ ├── pkcs7.go │ │ └── pkcs7_test.go ├── drive │ ├── drive.go │ ├── drive_internal_test.go │ ├── drive_test.go │ ├── metadata.go │ ├── test │ │ ├── about.json │ │ └── files │ │ │ ├── example1.ods │ │ │ ├── example2.doc │ │ │ └── example3.odt │ └── upload.go ├── dropbox │ ├── batcher.go │ ├── dbhash │ │ ├── dbhash.go │ │ └── dbhash_test.go │ ├── dropbox.go │ ├── dropbox_internal_test.go │ └── dropbox_test.go ├── fichier │ ├── api.go │ ├── fichier.go │ ├── fichier_test.go │ ├── object.go │ └── structs.go ├── filefabric │ ├── api │ │ └── types.go │ ├── filefabric.go │ └── filefabric_test.go ├── ftp │ ├── ftp.go │ ├── ftp_internal_test.go │ └── ftp_test.go ├── googlecloudstorage │ ├── googlecloudstorage.go │ └── googlecloudstorage_test.go ├── googlephotos │ ├── albums.go │ ├── albums_test.go │ ├── api │ │ └── types.go │ ├── googlephotos.go │ ├── googlephotos_test.go │ ├── pattern.go │ ├── pattern_test.go │ └── testfiles │ │ ├── rclone-test-image1.jpg │ │ └── rclone-test-image2.jpg ├── hasher │ ├── commands.go │ ├── hasher.go │ ├── hasher_internal_test.go │ ├── hasher_test.go │ ├── kv.go │ └── object.go ├── hdfs │ ├── fs.go │ ├── hdfs.go │ ├── hdfs_test.go │ ├── hdfs_unsupported.go │ └── object.go ├── hidrive │ ├── api │ │ ├── queries.go │ │ └── types.go │ ├── helpers.go │ ├── hidrive.go │ ├── hidrive_test.go │ └── hidrivehash │ │ ├── hidrivehash.go │ │ ├── hidrivehash_test.go │ │ └── internal │ │ └── internal.go ├── http │ ├── http.go │ ├── http_internal_test.go │ └── test │ │ ├── files │ │ ├── four │ │ │ └── under four.txt │ │ ├── one%.txt │ │ ├── three │ │ │ └── underthree.txt │ │ └── two.html │ │ └── index_files │ │ ├── apache.html │ │ ├── caddy.html │ │ ├── empty.html │ │ ├── memstore.html │ │ └── nginx.html ├── imagekit │ ├── client │ │ ├── client.go │ │ ├── media.go │ │ ├── upload.go │ │ └── url.go │ ├── imagekit.go │ ├── imagekit_test.go │ └── util.go ├── internetarchive │ ├── internetarchive.go │ └── internetarchive_test.go ├── jottacloud │ ├── api │ │ ├── types.go │ │ └── types_test.go │ ├── jottacloud.go │ ├── jottacloud_internal_test.go │ └── jottacloud_test.go ├── koofr │ ├── koofr.go │ └── koofr_test.go ├── linkbox │ ├── linkbox.go │ └── linkbox_test.go ├── local │ ├── about_unix.go │ ├── about_windows.go │ ├── fadvise_other.go │ ├── fadvise_unix.go │ ├── lchtimes.go │ ├── lchtimes_unix.go │ ├── local.go │ ├── local_internal_test.go │ ├── local_test.go │ ├── metadata.go │ ├── metadata_bsd.go │ ├── metadata_linux.go │ ├── metadata_other.go │ ├── metadata_unix.go │ ├── metadata_windows.go │ ├── read_device_other.go │ ├── read_device_unix.go │ ├── remove_other.go │ ├── remove_test.go │ ├── remove_windows.go │ ├── setbtime.go │ ├── setbtime_windows.go │ ├── symlink.go │ ├── symlink_other.go │ ├── tests_test.go │ ├── xattr.go │ └── xattr_unsupported.go ├── mailru │ ├── api │ │ ├── bin.go │ │ ├── helpers.go │ │ └── m1.go │ ├── mailru.go │ ├── mailru_test.go │ └── mrhash │ │ ├── mrhash.go │ │ └── mrhash_test.go ├── mega │ ├── mega.go │ └── mega_test.go ├── memory │ ├── memory.go │ └── memory_test.go ├── netstorage │ ├── netstorage.go │ └── netstorage_test.go ├── onedrive │ ├── api │ │ └── types.go │ ├── onedrive.go │ ├── onedrive_test.go │ └── quickxorhash │ │ ├── quickxorhash.go │ │ ├── quickxorhash_test.go │ │ ├── xor.go │ │ └── xor_1.20.go ├── opendrive │ ├── opendrive.go │ ├── opendrive_test.go │ └── types.go ├── oracleobjectstorage │ ├── byok.go │ ├── client.go │ ├── command.go │ ├── copy.go │ ├── multipart.go │ ├── object.go │ ├── options.go │ ├── oracleobjectstorage.go │ ├── oracleobjectstorage_test.go │ ├── oracleobjectstorage_unsupported.go │ └── waiter.go ├── pcloud │ ├── api │ │ └── types.go │ ├── pcloud.go │ └── pcloud_test.go ├── pikpak │ ├── api │ │ └── types.go │ ├── helper.go │ ├── pikpak.go │ └── pikpak_test.go ├── premiumizeme │ ├── api │ │ └── types.go │ ├── premiumizeme.go │ └── premiumizeme_test.go ├── protondrive │ ├── protondrive.go │ └── protondrive_test.go ├── putio │ ├── error.go │ ├── fs.go │ ├── object.go │ ├── putio.go │ └── putio_test.go ├── qingstor │ ├── qingstor.go │ ├── qingstor_test.go │ ├── qingstor_unsupported.go │ └── upload.go ├── quatrix │ ├── api │ │ └── types.go │ ├── quatrix.go │ ├── quatrix_test.go │ └── upload_memory.go ├── s3 │ ├── gen_setfrom.go │ ├── s3.go │ ├── s3_internal_test.go │ ├── s3_test.go │ ├── setfrom.go │ └── v2sign.go ├── seafile │ ├── api │ │ └── types.go │ ├── object.go │ ├── pacer.go │ ├── renew.go │ ├── renew_test.go │ ├── seafile.go │ ├── seafile_internal_test.go │ ├── seafile_test.go │ └── webapi.go ├── sftp │ ├── sftp.go │ ├── sftp_internal_test.go │ ├── sftp_test.go │ ├── sftp_unsupported.go │ ├── ssh.go │ ├── ssh_external.go │ ├── ssh_internal.go │ ├── stringlock.go │ └── stringlock_test.go ├── sharefile │ ├── api │ │ └── types.go │ ├── generate_tzdata.go │ ├── sharefile.go │ ├── sharefile_test.go │ ├── tzdata_vfsdata.go │ ├── update-timezone.sh │ └── upload.go ├── sia │ ├── api │ │ └── types.go │ ├── sia.go │ └── sia_test.go ├── smb │ ├── connpool.go │ ├── smb.go │ └── smb_test.go ├── storj │ ├── fs.go │ ├── object.go │ ├── storj_test.go │ └── storj_unsupported.go ├── sugarsync │ ├── api │ │ └── types.go │ ├── sugarsync.go │ ├── sugarsync_internal_test.go │ └── sugarsync_test.go ├── swift │ ├── auth.go │ ├── swift.go │ ├── swift_internal_test.go │ └── swift_test.go ├── union │ ├── common │ │ └── options.go │ ├── entry.go │ ├── errors.go │ ├── errors_test.go │ ├── policy │ │ ├── all.go │ │ ├── epall.go │ │ ├── epff.go │ │ ├── eplfs.go │ │ ├── eplno.go │ │ ├── eplus.go │ │ ├── epmfs.go │ │ ├── eprand.go │ │ ├── ff.go │ │ ├── lfs.go │ │ ├── lno.go │ │ ├── lus.go │ │ ├── mfs.go │ │ ├── newest.go │ │ ├── policy.go │ │ └── rand.go │ ├── union.go │ ├── union_internal_test.go │ ├── union_test.go │ └── upstream │ │ └── upstream.go ├── uptobox │ ├── api │ │ └── types.go │ ├── uptobox.go │ └── uptobox_test.go ├── webdav │ ├── api │ │ └── types.go │ ├── chunking.go │ ├── odrvcookie │ │ ├── fetch.go │ │ └── renew.go │ ├── webdav.go │ ├── webdav_internal_test.go │ └── webdav_test.go ├── yandex │ ├── api │ │ └── types.go │ ├── yandex.go │ └── yandex_test.go └── zoho │ ├── api │ └── types.go │ ├── zoho.go │ └── zoho_test.go ├── bin ├── .ignore-emails ├── backend-versions.sh ├── bisect-go-rclone.sh ├── bisect-rclone.sh ├── build-xgo-cgofuse.sh ├── check-merged.go ├── config.py ├── cross-compile.go ├── decrypt_names.py ├── get-github-release.go ├── make_backend_docs.py ├── make_changelog.py ├── make_manual.py ├── make_rc_docs.sh ├── nfpm.yaml ├── not-in-stable.go ├── resource_windows.go ├── test-all-commits-compile.sh ├── test-repeat-vfs.sh ├── test-repeat.sh ├── test_independence.go ├── test_metadata_mapper.py ├── test_proxy.py ├── tidy-beta ├── travis.rclone.conf ├── update-authors.py ├── upload-github └── win-build.bat ├── cmd ├── about │ └── about.go ├── all │ └── all.go ├── authorize │ └── authorize.go ├── backend │ └── backend.go ├── bisync │ ├── LICENSE.cjnaz │ ├── bilib │ │ ├── canonical.go │ │ ├── files.go │ │ ├── names.go │ │ └── output.go │ ├── bisync_test.go │ ├── cmd.go │ ├── deltas.go │ ├── help.go │ ├── listing.go │ ├── log.go │ ├── operations.go │ ├── queue.go │ ├── rc.go │ └── testdata │ │ ├── test_all_changed │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.copy1.txt │ │ │ ├── file1.copy2.txt │ │ │ ├── file1.copy3.txt │ │ │ ├── file1.copy4.txt │ │ │ ├── file1.copy5.txt │ │ │ ├── file1.txt │ │ │ └── subdir │ │ │ │ └── file20.txt │ │ └── scenario.txt │ │ ├── test_basic │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.copy2to1.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.copy1.txt │ │ │ ├── file1.copy2.txt │ │ │ ├── file1.copy3.txt │ │ │ ├── file1.copy4.txt │ │ │ ├── file1.copy5.txt │ │ │ ├── file1.txt │ │ │ └── subdir │ │ │ │ └── file20.txt │ │ ├── modfiles │ │ │ └── file1.txt │ │ └── scenario.txt │ │ ├── test_changes │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.copy2to1.que │ │ │ ├── _testdir_path1.._testdir_path2.delete1.que │ │ │ ├── _testdir_path1.._testdir_path2.delete2.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── file5.txt │ │ │ ├── file6.txt │ │ │ ├── file7.txt │ │ │ └── file8.txt │ │ ├── modfiles │ │ │ ├── file1.txt │ │ │ ├── file10.txt │ │ │ ├── file11.txt │ │ │ ├── file2.txt │ │ │ ├── file5L.txt │ │ │ ├── file5R.txt │ │ │ ├── file6.txt │ │ │ └── file7.txt │ │ └── scenario.txt │ │ ├── test_check_access │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ ├── missing-listings._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── missing-listings._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── missing-listings._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── missing-listings._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── path1-missing._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── path1-missing._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── path1-missing._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── path1-missing._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ └── subdir │ │ │ │ ├── RCLONE_TEST │ │ │ │ └── file20.txt │ │ ├── modfiles │ │ │ └── hold.txt │ │ └── scenario.txt │ │ ├── test_check_access_filters │ │ ├── golden │ │ │ ├── exclude-error-run._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── exclude-error-run._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── exclude-error-run._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── exclude-error-run._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── exclude-initial._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── exclude-initial._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── exclude-initial._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── exclude-initial._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── exclude-other-filtersfile.txt │ │ │ ├── exclude-other-filtersfile.txt.md5 │ │ │ ├── exclude-pass-run._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── exclude-pass-run._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── exclude-pass-run._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── exclude-pass-run._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── include-error-run._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── include-error-run._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── include-error-run._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── include-error-run._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── include-initial._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── include-initial._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── include-initial._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── include-initial._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── include-other-filtersfile.txt │ │ │ ├── include-other-filtersfile.txt.md5 │ │ │ ├── include-pass-run._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── include-pass-run._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── include-pass-run._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── include-pass-run._testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── subdir-not │ │ │ │ ├── RCLONE_TEST │ │ │ │ ├── file20.txt │ │ │ │ └── subdir-not2 │ │ │ │ │ ├── RCLONE_TEST │ │ │ │ │ └── file30.txt │ │ │ ├── subdir │ │ │ │ ├── RCLONE_TEST │ │ │ │ ├── file20.txt │ │ │ │ ├── subdirA │ │ │ │ │ ├── RCLONE_TEST │ │ │ │ │ └── file30.txt │ │ │ │ └── subdirB │ │ │ │ │ ├── RCLONE_TEST │ │ │ │ │ └── file30.txt │ │ │ └── subdirX │ │ │ │ ├── RCLONE_TEST │ │ │ │ ├── file20.txt │ │ │ │ └── subdirX1 │ │ │ │ ├── RCLONE_TEST │ │ │ │ └── file30.txt │ │ ├── modfiles │ │ │ ├── exclude-other-filtersfile.txt │ │ │ └── include-other-filtersfile.txt │ │ └── scenario.txt │ │ ├── test_check_filename │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── initial-pass._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── initial-pass._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── initial-pass._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── initial-pass._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── path2-missing._testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── .chk_file │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ └── subdir │ │ │ │ ├── .chk_file │ │ │ │ └── file20.txt │ │ ├── modfiles │ │ │ └── hold.txt │ │ └── scenario.txt │ │ ├── test_check_sync │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── check-sync-only._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── check-sync-only._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── check-sync-only._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── check-sync-only._testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── file5.txt │ │ │ ├── file6.txt │ │ │ ├── file7.txt │ │ │ └── file8.txt │ │ ├── modfiles │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ └── _testdir_path1.._testdir_path2.path2.lst │ │ └── scenario.txt │ │ ├── test_createemptysrcdirs │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.delete2.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.copy1.txt │ │ │ ├── file1.copy2.txt │ │ │ ├── file1.copy3.txt │ │ │ ├── file1.copy4.txt │ │ │ ├── file1.copy5.txt │ │ │ └── file1.txt │ │ ├── modfiles │ │ │ └── placeholder.txt │ │ └── scenario.txt │ │ ├── test_dry_run │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.copy2to1.que │ │ │ ├── _testdir_path1.._testdir_path2.delete1.que │ │ │ ├── _testdir_path1.._testdir_path2.delete2.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-dry │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-dry-new │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-dry │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-dry-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path1.lst-dry │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path1.lst-dry-new │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path2.lst-dry │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path2.lst-dry-new │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── dryrun-resync._testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ ├── dryrun._testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── dryrun._testdir_path1.._testdir_path2.copy2to1.que │ │ │ ├── dryrun._testdir_path1.._testdir_path2.delete1.que │ │ │ ├── dryrun._testdir_path1.._testdir_path2.delete2.que │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path1.lst-dry │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path1.lst-dry-new │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path2.lst-dry │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path2.lst-dry-new │ │ │ ├── dryrun._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── dryrun._testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── file5.txt │ │ │ ├── file6.txt │ │ │ └── file7.txt │ │ ├── modfiles │ │ │ ├── file1.txt │ │ │ ├── file10.txt │ │ │ ├── file11.txt │ │ │ ├── file2.txt │ │ │ ├── file5L.txt │ │ │ ├── file5R.txt │ │ │ ├── file6.txt │ │ │ └── file7.txt │ │ └── scenario.txt │ │ ├── test_equal │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.copy2to1.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ └── file2.txt │ │ ├── modfiles │ │ │ ├── file1L.txt │ │ │ ├── file1R.txt │ │ │ └── file2.txt │ │ └── scenario.txt │ │ ├── test_extended_char_paths │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── check-access-fail._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── check-access-fail._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── check-access-fail._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── check-access-fail._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── check-access-pass._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── check-access-pass._testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── check-access-pass._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── check-access-pass._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── check-access-pass._testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── check-access-pass._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── check-access-pass._testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ ├── normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.copy1to2.que │ │ │ ├── normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.copy2to1.que │ │ │ ├── normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path1.lst │ │ │ ├── normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path1.lst-new │ │ │ ├── normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path2.lst │ │ │ ├── normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path2.lst-new │ │ │ ├── resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path1.lst │ │ │ ├── resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path1.lst-new │ │ │ ├── resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path2.lst │ │ │ ├── resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path2.lst-new │ │ │ ├── test.log │ │ │ ├── 測試_filtersfile.txt │ │ │ └── 測試_filtersfile.txt.md5 │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file_enconde_mañana_funcionará.txt │ │ │ ├── filename_contains_ě_.txt │ │ │ ├── filename_contains_ࢺ_.txt │ │ │ ├── Русский.txt │ │ │ ├── 測試_check file │ │ │ └── 測試_Русский_ _ _ě_áñ │ │ │ │ ├── filename_contains_ě_.txt │ │ │ │ ├── filename_contains_ࢺ_.txt │ │ │ │ └── 測試_check file │ │ ├── modfiles │ │ │ ├── file1.txt │ │ │ └── 測試_filtersfile.txt │ │ └── scenario.txt │ │ ├── test_extended_filenames │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.copy2to1.que │ │ │ ├── _testdir_path1.._testdir_path2.delete1.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1 - Copy (2).txt │ │ │ ├── file1 - Copy.txt │ │ │ ├── file1.txt │ │ │ ├── file_enconde_mañana_funcionará.txt │ │ │ ├── filename_contains_ě_.txt │ │ │ ├── filename_contains_ࢺ_.txt │ │ │ ├── subdir_with_ࢺ_ │ │ │ │ ├── filename_contains_ě_.txt │ │ │ │ └── filename_contains_ࢺ_.txt │ │ │ └── Русский.txt │ │ ├── modfiles │ │ │ ├── file1.txt │ │ │ └── file2.txt │ │ └── scenario.txt │ │ ├── test_filters │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── filtersfile.flt │ │ │ ├── filtersfile.flt.md5 │ │ │ ├── resync._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── resync._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── resync._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── resync._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── resync.filtersfile.flt │ │ │ ├── resync.filtersfile.flt.md5 │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── file5.txt │ │ │ ├── file6.txt │ │ │ ├── file7.txt │ │ │ └── subdir │ │ │ │ └── file20.txt │ │ ├── modfiles │ │ │ ├── fileZ.txt │ │ │ └── filtersfile.flt │ │ └── scenario.txt │ │ ├── test_filtersfile_checks │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-dry │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-dry-new │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-dry │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-dry-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── filtersfile.txt │ │ │ ├── filtersfile.txt.md5 │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ └── subdir │ │ │ │ └── file20.txt │ │ ├── modfiles │ │ │ ├── filtersfile.txt │ │ │ ├── filtersfile2.txt │ │ │ └── hold.txt │ │ └── scenario.txt │ │ ├── test_max_delete_path1 │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.delete2.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── file5.txt │ │ │ ├── file6.txt │ │ │ ├── file7.txt │ │ │ ├── file8.txt │ │ │ └── file9.txt │ │ ├── modfiles │ │ │ └── hold.txt │ │ └── scenario.txt │ │ ├── test_max_delete_path2_force │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.delete1.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── initial-fail._testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── file5.txt │ │ │ ├── file6.txt │ │ │ ├── file7.txt │ │ │ ├── file8.txt │ │ │ └── file9.txt │ │ ├── modfiles │ │ │ └── hold.txt │ │ └── scenario.txt │ │ ├── test_rclone_args │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.copy1to2.que │ │ │ ├── _testdir_path1.._testdir_path2.copy2to1.que │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ └── subdir │ │ │ │ ├── file20.txt │ │ │ │ └── file21.txt │ │ ├── modfiles │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file20.txt │ │ │ └── file21.txt │ │ └── scenario.txt │ │ ├── test_resync │ │ ├── golden │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-err │ │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-err │ │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── _testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ ├── empty-path1._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── empty-path1._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── empty-path1._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── empty-path1._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── empty-path1._testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ ├── empty-path2._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── empty-path2._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── empty-path2._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── empty-path2._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── mixed-diffs._testdir_path1.._testdir_path2.path1.lst │ │ │ ├── mixed-diffs._testdir_path1.._testdir_path2.path1.lst-new │ │ │ ├── mixed-diffs._testdir_path1.._testdir_path2.path2.lst │ │ │ ├── mixed-diffs._testdir_path1.._testdir_path2.path2.lst-new │ │ │ ├── mixed-diffs._testdir_path1.._testdir_path2.resync-copy2to1.que │ │ │ └── test.log │ │ ├── initial │ │ │ ├── RCLONE_TEST │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.txt │ │ │ ├── file5.txt │ │ │ ├── file6.txt │ │ │ └── file7.txt │ │ ├── modfiles │ │ │ ├── fileA.txt │ │ │ └── fileB.txt │ │ └── scenario.txt │ │ └── test_rmdirs │ │ ├── golden │ │ ├── _testdir_path1.._testdir_path2.delete2.que │ │ ├── _testdir_path1.._testdir_path2.path1.lst │ │ ├── _testdir_path1.._testdir_path2.path1.lst-new │ │ ├── _testdir_path1.._testdir_path2.path2.lst │ │ ├── _testdir_path1.._testdir_path2.path2.lst-new │ │ └── test.log │ │ ├── initial │ │ ├── RCLONE_TEST │ │ ├── file1.copy1.txt │ │ ├── file1.copy2.txt │ │ ├── file1.copy3.txt │ │ ├── file1.copy4.txt │ │ ├── file1.copy5.txt │ │ ├── file1.txt │ │ └── subdir │ │ │ └── file20.txt │ │ ├── modfiles │ │ └── file1.txt │ │ └── scenario.txt ├── cachestats │ ├── cachestats.go │ └── cachestats_unsupported.go ├── cat │ └── cat.go ├── check │ └── check.go ├── checksum │ └── checksum.go ├── cleanup │ └── cleanup.go ├── cmd.go ├── cmount │ ├── arch.go │ ├── fs.go │ ├── mount.go │ ├── mount_brew.go │ ├── mount_test.go │ ├── mount_unsupported.go │ ├── mountpoint_other.go │ └── mountpoint_windows.go ├── config │ ├── config.go │ └── config_test.go ├── copy │ └── copy.go ├── copyto │ └── copyto.go ├── copyurl │ └── copyurl.go ├── cryptcheck │ └── cryptcheck.go ├── cryptdecode │ └── cryptdecode.go ├── dedupe │ └── dedupe.go ├── delete │ └── delete.go ├── deletefile │ └── deletefile.go ├── genautocomplete │ ├── genautocomplete.go │ ├── genautocomplete_bash.go │ ├── genautocomplete_fish.go │ ├── genautocomplete_powershell.go │ ├── genautocomplete_test.go │ └── genautocomplete_zsh.go ├── gendocs │ └── gendocs.go ├── hashsum │ └── hashsum.go ├── help.go ├── link │ └── link.go ├── listremotes │ └── listremotes.go ├── ls │ ├── ls.go │ └── lshelp │ │ └── lshelp.go ├── lsd │ └── lsd.go ├── lsf │ ├── lsf.go │ ├── lsf_test.go │ └── testfiles │ │ ├── file1 │ │ ├── file2 │ │ ├── file3 │ │ └── subdir │ │ ├── file1 │ │ ├── file2 │ │ └── file3 ├── lsjson │ └── lsjson.go ├── lsl │ └── lsl.go ├── md5sum │ └── md5sum.go ├── mkdir │ └── mkdir.go ├── mount │ ├── dir.go │ ├── file.go │ ├── fs.go │ ├── handle.go │ ├── mount.go │ ├── mount_test.go │ ├── mount_unsupported.go │ └── test │ │ ├── seek_speed.go │ │ ├── seeker.go │ │ └── seekers.go ├── mount2 │ ├── file.go │ ├── fs.go │ ├── mount.go │ ├── mount_test.go │ ├── mount_unsupported.go │ └── node.go ├── mountlib │ ├── check_linux.go │ ├── check_other.go │ ├── mount.go │ ├── mount.md │ ├── rc.go │ ├── rc_test.go │ ├── sighup.go │ ├── sighup_unsupported.go │ └── utils.go ├── move │ └── move.go ├── moveto │ └── moveto.go ├── ncdu │ ├── ncdu.go │ ├── ncdu_unsupported.go │ └── scan │ │ └── scan.go ├── nfsmount │ ├── nfsmount.go │ ├── nfsmount_test.go │ └── nfsmount_unsupported.go ├── obscure │ └── obscure.go ├── progress.go ├── purge │ └── purge.go ├── rc │ └── rc.go ├── rcat │ └── rcat.go ├── rcd │ └── rcd.go ├── reveal │ └── reveal.go ├── rmdir │ └── rmdir.go ├── rmdirs │ └── rmdirs.go ├── selfupdate │ ├── noselfupdate.go │ ├── selfupdate.go │ ├── selfupdate.md │ ├── selfupdate_test.go │ ├── testdata │ │ └── verify │ │ │ ├── SHA256SUMS │ │ │ └── archive.zip │ ├── verify.go │ ├── verify_test.go │ ├── writable_unix.go │ ├── writable_unsupported.go │ └── writable_windows.go ├── selfupdate_disabled.go ├── selfupdate_enabled.go ├── serve │ ├── dlna │ │ ├── LICENSE.anacrolix │ │ ├── cds.go │ │ ├── cms.go │ │ ├── data │ │ │ ├── assets_generate.go │ │ │ ├── assets_vfsdata.go │ │ │ ├── data.go │ │ │ └── static │ │ │ │ ├── ConnectionManager.xml │ │ │ │ ├── ContentDirectory.xml │ │ │ │ ├── X_MS_MediaReceiverRegistrar.xml │ │ │ │ ├── rclone-120x120.png │ │ │ │ ├── rclone-48x48.png │ │ │ │ └── rootDesc.xml.tmpl │ │ ├── dlna.go │ │ ├── dlna_test.go │ │ ├── dlna_util.go │ │ ├── dlnaflags │ │ │ └── dlnaflags.go │ │ ├── mrrs.go │ │ ├── testdata │ │ │ └── files │ │ │ │ ├── small_jpeg.jpg │ │ │ │ ├── subdir │ │ │ │ ├── video.mp4 │ │ │ │ └── video.srt │ │ │ │ ├── video.en.srt │ │ │ │ ├── video.mp4 │ │ │ │ ├── video.nfo │ │ │ │ └── video.srt │ │ └── upnpav │ │ │ └── upnpav.go │ ├── docker │ │ ├── api.go │ │ ├── docker.go │ │ ├── docker.md │ │ ├── docker_test.go │ │ ├── driver.go │ │ ├── options.go │ │ ├── serve.go │ │ ├── systemd.go │ │ ├── systemd_unsupported.go │ │ ├── unix.go │ │ ├── unix_unsupported.go │ │ └── volume.go │ ├── ftp │ │ ├── ftp.go │ │ ├── ftp_test.go │ │ └── ftp_unsupported.go │ ├── http │ │ ├── http.go │ │ ├── http_test.go │ │ └── testdata │ │ │ ├── files │ │ │ ├── hidden.txt │ │ │ ├── hidden │ │ │ │ └── file.txt │ │ │ ├── one%.txt │ │ │ ├── three │ │ │ │ ├── a.txt │ │ │ │ └── b.txt │ │ │ └── two.txt │ │ │ └── golden │ │ │ ├── a.txt │ │ │ ├── dirnotfound.html │ │ │ ├── hidden.txt │ │ │ ├── hiddendir.html │ │ │ ├── index.html │ │ │ ├── indexhead.txt │ │ │ ├── indexpost.txt │ │ │ ├── notfound.html │ │ │ ├── one.txt │ │ │ ├── onehead.txt │ │ │ ├── onepost.txt │ │ │ ├── testindex.html │ │ │ ├── three.html │ │ │ ├── two-6.txt │ │ │ ├── two.txt │ │ │ ├── two2-5.txt │ │ │ └── two3-.txt │ ├── nfs │ │ ├── filesystem.go │ │ ├── handler.go │ │ ├── nfs.go │ │ ├── nfs_unsupported.go │ │ └── server.go │ ├── proxy │ │ ├── proxy.go │ │ ├── proxy_code.go │ │ ├── proxy_test.go │ │ └── proxyflags │ │ │ └── proxyflags.go │ ├── restic │ │ ├── cache.go │ │ ├── cache_test.go │ │ ├── restic-test.sh │ │ ├── restic.go │ │ ├── restic_appendonly_test.go │ │ ├── restic_privaterepos_test.go │ │ ├── restic_test.go │ │ ├── restic_utils_test.go │ │ └── stdio_conn.go │ ├── s3 │ │ ├── backend.go │ │ ├── ioutils.go │ │ ├── list.go │ │ ├── logger.go │ │ ├── pager.go │ │ ├── s3.go │ │ ├── s3_test.go │ │ ├── serve_s3.md │ │ ├── server.go │ │ └── utils.go │ ├── serve.go │ ├── servetest │ │ ├── proxy_code.go │ │ └── servetest.go │ ├── sftp │ │ ├── connection.go │ │ ├── connection_test.go │ │ ├── handler.go │ │ ├── server.go │ │ ├── sftp.go │ │ ├── sftp_test.go │ │ └── sftp_unsupported.go │ └── webdav │ │ ├── testdata │ │ └── golden │ │ │ ├── a.txt │ │ │ ├── dirnotfound.html │ │ │ ├── hidden.txt │ │ │ ├── hiddendir.html │ │ │ ├── index.html │ │ │ ├── indexhead.txt │ │ │ ├── indexpost.txt │ │ │ ├── notfound.html │ │ │ ├── one.txt │ │ │ ├── onehead.txt │ │ │ ├── onepost.txt │ │ │ ├── three.html │ │ │ ├── two-6.txt │ │ │ ├── two.txt │ │ │ ├── two2-5.txt │ │ │ └── two3-.txt │ │ ├── webdav.go │ │ └── webdav_test.go ├── settier │ └── settier.go ├── sha1sum │ └── sha1sum.go ├── siginfo_bsd.go ├── siginfo_others.go ├── size │ └── size.go ├── sync │ └── sync.go ├── test │ ├── changenotify │ │ └── changenotify.go │ ├── histogram │ │ └── histogram.go │ ├── info │ │ ├── all.sh │ │ ├── base32768.go │ │ ├── info.go │ │ ├── internal │ │ │ ├── build_csv │ │ │ │ └── main.go │ │ │ └── internal.go │ │ ├── test.cmd │ │ └── test.sh │ ├── makefiles │ │ └── makefiles.go │ ├── memory │ │ └── memory.go │ └── test.go ├── touch │ ├── touch.go │ └── touch_test.go ├── tree │ ├── testfiles │ │ ├── file1 │ │ ├── file2 │ │ ├── file3 │ │ └── subdir │ │ │ ├── file4 │ │ │ └── file5 │ ├── tree.go │ └── tree_test.go └── version │ ├── version.go │ └── version_test.go ├── cmdtest ├── cmdtest.go ├── cmdtest_test.go └── environment_test.go ├── contrib ├── docker-plugin │ ├── managed │ │ ├── Dockerfile │ │ └── config.json │ └── systemd │ │ ├── docker-volume-rclone.service │ │ └── docker-volume-rclone.socket └── docker │ ├── docker-compose.dlna-server.yml │ └── docker-compose.webdav-server.yml ├── docs ├── README.md ├── config.json ├── content │ ├── KEYS │ ├── _index.md │ ├── alias.md │ ├── amazonclouddrive.md │ ├── authors.md │ ├── azureblob.md │ ├── azurefiles.md │ ├── b2.md │ ├── bisync.md │ ├── box.md │ ├── bugs.md │ ├── cache.md │ ├── changelog.md │ ├── chunker.md │ ├── combine.md │ ├── commands │ │ ├── rclone.md │ │ ├── rclone_about.md │ │ ├── rclone_authorize.md │ │ ├── rclone_backend.md │ │ ├── rclone_bisync.md │ │ ├── rclone_cat.md │ │ ├── rclone_check.md │ │ ├── rclone_checksum.md │ │ ├── rclone_cleanup.md │ │ ├── rclone_completion.md │ │ ├── rclone_completion_bash.md │ │ ├── rclone_completion_fish.md │ │ ├── rclone_completion_powershell.md │ │ ├── rclone_completion_zsh.md │ │ ├── rclone_config.md │ │ ├── rclone_config_create.md │ │ ├── rclone_config_delete.md │ │ ├── rclone_config_disconnect.md │ │ ├── rclone_config_dump.md │ │ ├── rclone_config_edit.md │ │ ├── rclone_config_file.md │ │ ├── rclone_config_password.md │ │ ├── rclone_config_paths.md │ │ ├── rclone_config_providers.md │ │ ├── rclone_config_reconnect.md │ │ ├── rclone_config_redacted.md │ │ ├── rclone_config_show.md │ │ ├── rclone_config_touch.md │ │ ├── rclone_config_update.md │ │ ├── rclone_config_userinfo.md │ │ ├── rclone_copy.md │ │ ├── rclone_copyto.md │ │ ├── rclone_copyurl.md │ │ ├── rclone_cryptcheck.md │ │ ├── rclone_cryptdecode.md │ │ ├── rclone_dedupe.md │ │ ├── rclone_delete.md │ │ ├── rclone_deletefile.md │ │ ├── rclone_genautocomplete.md │ │ ├── rclone_genautocomplete_bash.md │ │ ├── rclone_genautocomplete_fish.md │ │ ├── rclone_genautocomplete_zsh.md │ │ ├── rclone_gendocs.md │ │ ├── rclone_hashsum.md │ │ ├── rclone_link.md │ │ ├── rclone_listremotes.md │ │ ├── rclone_ls.md │ │ ├── rclone_lsd.md │ │ ├── rclone_lsf.md │ │ ├── rclone_lsjson.md │ │ ├── rclone_lsl.md │ │ ├── rclone_md5sum.md │ │ ├── rclone_mkdir.md │ │ ├── rclone_mount.md │ │ ├── rclone_move.md │ │ ├── rclone_moveto.md │ │ ├── rclone_ncdu.md │ │ ├── rclone_obscure.md │ │ ├── rclone_purge.md │ │ ├── rclone_rc.md │ │ ├── rclone_rcat.md │ │ ├── rclone_rcd.md │ │ ├── rclone_rmdir.md │ │ ├── rclone_rmdirs.md │ │ ├── rclone_selfupdate.md │ │ ├── rclone_serve.md │ │ ├── rclone_serve_dlna.md │ │ ├── rclone_serve_docker.md │ │ ├── rclone_serve_ftp.md │ │ ├── rclone_serve_http.md │ │ ├── rclone_serve_nfs.md │ │ ├── rclone_serve_restic.md │ │ ├── rclone_serve_s3.md │ │ ├── rclone_serve_sftp.md │ │ ├── rclone_serve_webdav.md │ │ ├── rclone_settier.md │ │ ├── rclone_sha1sum.md │ │ ├── rclone_size.md │ │ ├── rclone_sync.md │ │ ├── rclone_test.md │ │ ├── rclone_test_changenotify.md │ │ ├── rclone_test_histogram.md │ │ ├── rclone_test_info.md │ │ ├── rclone_test_makefile.md │ │ ├── rclone_test_makefiles.md │ │ ├── rclone_test_memory.md │ │ ├── rclone_touch.md │ │ ├── rclone_tree.md │ │ └── rclone_version.md │ ├── compress.md │ ├── contact.md │ ├── crypt.md │ ├── docker.md │ ├── docs.md │ ├── downloads.md │ ├── drive.md │ ├── dropbox.md │ ├── faq.md │ ├── fichier.md │ ├── filefabric.md │ ├── filtering.md │ ├── flags.md │ ├── ftp.md │ ├── googlecloudstorage.md │ ├── googlephotos.md │ ├── gui.md │ ├── hasher.md │ ├── hdfs.md │ ├── hidrive.md │ ├── http.md │ ├── imagekit.md │ ├── install.md │ ├── install.sh │ ├── internetarchive.md │ ├── jottacloud.md │ ├── koofr.md │ ├── licence.md │ ├── linkbox.md │ ├── local.md │ ├── mailru.md │ ├── mega.md │ ├── memory.md │ ├── netstorage.md │ ├── onedrive.md │ ├── opendrive.md │ ├── oracleobjectstorage.md │ ├── oracleobjectstorage │ │ ├── _index.md │ │ └── tutorial_mount.md │ ├── overview.md │ ├── pcloud.md │ ├── pikpak.md │ ├── premiumizeme.md │ ├── privacy.md │ ├── protondrive.md │ ├── putio.md │ ├── qingstor.md │ ├── quatrix.md │ ├── rc.md │ ├── release_signing.md │ ├── remote_setup.md │ ├── s3.md │ ├── seafile.md │ ├── sftp.md │ ├── sharefile.md │ ├── sia.md │ ├── smb.md │ ├── sponsor.md │ ├── storj.md │ ├── sugarsync.md │ ├── swift.md │ ├── tardigrade.md │ ├── union.md │ ├── uptobox.md │ ├── webdav.md │ ├── yandex.md │ └── zoho.md ├── i18n │ └── en.toml ├── layouts │ ├── 404.html │ ├── _default │ │ ├── baseof.html │ │ └── single.html │ ├── chrome │ │ ├── menu.html │ │ └── navbar.html │ ├── index.html │ ├── partials │ │ └── version.html │ ├── rss.xml │ ├── section │ │ └── commands.html │ ├── shortcodes │ │ ├── asciinema.html │ │ ├── bizbutton.html │ │ ├── cdownload.html │ │ ├── color.html │ │ ├── download.html │ │ ├── icon.html │ │ ├── img.html │ │ ├── monthly_donations.html │ │ ├── nick.html │ │ ├── one_off_donations.html │ │ ├── provider.html │ │ ├── provider_list.html │ │ ├── rem.html │ │ └── version.html │ └── sitemap.xml └── static │ ├── css │ ├── bootstrap.min.4.4.1.css │ ├── custom.css │ └── font-awesome.min.5.10.2.css │ ├── img │ ├── logo_on_dark__horizontal_color.svg │ ├── logo_on_light__horizontal_color.svg │ ├── ncw-bitcoin-address.png │ ├── nick.svg │ └── rclone-32x32.png │ ├── js │ ├── bootstrap.min.4.4.1.js │ ├── custom.js │ ├── jquery.min.3.5.1.js │ ├── popper.min.1.16.0.js │ └── search.js │ └── webfonts │ ├── fa-brands-400.eot │ ├── fa-brands-400.svg │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.svg │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.eot │ ├── fa-solid-900.svg │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ └── fa-solid-900.woff2 ├── fs ├── accounting │ ├── accounting.go │ ├── accounting_other.go │ ├── accounting_test.go │ ├── accounting_unix.go │ ├── inprogress.go │ ├── prometheus.go │ ├── stats.go │ ├── stats_groups.go │ ├── stats_groups_test.go │ ├── stats_test.go │ ├── token_bucket.go │ ├── token_bucket_test.go │ ├── tpslimit.go │ ├── tpslimit_test.go │ ├── transfer.go │ └── transfermap.go ├── asyncreader │ ├── asyncreader.go │ └── asyncreader_test.go ├── backend_config.go ├── backend_config_test.go ├── bits.go ├── bits_test.go ├── bwtimetable.go ├── bwtimetable_test.go ├── cache │ ├── cache.go │ └── cache_test.go ├── chunkedreader │ ├── chunkedreader.go │ └── chunkedreader_test.go ├── chunksize │ ├── chunksize.go │ └── chunksize_test.go ├── config.go ├── config │ ├── authorize.go │ ├── config.go │ ├── config_read_password.go │ ├── config_read_password_unsupported.go │ ├── config_test.go │ ├── configfile │ │ ├── configfile.go │ │ ├── configfile_other.go │ │ ├── configfile_test.go │ │ └── configfile_unix.go │ ├── configflags │ │ └── configflags.go │ ├── configmap │ │ ├── configmap.go │ │ └── configmap_test.go │ ├── configstruct │ │ ├── configstruct.go │ │ ├── configstruct_test.go │ │ └── internal_test.go │ ├── crypt.go │ ├── crypt_internal_test.go │ ├── crypt_test.go │ ├── default_storage.go │ ├── default_storage_test.go │ ├── flags │ │ └── flags.go │ ├── obscure │ │ ├── obscure.go │ │ └── obscure_test.go │ ├── rc.go │ ├── rc_test.go │ ├── testdata │ │ ├── enc-invalid.conf │ │ ├── enc-short.conf │ │ ├── enc-too-new.conf │ │ ├── encrypted.conf │ │ └── plain.conf │ ├── ui.go │ └── ui_test.go ├── config_list.go ├── config_list_test.go ├── config_test.go ├── configmap.go ├── countsuffix.go ├── countsuffix_test.go ├── cutoffmode.go ├── cutoffmode_test.go ├── daemon_other.go ├── daemon_unix.go ├── deletemode.go ├── dir.go ├── direntries.go ├── direntries_test.go ├── dirtree │ ├── dirtree.go │ └── dirtree_test.go ├── driveletter │ ├── driveletter.go │ └── driveletter_windows.go ├── dump.go ├── dump_test.go ├── enum.go ├── enum_test.go ├── features.go ├── filter │ ├── filter.go │ ├── filter_test.go │ ├── filterflags │ │ └── filterflags.go │ ├── glob.go │ ├── glob_test.go │ └── rules.go ├── fingerprint.go ├── fingerprint_test.go ├── fs.go ├── fs_test.go ├── fserrors │ ├── enospc_error.go │ ├── enospc_error_notsupported.go │ ├── error.go │ ├── error_test.go │ ├── retriable_errors.go │ └── retriable_errors_windows.go ├── fshttp │ ├── dialer.go │ ├── http.go │ ├── http_test.go │ └── prometheus.go ├── fspath │ ├── fuzz.go │ ├── path.go │ └── path_test.go ├── hash │ ├── hash.go │ └── hash_test.go ├── list │ ├── list.go │ └── list_test.go ├── log.go ├── log │ ├── caller_hook.go │ ├── log.go │ ├── logflags │ │ └── logflags.go │ ├── redirect_stderr.go │ ├── redirect_stderr_unix.go │ ├── redirect_stderr_windows.go │ ├── syslog.go │ ├── syslog_unix.go │ ├── systemd.go │ └── systemd_unix.go ├── log_test.go ├── march │ ├── march.go │ └── march_test.go ├── metadata.go ├── metadata_mapper_code.go ├── metadata_test.go ├── mimetype.go ├── mount_helper.go ├── mount_helper_test.go ├── newfs.go ├── newfs_test.go ├── object │ ├── object.go │ └── object_test.go ├── open_options.go ├── open_options_test.go ├── operations │ ├── check.go │ ├── check_test.go │ ├── copy.go │ ├── copy_test.go │ ├── dedupe.go │ ├── dedupe_test.go │ ├── listdirsorted_test.go │ ├── lsjson.go │ ├── lsjson_test.go │ ├── multithread.go │ ├── multithread_test.go │ ├── operations.go │ ├── operations_internal_test.go │ ├── operations_test.go │ ├── rc.go │ ├── rc_test.go │ ├── reopen.go │ └── reopen_test.go ├── override.go ├── override_dir.go ├── override_dir_test.go ├── override_test.go ├── pacer.go ├── parseduration.go ├── parseduration_test.go ├── parsetime.go ├── parsetime_test.go ├── rc │ ├── cache.go │ ├── cache_test.go │ ├── config.go │ ├── config_test.go │ ├── internal.go │ ├── internal_test.go │ ├── jobs │ │ ├── job.go │ │ └── job_test.go │ ├── js │ │ ├── .gitignore │ │ ├── LICENSE.wasmexec │ │ ├── Makefile │ │ ├── README.md │ │ ├── index.html │ │ ├── loader.js │ │ ├── main.go │ │ ├── serve.go │ │ └── wasm_exec.js │ ├── params.go │ ├── params_test.go │ ├── rc.go │ ├── rc_test.go │ ├── rcflags │ │ └── rcflags.go │ ├── rcserver │ │ ├── rcserver.go │ │ ├── rcserver_test.go │ │ └── testdata │ │ │ ├── files │ │ │ ├── dir │ │ │ │ └── file2.txt │ │ │ └── file.txt │ │ │ └── golden │ │ │ └── testindex.html │ ├── registry.go │ └── webgui │ │ ├── plugins.go │ │ ├── rc.go │ │ ├── rc_test.go │ │ └── webgui.go ├── registry.go ├── sizesuffix.go ├── sizesuffix_test.go ├── sync │ ├── pipe.go │ ├── pipe_test.go │ ├── rc.go │ ├── rc_test.go │ ├── sync.go │ └── sync_test.go ├── terminalcolormode.go ├── terminalcolormode_test.go ├── tristate.go ├── tristate_test.go ├── types.go ├── version.go ├── versioncheck.go ├── versionsuffix.go ├── versiontag.go └── walk │ ├── walk.go │ └── walk_test.go ├── fstest ├── fstest.go ├── fstests │ └── fstests.go ├── mockdir │ └── dir.go ├── mockfs │ └── mockfs.go ├── mockobject │ └── mockobject.go ├── run.go ├── test_all │ ├── clean.go │ ├── config.go │ ├── config.yaml │ ├── report.go │ ├── run.go │ ├── run_test.go │ └── test_all.go ├── testserver │ ├── images │ │ ├── test-hdfs │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── core-site.xml │ │ │ ├── hdfs-site.xml │ │ │ ├── httpfs-site.xml │ │ │ ├── kdc.conf │ │ │ ├── kms-site.xml │ │ │ ├── krb5.conf │ │ │ ├── mapred-site.xml │ │ │ ├── run.sh │ │ │ └── yarn-site.xml │ │ └── test-sftp-openssh │ │ │ ├── Dockerfile │ │ │ └── README.md │ ├── init.d │ │ ├── README.md │ │ ├── TestFTPProftpd │ │ ├── TestFTPPureftpd │ │ ├── TestFTPRclone │ │ ├── TestFTPVsftpd │ │ ├── TestHdfs │ │ ├── TestS3Minio │ │ ├── TestS3MinioEdge │ │ ├── TestS3Rclone │ │ ├── TestSFTPOpenssh │ │ ├── TestSFTPRclone │ │ ├── TestSFTPRcloneSSH │ │ ├── TestSMB │ │ ├── TestSeafile │ │ ├── TestSeafileEncrypted │ │ ├── TestSeafileV6 │ │ ├── TestSia │ │ ├── TestSwiftAIO │ │ ├── TestWebdavNextcloud │ │ ├── TestWebdavOwncloud │ │ ├── TestWebdavRclone │ │ ├── docker.bash │ │ ├── rclone-serve.bash │ │ ├── run.bash │ │ └── seafile │ │ │ └── docker-compose.yml │ └── testserver.go └── testy │ └── testy.go ├── go.mod ├── go.sum ├── graphics ├── cover.jpg └── logo │ ├── README.md │ ├── favicon │ ├── favicon_16px.png │ └── favicon_32px.png │ ├── ico │ └── logo_symbol_color.ico │ ├── logo_on_dark │ ├── logo_on_dark__horizontal_color_128px.png │ ├── logo_on_dark__horizontal_color_256px.png │ ├── logo_on_dark__horizontal_color_32px.png │ ├── logo_on_dark__horizontal_color_64px.png │ ├── logo_on_dark__horizontal_mono_128px.png │ ├── logo_on_dark__horizontal_mono_256px.png │ ├── logo_on_dark__horizontal_mono_32px.png │ ├── logo_on_dark__horizontal_mono_64px.png │ ├── logo_on_dark__vertical_color_128px.png │ ├── logo_on_dark__vertical_color_256px.png │ ├── logo_on_dark__vertical_color_512px.png │ ├── logo_on_dark__vertical_color_64px.png │ ├── logo_on_dark__vertical_mono_128px.png │ ├── logo_on_dark__vertical_mono_256px.png │ ├── logo_on_dark__vertical_mono_512px.png │ ├── logo_on_dark__vertical_mono_64px.png │ ├── logo_symbol_on_dark_mono_128px.png │ ├── logo_symbol_on_dark_mono_256px.png │ ├── logo_symbol_on_dark_mono_512px.png │ └── logo_symbol_on_dark_mono_64px.png │ ├── logo_on_light │ ├── logo_on_light__horizontal_color_128px.png │ ├── logo_on_light__horizontal_color_256px.png │ ├── logo_on_light__horizontal_color_32px.png │ ├── logo_on_light__horizontal_color_64px.png │ ├── logo_on_light__horizontal_mono_128px.png │ ├── logo_on_light__horizontal_mono_256px.png │ ├── logo_on_light__horizontal_mono_32px.png │ ├── logo_on_light__horizontal_mono_64px.png │ ├── logo_on_light__vertical_color_128px.png │ ├── logo_on_light__vertical_color_256px.png │ ├── logo_on_light__vertical_color_512px.png │ ├── logo_on_light__vertical_color_64px.png │ ├── logo_on_light__vertical_mono_128px.png │ ├── logo_on_light__vertical_mono_256px.png │ ├── logo_on_light__vertical_mono_512px.png │ ├── logo_on_light__vertical_mono_64px.png │ ├── logo_symbol_on_light_mono_128px.png │ ├── logo_symbol_on_light_mono_256px.png │ ├── logo_symbol_on_light_mono_512px.png │ └── logo_symbol_on_light_mono_64px.png │ ├── logo_symbol │ ├── logo_symbol_color_128px.png │ ├── logo_symbol_color_16px.png │ ├── logo_symbol_color_256px.png │ ├── logo_symbol_color_512px.png │ ├── logo_symbol_color_600px_spaced.png │ ├── logo_symbol_color_600px_spaced.xcf │ └── logo_symbol_color_64px.png │ └── svg │ ├── logo_on_dark__horizontal_color.svg │ ├── logo_on_dark__horizontal_mono.svg │ ├── logo_on_dark__vertical_color.svg │ ├── logo_on_dark__vertical_mono.svg │ ├── logo_on_light__horizontal_color.svg │ ├── logo_on_light__horizontal_mono.svg │ ├── logo_on_light__vertical_color.svg │ ├── logo_on_light__vertical_mono.svg │ ├── logo_symbol_color.svg │ ├── logo_symbol_on_dark_mono.svg │ └── logo_symbol_on_light_mono.svg ├── lib ├── atexit │ ├── atexit.go │ ├── atexit_other.go │ ├── atexit_test.go │ └── atexit_unix.go ├── batcher │ ├── batcher.go │ ├── batcher_test.go │ └── options.go ├── bucket │ ├── bucket.go │ └── bucket_test.go ├── buildinfo │ ├── arch.go │ ├── cgo.go │ ├── osversion.go │ ├── osversion_windows.go │ ├── snap.go │ └── tags.go ├── cache │ ├── cache.go │ └── cache_test.go ├── daemonize │ ├── daemon_other.go │ └── daemon_unix.go ├── debug │ └── common.go ├── dircache │ └── dircache.go ├── diskusage │ ├── diskusage.go │ ├── diskusage_netbsd.go │ ├── diskusage_openbsd.go │ ├── diskusage_test.go │ ├── diskusage_unix.go │ ├── diskusage_unsupported.go │ └── diskusage_windows.go ├── encoder │ ├── encoder.go │ ├── encoder_cases_test.go │ ├── encoder_test.go │ ├── filename │ │ ├── decode.go │ │ ├── decode_test.go │ │ ├── encode.go │ │ ├── fuzz.go │ │ ├── gentable.go │ │ └── init.go │ ├── internal │ │ └── gen │ │ │ └── main.go │ ├── os_darwin.go │ ├── os_other.go │ ├── os_windows.go │ └── standard.go ├── env │ ├── env.go │ └── env_test.go ├── errors │ ├── errors.go │ └── errors_test.go ├── exitcode │ └── exitcode.go ├── file │ ├── driveletter_other.go │ ├── driveletter_windows.go │ ├── file.go │ ├── file_other.go │ ├── file_test.go │ ├── file_windows.go │ ├── mkdir_other.go │ ├── mkdir_windows.go │ ├── mkdir_windows_test.go │ ├── preallocate.go │ ├── preallocate_other.go │ ├── preallocate_unix.go │ ├── preallocate_windows.go │ ├── unc.go │ ├── unc_test.go │ └── unc_windows.go ├── http │ ├── auth.go │ ├── auth_test.go │ ├── context.go │ ├── middleware.go │ ├── middleware_test.go │ ├── serve │ │ ├── dir.go │ │ ├── dir_test.go │ │ ├── serve.go │ │ └── serve_test.go │ ├── server.go │ ├── server_test.go │ ├── template.go │ ├── template_test.go │ ├── templates │ │ └── index.html │ └── testdata │ │ ├── .htpasswd │ │ ├── client-ca.crt │ │ ├── client-ca.key │ │ ├── client-ca.srl │ │ ├── client.crt │ │ ├── client.csr │ │ ├── client.key │ │ ├── emptyclient.crt │ │ ├── emptyclient.csr │ │ ├── emptyclient.key │ │ ├── local.crt │ │ └── local.key ├── israce │ ├── israce.go │ └── norace.go ├── jwtutil │ └── jwtutil.go ├── kv │ ├── bolt.go │ ├── internal_test.go │ ├── types.go │ └── unsupported.go ├── mmap │ ├── mmap.go │ ├── mmap_test.go │ ├── mmap_unix.go │ ├── mmap_unsupported.go │ └── mmap_windows.go ├── multipart │ └── multipart.go ├── oauthutil │ ├── oauthutil.go │ └── renew.go ├── pacer │ ├── pacer.go │ ├── pacer_test.go │ ├── pacers.go │ ├── tokens.go │ └── tokens_test.go ├── plugin │ ├── package.go │ └── plugin.go ├── pool │ ├── pool.go │ ├── pool_test.go │ ├── reader_writer.go │ └── reader_writer_test.go ├── proxy │ └── socks.go ├── random │ ├── random.go │ ├── random_seed.go │ ├── random_seed_old.go │ └── random_test.go ├── ranges │ ├── ranges.go │ └── ranges_test.go ├── readers │ ├── context.go │ ├── context_test.go │ ├── counting_reader.go │ ├── error.go │ ├── error_test.go │ ├── fakeseeker.go │ ├── fakeseeker_test.go │ ├── gzip.go │ ├── gzip_test.go │ ├── limited.go │ ├── noclose.go │ ├── noclose_test.go │ ├── noseeker.go │ ├── noseeker_test.go │ ├── pattern_reader.go │ ├── pattern_reader_test.go │ ├── readfill.go │ ├── readfill_test.go │ ├── repeatable.go │ └── repeatable_test.go ├── rest │ ├── headers.go │ ├── headers_test.go │ ├── rest.go │ ├── url.go │ └── url_test.go ├── structs │ ├── structs.go │ └── structs_test.go ├── systemd │ ├── doc.go │ └── notify.go ├── terminal │ ├── hidden_other.go │ ├── hidden_windows.go │ ├── terminal.go │ ├── terminal_normal.go │ └── terminal_unsupported.go └── version │ ├── version.go │ └── version_test.go ├── librclone ├── README.md ├── ctest │ ├── Makefile │ └── ctest.c ├── gomobile │ └── gomobile.go ├── librclone.go ├── librclone │ └── librclone.go ├── php │ ├── rclone.php │ └── test.php └── python │ ├── rclone.py │ └── test_rclone.py ├── notes.txt ├── rclone.1 ├── rclone.go └── vfs ├── dir.go ├── dir_handle.go ├── dir_handle_test.go ├── dir_test.go ├── errors.go ├── errors_test.go ├── file.go ├── file_test.go ├── make_open_tests.go ├── open_test.go ├── rc.go ├── rc_test.go ├── read.go ├── read_test.go ├── read_write.go ├── read_write_test.go ├── test_vfs └── test_vfs.go ├── vfs.go ├── vfs.md ├── vfs_case_test.go ├── vfs_test.go ├── vfscache ├── cache.go ├── cache_test.go ├── downloaders │ ├── downloaders.go │ └── downloaders_test.go ├── item.go ├── item_test.go └── writeback │ ├── writeback.go │ └── writeback_test.go ├── vfscommon ├── cachemode.go ├── cachemode_test.go ├── options.go └── path.go ├── vfsflags ├── filemode.go ├── vfsflags.go ├── vfsflags_non_unix.go └── vfsflags_unix.go ├── vfstest ├── dir.go ├── edge_cases.go ├── file.go ├── fs.go ├── os.go ├── read.go ├── read_non_unix.go ├── read_unix.go ├── submount.go ├── vfs.go ├── write.go ├── write_non_unix.go └── write_unix.go ├── vfstest_test.go ├── vstate_string.go ├── write.go └── write_test.go /.gitattributes: -------------------------------------------------------------------------------- 1 | # Ignore generated files in GitHub language statistics and diffs 2 | /MANUAL.* linguist-generated=true 3 | /rclone.1 linguist-generated=true 4 | 5 | # Don't fiddle with the line endings of test data 6 | **/testdata/** -text 7 | **/test/** -text 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Rclone Forum Community Support 4 | url: https://forum.rclone.org/ 5 | about: Please ask and answer questions here. 6 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | -------------------------------------------------------------------------------- /.github/workflows/winget.yml: -------------------------------------------------------------------------------- 1 | name: Publish to Winget 2 | on: 3 | release: 4 | types: [released] 5 | 6 | jobs: 7 | publish: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: vedantmgoyal2009/winget-releaser@v2 11 | with: 12 | identifier: Rclone.Rclone 13 | installers-regex: '-windows-\w+\.zip$' 14 | token: ${{ secrets.WINGET_TOKEN }} 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | _junk/ 3 | rclone 4 | rclone.exe 5 | build 6 | docs/public 7 | rclone.iml 8 | .idea 9 | .history 10 | *.test 11 | *.iml 12 | fuzz-build.zip 13 | *.orig 14 | *.rej 15 | Thumbs.db 16 | __pycache__ 17 | .DS_Store 18 | /docs/static/img/logos/ 19 | resource_windows_*.syso 20 | .devcontainer 21 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | v1.66.0 2 | -------------------------------------------------------------------------------- /backend/alias/test/files/four/five/underfive.txt: -------------------------------------------------------------------------------- 1 | apple 2 | -------------------------------------------------------------------------------- /backend/alias/test/files/four/under four.txt: -------------------------------------------------------------------------------- 1 | beetroot 2 | -------------------------------------------------------------------------------- /backend/alias/test/files/one%.txt: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /backend/alias/test/files/three/underthree.txt: -------------------------------------------------------------------------------- 1 | rutabaga 2 | -------------------------------------------------------------------------------- /backend/alias/test/files/two.html: -------------------------------------------------------------------------------- 1 | potato 2 | -------------------------------------------------------------------------------- /backend/azureblob/azureblob_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for azureblob for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 || solaris || js 5 | // +build plan9 solaris js 6 | 7 | package azureblob 8 | -------------------------------------------------------------------------------- /backend/azurefiles/azurefiles_test.go: -------------------------------------------------------------------------------- 1 | //go:build !plan9 && !js 2 | // +build !plan9,!js 3 | 4 | package azurefiles 5 | 6 | import ( 7 | "testing" 8 | 9 | "github.com/rclone/rclone/fstest/fstests" 10 | ) 11 | 12 | func TestIntegration(t *testing.T) { 13 | var objPtr *Object 14 | fstests.Run(t, &fstests.Opt{ 15 | RemoteName: "TestAzureFiles:", 16 | NilObject: objPtr, 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /backend/azurefiles/azurefiles_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for azurefiles for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 || js 5 | // +build plan9 js 6 | 7 | package azurefiles 8 | -------------------------------------------------------------------------------- /backend/box/box_test.go: -------------------------------------------------------------------------------- 1 | // Test Box filesystem interface 2 | package box_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/box" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestBox:", 15 | NilObject: (*box.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/cache/cache_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for cache for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 || js 5 | // +build plan9 js 6 | 7 | package cache 8 | -------------------------------------------------------------------------------- /backend/compress/.gitignore: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /backend/drive/test/files/example1.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/backend/drive/test/files/example1.ods -------------------------------------------------------------------------------- /backend/drive/test/files/example2.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/backend/drive/test/files/example2.doc -------------------------------------------------------------------------------- /backend/drive/test/files/example3.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/backend/drive/test/files/example3.odt -------------------------------------------------------------------------------- /backend/fichier/fichier_test.go: -------------------------------------------------------------------------------- 1 | // Test 1Fichier filesystem interface 2 | package fichier 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/fstest/fstests" 8 | ) 9 | 10 | // TestIntegration runs integration tests against the remote 11 | func TestIntegration(t *testing.T) { 12 | fstests.Run(t, &fstests.Opt{ 13 | RemoteName: "TestFichier:", 14 | }) 15 | } 16 | -------------------------------------------------------------------------------- /backend/filefabric/filefabric_test.go: -------------------------------------------------------------------------------- 1 | // Test filefabric filesystem interface 2 | package filefabric_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/filefabric" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestFileFabric:", 15 | NilObject: (*filefabric.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/googlephotos/testfiles/rclone-test-image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/backend/googlephotos/testfiles/rclone-test-image1.jpg -------------------------------------------------------------------------------- /backend/googlephotos/testfiles/rclone-test-image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/backend/googlephotos/testfiles/rclone-test-image2.jpg -------------------------------------------------------------------------------- /backend/hdfs/hdfs_test.go: -------------------------------------------------------------------------------- 1 | // Test HDFS filesystem interface 2 | 3 | //go:build !plan9 4 | // +build !plan9 5 | 6 | package hdfs_test 7 | 8 | import ( 9 | "testing" 10 | 11 | "github.com/rclone/rclone/backend/hdfs" 12 | "github.com/rclone/rclone/fstest/fstests" 13 | ) 14 | 15 | // TestIntegration runs integration tests against the remote 16 | func TestIntegration(t *testing.T) { 17 | fstests.Run(t, &fstests.Opt{ 18 | RemoteName: "TestHdfs:", 19 | NilObject: (*hdfs.Object)(nil), 20 | }) 21 | } 22 | -------------------------------------------------------------------------------- /backend/hdfs/hdfs_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for hdfs for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 5 | // +build plan9 6 | 7 | package hdfs 8 | -------------------------------------------------------------------------------- /backend/hidrive/hidrivehash/internal/internal.go: -------------------------------------------------------------------------------- 1 | // Package internal provides utilities for HiDrive. 2 | package internal 3 | 4 | import ( 5 | "encoding" 6 | "hash" 7 | ) 8 | 9 | // LevelHash is an internal interface for level-hashes. 10 | type LevelHash interface { 11 | encoding.BinaryMarshaler 12 | encoding.BinaryUnmarshaler 13 | hash.Hash 14 | // Add takes a position-embedded checksum and adds it to the level. 15 | Add(sum []byte) 16 | // IsFull returns whether the number of checksums added to this level reached its capacity. 17 | IsFull() bool 18 | } 19 | -------------------------------------------------------------------------------- /backend/http/test/files/four/under four.txt: -------------------------------------------------------------------------------- 1 | beetroot 2 | -------------------------------------------------------------------------------- /backend/http/test/files/one%.txt: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /backend/http/test/files/three/underthree.txt: -------------------------------------------------------------------------------- 1 | rutabaga 2 | -------------------------------------------------------------------------------- /backend/http/test/files/two.html: -------------------------------------------------------------------------------- 1 | file.txt 2 | -------------------------------------------------------------------------------- /backend/http/test/index_files/empty.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/backend/http/test/index_files/empty.html -------------------------------------------------------------------------------- /backend/imagekit/imagekit_test.go: -------------------------------------------------------------------------------- 1 | package imagekit 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/rclone/rclone/fstest" 7 | "github.com/rclone/rclone/fstest/fstests" 8 | ) 9 | 10 | func TestIntegration(t *testing.T) { 11 | debug := true 12 | fstest.Verbose = &debug 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestImageKit:", 15 | NilObject: (*Object)(nil), 16 | SkipFsCheckWrap: true, 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /backend/internetarchive/internetarchive_test.go: -------------------------------------------------------------------------------- 1 | // Test internetarchive filesystem interface 2 | package internetarchive_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/internetarchive" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestIA:lesmi-rclone-test/", 15 | NilObject: (*internetarchive.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/jottacloud/jottacloud_test.go: -------------------------------------------------------------------------------- 1 | // Test Box filesystem interface 2 | package jottacloud_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/jottacloud" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestJottacloud:", 15 | NilObject: (*jottacloud.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/koofr/koofr_test.go: -------------------------------------------------------------------------------- 1 | package koofr_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/rclone/rclone/fstest/fstests" 7 | ) 8 | 9 | // TestIntegration runs integration tests against the remote 10 | func TestIntegration(t *testing.T) { 11 | fstests.Run(t, &fstests.Opt{ 12 | RemoteName: "TestKoofr:", 13 | }) 14 | } 15 | -------------------------------------------------------------------------------- /backend/linkbox/linkbox_test.go: -------------------------------------------------------------------------------- 1 | // Test Linkbox filesystem interface 2 | package linkbox_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/linkbox" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestLinkbox:", 15 | NilObject: (*linkbox.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/local/fadvise_other.go: -------------------------------------------------------------------------------- 1 | //go:build !linux 2 | // +build !linux 3 | 4 | package local 5 | 6 | import ( 7 | "io" 8 | "os" 9 | ) 10 | 11 | func newFadviseReadCloser(o *Object, f *os.File, offset, limit int64) io.ReadCloser { 12 | return f 13 | } 14 | -------------------------------------------------------------------------------- /backend/local/local_test.go: -------------------------------------------------------------------------------- 1 | // Test Local filesystem interface 2 | package local_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/local" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "", 15 | NilObject: (*local.Object)(nil), 16 | QuickTestOK: true, 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /backend/local/metadata_other.go: -------------------------------------------------------------------------------- 1 | //go:build plan9 || js 2 | // +build plan9 js 3 | 4 | package local 5 | 6 | import ( 7 | "fmt" 8 | 9 | "github.com/rclone/rclone/fs" 10 | ) 11 | 12 | // Read the metadata from the file into metadata where possible 13 | func (o *Object) readMetadataFromFile(m *fs.Metadata) (err error) { 14 | info, err := o.fs.lstat(o.path) 15 | if err != nil { 16 | return err 17 | } 18 | m.Set("mode", fmt.Sprintf("%0o", info.Mode())) 19 | m.Set("mtime", info.ModTime().Format(metadataTimeFormat)) 20 | return nil 21 | } 22 | -------------------------------------------------------------------------------- /backend/local/read_device_other.go: -------------------------------------------------------------------------------- 1 | // Device reading functions 2 | 3 | //go:build !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris 4 | // +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris 5 | 6 | package local 7 | 8 | import "os" 9 | 10 | // readDevice turns a valid os.FileInfo into a device number, 11 | // returning devUnset if it fails. 12 | func readDevice(fi os.FileInfo, oneFileSystem bool) uint64 { 13 | return devUnset 14 | } 15 | -------------------------------------------------------------------------------- /backend/local/remove_other.go: -------------------------------------------------------------------------------- 1 | //go:build !windows 2 | // +build !windows 3 | 4 | package local 5 | 6 | import "os" 7 | 8 | // Removes name, retrying on a sharing violation 9 | func remove(name string) error { 10 | return os.Remove(name) 11 | } 12 | -------------------------------------------------------------------------------- /backend/local/setbtime.go: -------------------------------------------------------------------------------- 1 | //go:build !windows 2 | // +build !windows 3 | 4 | package local 5 | 6 | import ( 7 | "time" 8 | ) 9 | 10 | const haveSetBTime = false 11 | 12 | // setBTime changes the birth time of the file passed in 13 | func setBTime(name string, btime time.Time) error { 14 | // Does nothing 15 | return nil 16 | } 17 | -------------------------------------------------------------------------------- /backend/local/symlink_other.go: -------------------------------------------------------------------------------- 1 | //go:build windows || plan9 || js 2 | // +build windows plan9 js 3 | 4 | package local 5 | 6 | import ( 7 | "strings" 8 | ) 9 | 10 | // isCircularSymlinkError checks if the current error code is because of a circular symlink 11 | func isCircularSymlinkError(err error) bool { 12 | if err != nil { 13 | if strings.Contains(err.Error(), "The name of the file cannot be resolved by the system") { 14 | return true 15 | } 16 | } 17 | return false 18 | } 19 | -------------------------------------------------------------------------------- /backend/mailru/mailru_test.go: -------------------------------------------------------------------------------- 1 | // Test Mailru filesystem interface 2 | package mailru_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/mailru" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestMailru:", 15 | NilObject: (*mailru.Object)(nil), 16 | SkipBadWindowsCharacters: true, 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /backend/mega/mega_test.go: -------------------------------------------------------------------------------- 1 | // Test Mega filesystem interface 2 | package mega_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/mega" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestMega:", 15 | NilObject: (*mega.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/memory/memory_test.go: -------------------------------------------------------------------------------- 1 | // Test memory filesystem interface 2 | package memory 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/fstest/fstests" 8 | ) 9 | 10 | // TestIntegration runs integration tests against the remote 11 | func TestIntegration(t *testing.T) { 12 | fstests.Run(t, &fstests.Opt{ 13 | RemoteName: ":memory:", 14 | NilObject: (*Object)(nil), 15 | QuickTestOK: true, 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/netstorage/netstorage_test.go: -------------------------------------------------------------------------------- 1 | package netstorage_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/rclone/rclone/backend/netstorage" 7 | "github.com/rclone/rclone/fstest/fstests" 8 | ) 9 | 10 | // TestIntegration runs integration tests against the remote 11 | func TestIntegration(t *testing.T) { 12 | fstests.Run(t, &fstests.Opt{ 13 | RemoteName: "TestnStorage:", 14 | NilObject: (*netstorage.Object)(nil), 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /backend/onedrive/quickxorhash/xor.go: -------------------------------------------------------------------------------- 1 | //go:build !go1.20 2 | 3 | package quickxorhash 4 | 5 | func xorBytes(dst, src []byte) int { 6 | n := len(dst) 7 | if len(src) < n { 8 | n = len(src) 9 | } 10 | if n == 0 { 11 | return 0 12 | } 13 | dst = dst[:n] 14 | //src = src[:n] 15 | src = src[:len(dst)] // remove bounds check in loop 16 | for i := range dst { 17 | dst[i] ^= src[i] 18 | } 19 | return n 20 | } 21 | -------------------------------------------------------------------------------- /backend/onedrive/quickxorhash/xor_1.20.go: -------------------------------------------------------------------------------- 1 | //go:build go1.20 2 | 3 | package quickxorhash 4 | 5 | import "crypto/subtle" 6 | 7 | func xorBytes(dst, src []byte) int { 8 | return subtle.XORBytes(dst, src, dst) 9 | } 10 | -------------------------------------------------------------------------------- /backend/opendrive/opendrive_test.go: -------------------------------------------------------------------------------- 1 | // Test Opendrive filesystem interface 2 | package opendrive_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/opendrive" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestOpenDrive:", 15 | NilObject: (*opendrive.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/oracleobjectstorage/oracleobjectstorage_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for oracleobjectstorage for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 || solaris || js 5 | // +build plan9 solaris js 6 | 7 | package oracleobjectstorage 8 | -------------------------------------------------------------------------------- /backend/pcloud/pcloud_test.go: -------------------------------------------------------------------------------- 1 | // Test Pcloud filesystem interface 2 | package pcloud_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/pcloud" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestPcloud:", 15 | NilObject: (*pcloud.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/pikpak/pikpak_test.go: -------------------------------------------------------------------------------- 1 | // Test PikPak filesystem interface 2 | package pikpak_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/pikpak" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestPikPak:", 15 | NilObject: (*pikpak.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/premiumizeme/premiumizeme_test.go: -------------------------------------------------------------------------------- 1 | // Test filesystem interface 2 | package premiumizeme_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/premiumizeme" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestPremiumizeMe:", 15 | NilObject: (*premiumizeme.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/protondrive/protondrive_test.go: -------------------------------------------------------------------------------- 1 | package protondrive_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/rclone/rclone/backend/protondrive" 7 | "github.com/rclone/rclone/fstest/fstests" 8 | ) 9 | 10 | // TestIntegration runs integration tests against the remote 11 | func TestIntegration(t *testing.T) { 12 | fstests.Run(t, &fstests.Opt{ 13 | RemoteName: "TestProtonDrive:", 14 | NilObject: (*protondrive.Object)(nil), 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /backend/putio/putio_test.go: -------------------------------------------------------------------------------- 1 | // Test Put.io filesystem interface 2 | package putio 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/fstest/fstests" 8 | ) 9 | 10 | // TestIntegration runs integration tests against the remote 11 | func TestIntegration(t *testing.T) { 12 | fstests.Run(t, &fstests.Opt{ 13 | RemoteName: "TestPutio:", 14 | NilObject: (*Object)(nil), 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /backend/qingstor/qingstor_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 || js 5 | // +build plan9 js 6 | 7 | package qingstor 8 | -------------------------------------------------------------------------------- /backend/quatrix/quatrix_test.go: -------------------------------------------------------------------------------- 1 | // Test Quatrix filesystem interface 2 | package quatrix_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/quatrix" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestQuatrix:", 15 | NilObject: (*quatrix.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/seafile/seafile_test.go: -------------------------------------------------------------------------------- 1 | // Test Seafile filesystem interface 2 | package seafile_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/seafile" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestSeafile:", 15 | NilObject: (*seafile.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/sftp/sftp_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for sftp for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 5 | // +build plan9 6 | 7 | package sftp 8 | -------------------------------------------------------------------------------- /backend/sharefile/generate_tzdata.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | // +build ignore 3 | 4 | package main 5 | 6 | import ( 7 | "log" 8 | "net/http" 9 | 10 | "github.com/shurcooL/vfsgen" 11 | ) 12 | 13 | func main() { 14 | var AssetDir http.FileSystem = http.Dir("./tzdata") 15 | err := vfsgen.Generate(AssetDir, vfsgen.Options{ 16 | PackageName: "sharefile", 17 | BuildTags: "!dev", 18 | VariableName: "tzdata", 19 | }) 20 | if err != nil { 21 | log.Fatalln(err) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /backend/sharefile/update-timezone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Extract just the America/New_York timezone from 6 | tzinfo=$(go env GOROOT)/lib/time/zoneinfo.zip 7 | 8 | rm -rf tzdata 9 | mkdir tzdata 10 | cd tzdata 11 | unzip ${tzinfo} America/New_York 12 | 13 | cd .. 14 | # Make the embedded assets 15 | go run generate_tzdata.go 16 | 17 | # tidy up 18 | rm -rf tzdata 19 | -------------------------------------------------------------------------------- /backend/sia/sia_test.go: -------------------------------------------------------------------------------- 1 | // Test Sia filesystem interface 2 | package sia_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/sia" 8 | 9 | "github.com/rclone/rclone/fstest/fstests" 10 | ) 11 | 12 | // TestIntegration runs integration tests against the remote 13 | func TestIntegration(t *testing.T) { 14 | fstests.Run(t, &fstests.Opt{ 15 | RemoteName: "TestSia:", 16 | NilObject: (*sia.Object)(nil), 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /backend/smb/smb_test.go: -------------------------------------------------------------------------------- 1 | // Test smb filesystem interface 2 | package smb_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/smb" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestSMB:rclone", 15 | NilObject: (*smb.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/storj/storj_test.go: -------------------------------------------------------------------------------- 1 | //go:build !plan9 2 | // +build !plan9 3 | 4 | // Test Storj filesystem interface 5 | package storj_test 6 | 7 | import ( 8 | "testing" 9 | 10 | "github.com/rclone/rclone/backend/storj" 11 | "github.com/rclone/rclone/fstest/fstests" 12 | ) 13 | 14 | // TestIntegration runs integration tests against the remote 15 | func TestIntegration(t *testing.T) { 16 | fstests.Run(t, &fstests.Opt{ 17 | RemoteName: "TestStorj:", 18 | NilObject: (*storj.Object)(nil), 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /backend/storj/storj_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build plan9 2 | // +build plan9 3 | 4 | package storj 5 | -------------------------------------------------------------------------------- /backend/sugarsync/sugarsync_test.go: -------------------------------------------------------------------------------- 1 | // Test Sugarsync filesystem interface 2 | package sugarsync_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/sugarsync" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestSugarSync:Test", 15 | NilObject: (*sugarsync.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/yandex/yandex_test.go: -------------------------------------------------------------------------------- 1 | // Test Yandex filesystem interface 2 | package yandex_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/yandex" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestYandex:", 15 | NilObject: (*yandex.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /backend/zoho/zoho_test.go: -------------------------------------------------------------------------------- 1 | // Test Zoho filesystem interface 2 | package zoho_test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/rclone/rclone/backend/zoho" 8 | "github.com/rclone/rclone/fstest/fstests" 9 | ) 10 | 11 | // TestIntegration runs integration tests against the remote 12 | func TestIntegration(t *testing.T) { 13 | fstests.Run(t, &fstests.Opt{ 14 | RemoteName: "TestZoho:", 15 | NilObject: (*zoho.Object)(nil), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /bin/.ignore-emails: -------------------------------------------------------------------------------- 1 | # Email addresses to ignore in the git log when making the authors.md file 2 | 3 | 4 | <33207650+sp31415t1@users.noreply.github.com> 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /bin/bisect-go-rclone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # An example script to run when bisecting go with git bisect -run when 4 | # looking for an rclone regression 5 | 6 | # Run this from the go root 7 | 8 | set -e 9 | 10 | # Compile the go version 11 | cd src 12 | ./make.bash || exit 125 13 | 14 | # Make sure we are using it 15 | source ~/bin/use-go1.11 16 | go version 17 | 18 | # Compile rclone 19 | cd ~/go/src/github.com/rclone/rclone 20 | make 21 | 22 | # run the failing test 23 | go run -race race.go 24 | -------------------------------------------------------------------------------- /bin/build-xgo-cgofuse.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | docker build -t rclone/xgo-cgofuse https://github.com/winfsp/cgofuse.git 4 | docker images 5 | docker push rclone/xgo-cgofuse 6 | -------------------------------------------------------------------------------- /bin/travis.rclone.conf: -------------------------------------------------------------------------------- 1 | # Encrypted rclone configuration File 2 | 3 | RCLONE_ENCRYPT_V0: 4 | XIkAr3p+y+zai82cHFH8UoW1y1XTe6dpTzo/g4uSwqI2pfsnSSJ4JbAsRZ9nGVpx3NzROKEewlusVHNokiA4/nD4NbT+2DJrpMLg/OtLREICfuRk3tVWPKLGsmA+TLKU+IfQMO4LfrrCe2DF/lW0qA5Xu16E0Vn++jNhbwW2oB+JTkaGka8Ae3CyisM/3NUGnCOG/yb5wLH7ybUstNYPHsNFCiU1brFXQ4DNIbUFMmca+5S44vrOWvhp9QijQXlG7/JjwrkqbB/LK2gMJPTuhY2OW+4tRw1IoCXbWmwJXv5xmhPqanW92A== -------------------------------------------------------------------------------- /bin/win-build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | echo Setting environment variables for mingw+WinFsp compile 3 | set GOPATH=Z:\go 4 | rem set PATH=C:\Program Files\mingw-w64\i686-7.1.0-win32-dwarf-rt_v5-rev0\mingw32\bin;%PATH% 5 | set PATH=C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin;%GOPATH%/bin;%PATH% 6 | set CPATH=C:\Program Files\WinFsp\inc\fuse;C:\Program Files (x86)\WinFsp\inc\fuse 7 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "RCLONE_TEST" 2 | "file1.copy1.txt" 3 | "file1.copy2.txt" 4 | "file1.copy3.txt" 5 | "file1.copy4.txt" 6 | "file1.copy5.txt" 7 | "file1.txt" 8 | "subdir/file20.txt" 9 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/file1.copy1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_all_changed/initial/file1.copy1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/file1.copy2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_all_changed/initial/file1.copy2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/file1.copy3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_all_changed/initial/file1.copy3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/file1.copy4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_all_changed/initial/file1.copy4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/file1.copy5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_all_changed/initial/file1.copy5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_all_changed/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_all_changed/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_all_changed/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "subdir/file20.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/golden/_testdir_path1.._testdir_path2.copy2to1.que: -------------------------------------------------------------------------------- 1 | "file1.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/file1.copy1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_basic/initial/file1.copy1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/file1.copy2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_basic/initial/file1.copy2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/file1.copy3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_basic/initial/file1.copy3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/file1.copy4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_basic/initial/file1.copy4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/file1.copy5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_basic/initial/file1.copy5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_basic/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_basic/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/modfiles/file1.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_basic/scenario.txt: -------------------------------------------------------------------------------- 1 | test basic 2 | # Simple test case for development 3 | 4 | test initial bisync 5 | bisync resync 6 | 7 | test place newer files on both paths 8 | # force specific modification time since file time is lost through git 9 | touch-copy 2001-01-02 {datadir/}file1.txt {path2/} 10 | copy-as {datadir/}file1.txt {path1/}subdir file20.txt 11 | 12 | test bisync run 13 | bisync 14 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "file11.txt" 2 | "file2.txt" 3 | "file5.txt..path1" 4 | "file7.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/golden/_testdir_path1.._testdir_path2.copy2to1.que: -------------------------------------------------------------------------------- 1 | "file1.txt" 2 | "file10.txt" 3 | "file5.txt..path2" 4 | "file6.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/golden/_testdir_path1.._testdir_path2.delete1.que: -------------------------------------------------------------------------------- 1 | "file3.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/golden/_testdir_path1.._testdir_path2.delete2.que: -------------------------------------------------------------------------------- 1 | "file4.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file6.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file7.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/initial/file8.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_changes/initial/file8.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file1.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file10.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file11.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file2.txt: -------------------------------------------------------------------------------- 1 | Newer version -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file5L.txt: -------------------------------------------------------------------------------- 1 | This file is newer and not equal to 5R 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file5R.txt: -------------------------------------------------------------------------------- 1 | This file is newer and not equal to 5L 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file6.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_changes/modfiles/file7.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/golden/_testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "RCLONE_TEST" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/initial/subdir/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access/modfiles/hold.txt: -------------------------------------------------------------------------------- 1 | This file prevents bisync from deleting empty directories. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/golden/exclude-other-filtersfile.txt: -------------------------------------------------------------------------------- 1 | # EXCLUDE ALL Filters file for Check Access filtering testing 2 | # another comment 3 | # and another 4 | 5 | - /subdir/subdirA/ 6 | + /subdir/** 7 | - /subdir-not/ 8 | + /* 9 | - ** 10 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/golden/exclude-other-filtersfile.txt.md5: -------------------------------------------------------------------------------- 1 | 868aeb20dc983cd1aaa29f6c4f2537e6 -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/golden/include-other-filtersfile.txt: -------------------------------------------------------------------------------- 1 | # INCLUDE OTHER Filters file for Check Access filtering testing 2 | # another comment 3 | # and another 4 | 5 | - /subdir/subdirA/ 6 | # + /subdir/** 7 | - /subdir-not/ 8 | #+ /* 9 | #- ** 10 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/golden/include-other-filtersfile.txt.md5: -------------------------------------------------------------------------------- 1 | b9c5205dddfc926160c2442b2497d407 -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir-not/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir-not/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/subdir-not/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir-not/subdir-not2/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir-not/subdir-not2/file30.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/subdir-not/subdir-not2/file30.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir/subdirA/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir/subdirA/file30.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/subdir/subdirA/file30.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir/subdirB/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdir/subdirB/file30.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/subdir/subdirB/file30.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdirX/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdirX/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/subdirX/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdirX/subdirX1/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/initial/subdirX/subdirX1/file30.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_access_filters/initial/subdirX/subdirX1/file30.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/modfiles/exclude-other-filtersfile.txt: -------------------------------------------------------------------------------- 1 | # EXCLUDE ALL Filters file for Check Access filtering testing 2 | # another comment 3 | # and another 4 | 5 | - /subdir/subdirA/ 6 | + /subdir/** 7 | - /subdir-not/ 8 | + /* 9 | - ** 10 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_access_filters/modfiles/include-other-filtersfile.txt: -------------------------------------------------------------------------------- 1 | # INCLUDE OTHER Filters file for Check Access filtering testing 2 | # another comment 3 | # and another 4 | 5 | - /subdir/subdirA/ 6 | # + /subdir/** 7 | - /subdir-not/ 8 | #+ /* 9 | #- ** 10 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/initial/.chk_file: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_filename/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_filename/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_filename/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_filename/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/initial/subdir/.chk_file: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_filename/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_filename/modfiles/hold.txt: -------------------------------------------------------------------------------- 1 | This file prevents bisync from deleting empty directories. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file6.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file7.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_check_sync/initial/file8.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_check_sync/initial/file8.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "subdir" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/golden/_testdir_path1.._testdir_path2.delete2.que: -------------------------------------------------------------------------------- 1 | "subdir" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/golden/_testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "subdir" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.copy5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_createemptysrcdirs/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_createemptysrcdirs/modfiles/placeholder.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_createemptysrcdirs/modfiles/placeholder.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "file11.txt" 2 | "file2.txt" 3 | "file5.txt..path1" 4 | "file7.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/_testdir_path1.._testdir_path2.copy2to1.que: -------------------------------------------------------------------------------- 1 | "file1.txt" 2 | "file10.txt" 3 | "file5.txt..path2" 4 | "file6.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/_testdir_path1.._testdir_path2.delete1.que: -------------------------------------------------------------------------------- 1 | "file3.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/_testdir_path1.._testdir_path2.delete2.que: -------------------------------------------------------------------------------- 1 | "file4.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/_testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "file10.txt" 2 | "file4.txt" 3 | "file6.txt" 4 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/dryrun-resync._testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "file10.txt" 2 | "file4.txt" 3 | "file6.txt" 4 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/dryrun._testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "file11.txt" 2 | "file2.txt" 3 | "file5.txt..path1" 4 | "file7.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/dryrun._testdir_path1.._testdir_path2.copy2to1.que: -------------------------------------------------------------------------------- 1 | "file1.txt" 2 | "file10.txt" 3 | "file5.txt..path2" 4 | "file6.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/dryrun._testdir_path1.._testdir_path2.delete1.que: -------------------------------------------------------------------------------- 1 | "file3.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/dryrun._testdir_path1.._testdir_path2.delete2.que: -------------------------------------------------------------------------------- 1 | "file4.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/golden/dryrun._testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "file10.txt" 2 | "file4.txt" 3 | "file6.txt" 4 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_dry_run/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_dry_run/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_dry_run/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_dry_run/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/file5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_dry_run/initial/file5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/file6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_dry_run/initial/file6.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/initial/file7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_dry_run/initial/file7.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file1.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file10.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file11.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file2.txt: -------------------------------------------------------------------------------- 1 | Newer version -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file5L.txt: -------------------------------------------------------------------------------- 1 | This file is newer and not equal to 5R 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file5R.txt: -------------------------------------------------------------------------------- 1 | This file is newer and not equal to 5L 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file6.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_dry_run/modfiles/file7.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "file1.txt..path1" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/golden/_testdir_path1.._testdir_path2.copy2to1.que: -------------------------------------------------------------------------------- 1 | "file1.txt..path2" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/golden/_testdir_path1.._testdir_path2.path1.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 33 md5:ea683c03f780b76a62405456b08ae6fd - 2001-03-04T00:00:00.000000000+0000 "file1.txt..path1" 4 | - 33 md5:2b4975bb20f7be674e66d78570ba2fb1 - 2001-01-02T00:00:00.000000000+0000 "file1.txt..path2" 5 | - 37 md5:9fe822ddd1cb81d83aae00fa48239bd3 - 2001-01-02T00:00:00.000000000+0000 "file2.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/golden/_testdir_path1.._testdir_path2.path1.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 33 md5:ea683c03f780b76a62405456b08ae6fd - 2001-03-04T00:00:00.000000000+0000 "file1.txt" 4 | - 37 md5:9fe822ddd1cb81d83aae00fa48239bd3 - 2001-01-02T00:00:00.000000000+0000 "file2.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/golden/_testdir_path1.._testdir_path2.path2.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 33 md5:ea683c03f780b76a62405456b08ae6fd - 2001-03-04T00:00:00.000000000+0000 "file1.txt..path1" 4 | - 33 md5:2b4975bb20f7be674e66d78570ba2fb1 - 2001-01-02T00:00:00.000000000+0000 "file1.txt..path2" 5 | - 37 md5:9fe822ddd1cb81d83aae00fa48239bd3 - 2001-01-02T00:00:00.000000000+0000 "file2.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/golden/_testdir_path1.._testdir_path2.path2.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 33 md5:2b4975bb20f7be674e66d78570ba2fb1 - 2001-01-02T00:00:00.000000000+0000 "file1.txt" 4 | - 37 md5:9fe822ddd1cb81d83aae00fa48239bd3 - 2001-01-02T00:00:00.000000000+0000 "file2.txt" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_equal/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_equal/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/modfiles/file1L.txt: -------------------------------------------------------------------------------- 1 | This file is NOT identical to 1R 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/modfiles/file1R.txt: -------------------------------------------------------------------------------- 1 | This file is NOT identical to 1L 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_equal/modfiles/file2.txt: -------------------------------------------------------------------------------- 1 | This file is identical on both sides 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/check-access-pass._testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "測試_Русский_ _ _ě_áñ/測試_check file" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.copy1to2.que: -------------------------------------------------------------------------------- 1 | "測試_file1p1" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/normal-sync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.copy2to1.que: -------------------------------------------------------------------------------- 1 | "測試_file1p2" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path1.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ě_.txt" 3 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ࢺ_.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "測試_check file" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path1.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ě_.txt" 3 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ࢺ_.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "測試_check file" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path2.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ě_.txt" 3 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ࢺ_.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "測試_check file" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/resync._testdir_path1_測試_Русский_____ě_áñ.._testdir_path2_測試_Русский_____ě_áñ.path2.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ě_.txt" 3 | - 272 md5:0033328434f9662a7dae0d1aee7768b6 - 2000-01-01T00:00:00.000000000+0000 "filename_contains_ࢺ_.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "測試_check file" 5 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/測試_filtersfile.txt: -------------------------------------------------------------------------------- 1 | # Test filters file 2 | # Note that this test checks for bisync's access to and usage of a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/golden/測試_filtersfile.txt.md5: -------------------------------------------------------------------------------- 1 | 1cec24a8ae7c33c49693a14d53fd6a96 -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/file_enconde_mañana_funcionará.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/file_enconde_mañana_funcionará.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/filename_contains_ě_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/filename_contains_ě_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/filename_contains_ࢺ_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/filename_contains_ࢺ_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/Русский.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/Русский.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/測試_check file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/測試_check file -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/測試_Русский_ _ _ě_áñ/filename_contains_ě_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/測試_Русский_ _ _ě_áñ/filename_contains_ě_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/測試_Русский_ _ _ě_áñ/filename_contains_ࢺ_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/測試_Русский_ _ _ě_áñ/filename_contains_ࢺ_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/initial/測試_Русский_ _ _ě_áñ/測試_check file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_char_paths/initial/測試_Русский_ _ _ě_áñ/測試_check file -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/modfiles/file1.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_char_paths/modfiles/測試_filtersfile.txt: -------------------------------------------------------------------------------- 1 | # Test filters file 2 | # Note that this test checks for bisync's access to and usage of a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "file1_with white space.txt" 2 | "filename_contains_ࢺ_p1m.txt" 3 | "subdir_with_ࢺ_/file_with_測試_.txt" 4 | "subdir_with_ࢺ_/filechangedbothpaths_ࢺ_.txt..path1" 5 | "subdir_with_ࢺ_/mañana_funcionará.txt" 6 | "subdir_with_ࢺ_/test.txt" 7 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/golden/_testdir_path1.._testdir_path2.copy2to1.que: -------------------------------------------------------------------------------- 1 | "New_top_level_mañana_funcionará.txt" 2 | "file_enconde_mañana_funcionará.txt" 3 | "subdir with␊white space.txt/file2 with␊white space.txt" 4 | "subdir_rawchars_␙_\x81_\xfe/file3_␙_\x81_\xfe" 5 | "subdir_with_ࢺ_/filechangedbothpaths_ࢺ_.txt..path2" 6 | "subdir_with_ࢺ_/filename_contains_ࢺ_p2s.txt" 7 | "Русский.txt" 8 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/golden/_testdir_path1.._testdir_path2.delete1.que: -------------------------------------------------------------------------------- 1 | "filename_contains_ࢺ_.txt" 2 | "subdir_with_ࢺ_/filename_contains_ě_.txt" 3 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/file1 - Copy (2).txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/file1 - Copy (2).txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/file1 - Copy.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/file1 - Copy.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/file_enconde_mañana_funcionará.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/file_enconde_mañana_funcionará.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/filename_contains_ě_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/filename_contains_ě_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/filename_contains_ࢺ_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/filename_contains_ࢺ_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/subdir_with_ࢺ_/filename_contains_ě_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/subdir_with_ࢺ_/filename_contains_ě_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/subdir_with_ࢺ_/filename_contains_ࢺ_.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/subdir_with_ࢺ_/filename_contains_ࢺ_.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/initial/Русский.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_extended_filenames/initial/Русский.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/modfiles/file1.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_extended_filenames/modfiles/file2.txt: -------------------------------------------------------------------------------- 1 | This file is newer and not equal to file1 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "subdir/fileZ.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/golden/filtersfile.flt: -------------------------------------------------------------------------------- 1 | # Test filters file 2 | # Note that this test checks for bisync's access to and usage of a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/golden/filtersfile.flt.md5: -------------------------------------------------------------------------------- 1 | 1cec24a8ae7c33c49693a14d53fd6a96 -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/golden/resync.filtersfile.flt: -------------------------------------------------------------------------------- 1 | # Test filters file 2 | # Note that this test checks for bisync's access to and usage of a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/golden/resync.filtersfile.flt.md5: -------------------------------------------------------------------------------- 1 | 1cec24a8ae7c33c49693a14d53fd6a96 -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/file5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/file5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/file6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/file6.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/file7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/file7.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filters/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/modfiles/fileZ.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filters/modfiles/filtersfile.flt: -------------------------------------------------------------------------------- 1 | # Test filters file 2 | # Note that this test checks for bisync's access to and usage of a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path1.lst-dry: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path1.lst-dry-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path1.lst-err: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path1.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path2.lst-dry: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path2.lst-dry-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path2.lst-err: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/_testdir_path1.._testdir_path2.path2.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "RCLONE_TEST" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file1.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file2.txt" 5 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "subdir/file20.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/filtersfile.txt: -------------------------------------------------------------------------------- 1 | # Test filters file - DIFFERENT 2 | # Note that this test checks for bisync's access to a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/golden/filtersfile.txt.md5: -------------------------------------------------------------------------------- 1 | cbf4389cb34d9e160689d1578eb5707f -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filtersfile_checks/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filtersfile_checks/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_filtersfile_checks/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/modfiles/filtersfile.txt: -------------------------------------------------------------------------------- 1 | # Test filters file 2 | # Note that this test checks for bisync's access to a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | 7 | # Checks support for extended alphabets, such as Cyrillic 8 | - /Расшаренное/** 9 | - /Lightroom/** 10 | - /iPad 1/** 11 | - /Поездки/** 12 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/modfiles/filtersfile2.txt: -------------------------------------------------------------------------------- 1 | # Test filters file - DIFFERENT 2 | # Note that this test checks for bisync's access to a filters file, not an extensive test of rclone's filter capability 3 | 4 | # Exclude fileZ.txt in root only. The copy in the subdir should be found and synched. 5 | - /fileZ.txt 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_filtersfile_checks/modfiles/hold.txt: -------------------------------------------------------------------------------- 1 | This file prevents bisync from deleting empty directories. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/golden/_testdir_path1.._testdir_path2.delete2.que: -------------------------------------------------------------------------------- 1 | "file1.txt" 2 | "file2.txt" 3 | "file3.txt" 4 | "file4.txt" 5 | "file5.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/golden/_testdir_path1.._testdir_path2.path1.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/golden/_testdir_path1.._testdir_path2.path1.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/golden/_testdir_path1.._testdir_path2.path2.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/golden/initial-fail._testdir_path1.._testdir_path2.path1.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file6.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file7.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file8.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path1/initial/file8.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/initial/file9.txt: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path1/modfiles/hold.txt: -------------------------------------------------------------------------------- 1 | This file prevents bisync from deleting empty directories. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/golden/_testdir_path1.._testdir_path2.delete1.que: -------------------------------------------------------------------------------- 1 | "file1.txt" 2 | "file2.txt" 3 | "file3.txt" 4 | "file4.txt" 5 | "file5.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/golden/_testdir_path1.._testdir_path2.path1.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/golden/_testdir_path1.._testdir_path2.path2.lst: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/golden/_testdir_path1.._testdir_path2.path2.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/golden/initial-fail._testdir_path1.._testdir_path2.path2.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file6.txt" 3 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file7.txt" 4 | - 0 md5:d41d8cd98f00b204e9800998ecf8427e - 2000-01-01T00:00:00.000000000+0000 "file8.txt" 5 | - 109 md5:294d25b294ff26a5243dba914ac3fbf7 - 2000-01-01T00:00:00.000000000+0000 "file9.txt" 6 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file6.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file7.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file8.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_max_delete_path2_force/initial/file8.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/initial/file9.txt: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_max_delete_path2_force/modfiles/hold.txt: -------------------------------------------------------------------------------- 1 | This file prevents bisync from deleting empty directories. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/golden/_testdir_path1.._testdir_path2.copy1to2.que: -------------------------------------------------------------------------------- 1 | "file1.txt" 2 | "subdir/file20.txt" 3 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/golden/_testdir_path1.._testdir_path2.copy2to1.que: -------------------------------------------------------------------------------- 1 | "file2.txt" 2 | "subdir/file21.txt" 3 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rclone_args/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rclone_args/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rclone_args/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/initial/subdir/file21.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rclone_args/initial/subdir/file21.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/modfiles/file1.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/modfiles/file2.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/modfiles/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rclone_args/modfiles/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rclone_args/modfiles/file21.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rclone_args/modfiles/file21.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/golden/_testdir_path1.._testdir_path2.path2.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/golden/_testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "file2.txt" 2 | "file4.txt" 3 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/golden/empty-path1._testdir_path1.._testdir_path2.path1.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/golden/empty-path1._testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "RCLONE_TEST" 2 | "file1.txt" 3 | "file2.txt" 4 | "file3.txt" 5 | "file4.txt" 6 | "file5.txt" 7 | "file6.txt" 8 | "file7.txt" 9 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/golden/empty-path2._testdir_path1.._testdir_path2.path2.lst-new: -------------------------------------------------------------------------------- 1 | # bisync listing v1 from test 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/golden/mixed-diffs._testdir_path1.._testdir_path2.resync-copy2to1.que: -------------------------------------------------------------------------------- 1 | "file2.txt" 2 | "file4.txt" 3 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_resync/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/file2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_resync/initial/file2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/file3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_resync/initial/file3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/file4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_resync/initial/file4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/file5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_resync/initial/file5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/file6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_resync/initial/file6.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/initial/file7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_resync/initial/file7.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/modfiles/fileA.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_resync/modfiles/fileB.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/golden/_testdir_path1.._testdir_path2.delete2.que: -------------------------------------------------------------------------------- 1 | "subdir/file20.txt" 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/RCLONE_TEST: -------------------------------------------------------------------------------- 1 | This file is used for testing the health of rclone accesses to the local/remote file system. Do not delete. 2 | -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/file1.copy1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rmdirs/initial/file1.copy1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/file1.copy2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rmdirs/initial/file1.copy2.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/file1.copy3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rmdirs/initial/file1.copy3.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/file1.copy4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rmdirs/initial/file1.copy4.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/file1.copy5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rmdirs/initial/file1.copy5.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/file1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rmdirs/initial/file1.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/initial/subdir/file20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/bisync/testdata/test_rmdirs/initial/subdir/file20.txt -------------------------------------------------------------------------------- /cmd/bisync/testdata/test_rmdirs/modfiles/file1.txt: -------------------------------------------------------------------------------- 1 | This file is newer 2 | -------------------------------------------------------------------------------- /cmd/cachestats/cachestats_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for cache for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 || js 5 | // +build plan9 js 6 | 7 | package cachestats 8 | -------------------------------------------------------------------------------- /cmd/cmount/arch.go: -------------------------------------------------------------------------------- 1 | package cmount 2 | 3 | // ProvidedBy returns true if the rclone build for the given OS 4 | // provides support for lib/cgo-fuse 5 | func ProvidedBy(osName string) bool { 6 | return osName == "windows" || osName == "darwin" 7 | } 8 | -------------------------------------------------------------------------------- /cmd/cmount/mount_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build !((linux && cgo && cmount) || (darwin && cgo && cmount) || (freebsd && cgo && cmount) || (windows && cmount)) 2 | // +build !linux !cgo !cmount 3 | // +build !darwin !cgo !cmount 4 | // +build !freebsd !cgo !cmount 5 | // +build !windows !cmount 6 | 7 | // Package cmount implements a FUSE mounting system for rclone remotes. 8 | // 9 | // Build for cmount for unsupported platforms to stop go complaining 10 | // about "no buildable Go source files". 11 | package cmount 12 | -------------------------------------------------------------------------------- /cmd/lsf/testfiles/file1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/lsf/testfiles/file1 -------------------------------------------------------------------------------- /cmd/lsf/testfiles/file2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmd/lsf/testfiles/subdir/file1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/lsf/testfiles/subdir/file1 -------------------------------------------------------------------------------- /cmd/lsf/testfiles/subdir/file2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmd/lsf/testfiles/subdir/file3: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cmd/mount/mount_test.go: -------------------------------------------------------------------------------- 1 | //go:build linux 2 | // +build linux 3 | 4 | package mount 5 | 6 | import ( 7 | "testing" 8 | 9 | "github.com/rclone/rclone/vfs/vfscommon" 10 | "github.com/rclone/rclone/vfs/vfstest" 11 | ) 12 | 13 | func TestMount(t *testing.T) { 14 | vfstest.RunTests(t, false, vfscommon.CacheModeOff, true, mount) 15 | } 16 | -------------------------------------------------------------------------------- /cmd/mount/mount_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build !linux 2 | // +build !linux 3 | 4 | // Package mount implements a FUSE mounting system for rclone remotes. 5 | // 6 | // Build for mount for unsupported platforms to stop go complaining 7 | // about "no buildable Go source files". 8 | package mount 9 | -------------------------------------------------------------------------------- /cmd/mount2/mount_test.go: -------------------------------------------------------------------------------- 1 | //go:build linux 2 | // +build linux 3 | 4 | package mount2 5 | 6 | import ( 7 | "testing" 8 | 9 | "github.com/rclone/rclone/vfs/vfscommon" 10 | "github.com/rclone/rclone/vfs/vfstest" 11 | ) 12 | 13 | func TestMount(t *testing.T) { 14 | vfstest.RunTests(t, false, vfscommon.CacheModeOff, true, mount) 15 | } 16 | -------------------------------------------------------------------------------- /cmd/mount2/mount_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build !linux && (!darwin || !amd64) 2 | // +build !linux 3 | // +build !darwin !amd64 4 | 5 | // Package mount2 implements a FUSE mounting system for rclone remotes. 6 | // 7 | // Build for mount for unsupported platforms to stop go complaining 8 | // about "no buildable Go source files". 9 | package mount2 10 | -------------------------------------------------------------------------------- /cmd/mountlib/sighup.go: -------------------------------------------------------------------------------- 1 | //go:build !plan9 && !js 2 | // +build !plan9,!js 3 | 4 | package mountlib 5 | 6 | import ( 7 | "os" 8 | "os/signal" 9 | "syscall" 10 | ) 11 | 12 | // NotifyOnSigHup makes SIGHUP notify given channel on supported systems 13 | func NotifyOnSigHup(sighupChan chan os.Signal) { 14 | signal.Notify(sighupChan, syscall.SIGHUP) 15 | } 16 | -------------------------------------------------------------------------------- /cmd/mountlib/sighup_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build plan9 || js 2 | // +build plan9 js 3 | 4 | package mountlib 5 | 6 | import ( 7 | "os" 8 | ) 9 | 10 | // NotifyOnSigHup makes SIGHUP notify given channel on supported systems 11 | func NotifyOnSigHup(sighupChan chan os.Signal) {} 12 | -------------------------------------------------------------------------------- /cmd/ncdu/ncdu_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for ncdu for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 || js 5 | // +build plan9 js 6 | 7 | package ncdu 8 | -------------------------------------------------------------------------------- /cmd/nfsmount/nfsmount_test.go: -------------------------------------------------------------------------------- 1 | //go:build darwin && !cmount 2 | // +build darwin,!cmount 3 | 4 | package nfsmount 5 | 6 | import ( 7 | "testing" 8 | 9 | "github.com/rclone/rclone/vfs/vfscommon" 10 | "github.com/rclone/rclone/vfs/vfstest" 11 | ) 12 | 13 | func TestMount(t *testing.T) { 14 | vfstest.RunTests(t, false, vfscommon.CacheModeMinimal, false, mount) 15 | } 16 | -------------------------------------------------------------------------------- /cmd/nfsmount/nfsmount_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for nfsmount for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build !darwin || cmount 5 | // +build !darwin cmount 6 | 7 | // Package nfsmount implements mount command using NFS, not needed on most platforms 8 | package nfsmount 9 | -------------------------------------------------------------------------------- /cmd/selfupdate/noselfupdate.go: -------------------------------------------------------------------------------- 1 | //go:build noselfupdate 2 | // +build noselfupdate 3 | 4 | package selfupdate 5 | 6 | import ( 7 | "github.com/rclone/rclone/lib/buildinfo" 8 | ) 9 | 10 | func init() { 11 | buildinfo.Tags = append(buildinfo.Tags, "noselfupdate") 12 | } 13 | -------------------------------------------------------------------------------- /cmd/selfupdate/testdata/verify/SHA256SUMS: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP SIGNED MESSAGE----- 2 | Hash: SHA1 3 | 4 | b20b47f579a2c790ca752fb5d8e5651fade7d5867cbac0a4f71e805fc5c468d0 archive.zip 5 | -----BEGIN PGP SIGNATURE----- 6 | 7 | iF0EARECAB0WIQT79zfs6firGGBL0qyTk14C/ztU+gUCZS+oVQAKCRCTk14C/ztU 8 | +lNsAJ9XRiODlM4fIW9yqiltO3N+lLeucwCfRzD3cXk6BCB5wdz7pTgnItk9N74= 9 | =1GTr 10 | -----END PGP SIGNATURE----- 11 | -------------------------------------------------------------------------------- /cmd/selfupdate/testdata/verify/archive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/selfupdate/testdata/verify/archive.zip -------------------------------------------------------------------------------- /cmd/selfupdate/writable_unix.go: -------------------------------------------------------------------------------- 1 | //go:build !windows && !plan9 && !js && !noselfupdate 2 | // +build !windows,!plan9,!js,!noselfupdate 3 | 4 | package selfupdate 5 | 6 | import ( 7 | "golang.org/x/sys/unix" 8 | ) 9 | 10 | func writable(path string) bool { 11 | return unix.Access(path, unix.W_OK) == nil 12 | } 13 | -------------------------------------------------------------------------------- /cmd/selfupdate/writable_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build (plan9 || js) && !noselfupdate 2 | // +build plan9 js 3 | // +build !noselfupdate 4 | 5 | package selfupdate 6 | 7 | func writable(path string) bool { 8 | return true 9 | } 10 | -------------------------------------------------------------------------------- /cmd/selfupdate/writable_windows.go: -------------------------------------------------------------------------------- 1 | //go:build windows && !noselfupdate 2 | // +build windows,!noselfupdate 3 | 4 | package selfupdate 5 | 6 | import ( 7 | "os" 8 | ) 9 | 10 | func writable(path string) bool { 11 | info, err := os.Stat(path) 12 | const UserWritableBit = 128 13 | if err == nil { 14 | return info.Mode().Perm()&UserWritableBit != 0 15 | } 16 | return false 17 | } 18 | -------------------------------------------------------------------------------- /cmd/selfupdate_disabled.go: -------------------------------------------------------------------------------- 1 | //go:build noselfupdate 2 | // +build noselfupdate 3 | 4 | package cmd 5 | 6 | const selfupdateEnabled = false 7 | -------------------------------------------------------------------------------- /cmd/selfupdate_enabled.go: -------------------------------------------------------------------------------- 1 | //go:build !noselfupdate 2 | // +build !noselfupdate 3 | 4 | package cmd 5 | 6 | // This constant must be in the `cmd` package rather than `cmd/selfupdate` 7 | // to prevent build failure due to dependency loop. 8 | const selfupdateEnabled = true 9 | -------------------------------------------------------------------------------- /cmd/serve/dlna/data/static/rclone-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/dlna/data/static/rclone-120x120.png -------------------------------------------------------------------------------- /cmd/serve/dlna/data/static/rclone-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/dlna/data/static/rclone-48x48.png -------------------------------------------------------------------------------- /cmd/serve/dlna/testdata/files/small_jpeg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/dlna/testdata/files/small_jpeg.jpg -------------------------------------------------------------------------------- /cmd/serve/dlna/testdata/files/subdir/video.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/dlna/testdata/files/subdir/video.mp4 -------------------------------------------------------------------------------- /cmd/serve/dlna/testdata/files/subdir/video.srt: -------------------------------------------------------------------------------- 1 | 1 2 | 00:00:00,000 --> 00:02:00,000 3 | Test 4 | -------------------------------------------------------------------------------- /cmd/serve/dlna/testdata/files/video.en.srt: -------------------------------------------------------------------------------- 1 | 1 2 | 00:00:00,000 --> 00:02:00,000 3 | Test 4 | -------------------------------------------------------------------------------- /cmd/serve/dlna/testdata/files/video.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/dlna/testdata/files/video.mp4 -------------------------------------------------------------------------------- /cmd/serve/dlna/testdata/files/video.nfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/dlna/testdata/files/video.nfo -------------------------------------------------------------------------------- /cmd/serve/dlna/testdata/files/video.srt: -------------------------------------------------------------------------------- 1 | 1 2 | 00:00:00,000 --> 00:02:00,000 3 | Test 4 | -------------------------------------------------------------------------------- /cmd/serve/docker/systemd.go: -------------------------------------------------------------------------------- 1 | //go:build linux && !android 2 | // +build linux,!android 3 | 4 | package docker 5 | 6 | import ( 7 | "os" 8 | 9 | "github.com/coreos/go-systemd/activation" 10 | "github.com/coreos/go-systemd/util" 11 | ) 12 | 13 | func systemdActivationFiles() []*os.File { 14 | if util.IsRunningSystemd() { 15 | return activation.Files(false) 16 | } 17 | return nil 18 | } 19 | -------------------------------------------------------------------------------- /cmd/serve/docker/systemd_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build !linux || android 2 | // +build !linux android 3 | 4 | package docker 5 | 6 | import ( 7 | "os" 8 | ) 9 | 10 | //lint:ignore U1000 unused when not building linux 11 | func systemdActivationFiles() []*os.File { 12 | return nil 13 | } 14 | -------------------------------------------------------------------------------- /cmd/serve/docker/unix_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build !linux && !freebsd 2 | // +build !linux,!freebsd 3 | 4 | package docker 5 | 6 | import ( 7 | "errors" 8 | "net" 9 | ) 10 | 11 | func newUnixListener(path string, gid int) (net.Listener, string, error) { 12 | return nil, "", errors.New("unix sockets require Linux or FreeBSD") 13 | } 14 | -------------------------------------------------------------------------------- /cmd/serve/ftp/ftp_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 5 | // +build plan9 6 | 7 | package ftp 8 | 9 | import "github.com/spf13/cobra" 10 | 11 | // Command definition is nil to show not implemented 12 | var Command *cobra.Command = nil 13 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/files/hidden.txt: -------------------------------------------------------------------------------- 1 | hidden 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/files/hidden/file.txt: -------------------------------------------------------------------------------- 1 | hiddenfile 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/files/one%.txt: -------------------------------------------------------------------------------- 1 | one% 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/files/three/a.txt: -------------------------------------------------------------------------------- 1 | three 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/files/three/b.txt: -------------------------------------------------------------------------------- 1 | threeb 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/files/two.txt: -------------------------------------------------------------------------------- 1 | 0123456789 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/a.txt: -------------------------------------------------------------------------------- 1 | three 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/dirnotfound.html: -------------------------------------------------------------------------------- 1 | Directory not found 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/hidden.txt: -------------------------------------------------------------------------------- 1 | File not found 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/hiddendir.html: -------------------------------------------------------------------------------- 1 | Directory not found 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Directory listing of / 6 | 7 | 8 |

Directory listing of /

9 | three/
10 | one%.txt
11 | two.txt
12 | 13 | 14 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/indexhead.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/http/testdata/golden/indexhead.txt -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/indexpost.txt: -------------------------------------------------------------------------------- 1 | Method Not Allowed 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/notfound.html: -------------------------------------------------------------------------------- 1 | File not found 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/one.txt: -------------------------------------------------------------------------------- 1 | one% 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/onehead.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/http/testdata/golden/onehead.txt -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/onepost.txt: -------------------------------------------------------------------------------- 1 | Method Not Allowed 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/testindex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ .Title }} 6 | 7 | 8 |

{{ .Title }}

9 | {{ range $i := .Entries }}{{ $i.Leaf }}
10 | {{ end }} 11 | 12 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/three.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Directory listing of /three 6 | 7 | 8 |

Directory listing of /three

9 | a.txt
10 | b.txt
11 | 12 | 13 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/two-6.txt: -------------------------------------------------------------------------------- 1 | 0123456 -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/two.txt: -------------------------------------------------------------------------------- 1 | 0123456789 2 | -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/two2-5.txt: -------------------------------------------------------------------------------- 1 | 2345 -------------------------------------------------------------------------------- /cmd/serve/http/testdata/golden/two3-.txt: -------------------------------------------------------------------------------- 1 | 3456789 2 | -------------------------------------------------------------------------------- /cmd/serve/nfs/nfs_unsupported.go: -------------------------------------------------------------------------------- 1 | // For unsupported architectures 2 | //go:build !unix 3 | // +build !unix 4 | 5 | // Package nfs is not supported on non-Unix platforms 6 | package nfs 7 | 8 | import ( 9 | "github.com/spf13/cobra" 10 | ) 11 | 12 | // For unsupported platforms we just put nil 13 | var Command *cobra.Command = nil 14 | -------------------------------------------------------------------------------- /cmd/serve/sftp/sftp_unsupported.go: -------------------------------------------------------------------------------- 1 | // Build for sftp for unsupported platforms to stop go complaining 2 | // about "no buildable Go source files " 3 | 4 | //go:build plan9 5 | // +build plan9 6 | 7 | package sftp 8 | 9 | import "github.com/spf13/cobra" 10 | 11 | // Command definition is nil to show not implemented 12 | var Command *cobra.Command = nil 13 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/a.txt: -------------------------------------------------------------------------------- 1 | three 2 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/dirnotfound.html: -------------------------------------------------------------------------------- 1 | Directory not found 2 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/hidden.txt: -------------------------------------------------------------------------------- 1 | Not Found -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/hiddendir.html: -------------------------------------------------------------------------------- 1 | Directory not found 2 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Directory listing of / 6 | 7 | 8 |

Directory listing of /

9 | three/
10 | one%.txt
11 | two.txt
12 | 13 | 14 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/indexhead.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/webdav/testdata/golden/indexhead.txt -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/indexpost.txt: -------------------------------------------------------------------------------- 1 | Method Not Allowed -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/notfound.html: -------------------------------------------------------------------------------- 1 | Not Found -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/one.txt: -------------------------------------------------------------------------------- 1 | one% 2 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/onehead.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/serve/webdav/testdata/golden/onehead.txt -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/onepost.txt: -------------------------------------------------------------------------------- 1 | one% 2 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/three.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Directory listing of /three 6 | 7 | 8 |

Directory listing of /three

9 | a.txt
10 | b.txt
11 | 12 | 13 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/two-6.txt: -------------------------------------------------------------------------------- 1 | 0123456 -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/two.txt: -------------------------------------------------------------------------------- 1 | 0123456789 2 | -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/two2-5.txt: -------------------------------------------------------------------------------- 1 | 2345 -------------------------------------------------------------------------------- /cmd/serve/webdav/testdata/golden/two3-.txt: -------------------------------------------------------------------------------- 1 | 3456789 2 | -------------------------------------------------------------------------------- /cmd/siginfo_others.go: -------------------------------------------------------------------------------- 1 | //go:build !darwin && !freebsd && !netbsd && !dragonfly && !openbsd 2 | // +build !darwin,!freebsd,!netbsd,!dragonfly,!openbsd 3 | 4 | package cmd 5 | 6 | // SigInfoHandler creates SigInfo handler 7 | func SigInfoHandler() { 8 | } 9 | -------------------------------------------------------------------------------- /cmd/test/info/all.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | exec rclone --check-normalization=true --check-control=true --check-length=true info \ 3 | /tmp/testInfo \ 4 | TestAmazonCloudDrive:testInfo \ 5 | TestB2:testInfo \ 6 | TestCryptDrive:testInfo \ 7 | TestCryptSwift:testInfo \ 8 | TestDrive:testInfo \ 9 | TestDropbox:testInfo \ 10 | TestGoogleCloudStorage:rclone-testinfo \ 11 | TestnStorage:testInfo \ 12 | TestOneDrive:testInfo \ 13 | TestS3:rclone-testinfo \ 14 | TestSftp:testInfo \ 15 | TestSwift:testInfo \ 16 | TestYandex:testInfo \ 17 | TestFTP:testInfo 18 | -------------------------------------------------------------------------------- /cmd/test/info/test.cmd: -------------------------------------------------------------------------------- 1 | set RCLONE_CONFIG_LOCALWINDOWS_TYPE=local 2 | rclone.exe purge LocalWindows:info 3 | rclone.exe info -vv LocalWindows:info --write-json=info-LocalWindows.json > info-LocalWindows.log 2>&1 4 | rclone.exe ls -vv LocalWindows:info > info-LocalWindows.list 2>&1 5 | -------------------------------------------------------------------------------- /cmd/tree/testfiles/file1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/tree/testfiles/file1 -------------------------------------------------------------------------------- /cmd/tree/testfiles/file2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/tree/testfiles/file2 -------------------------------------------------------------------------------- /cmd/tree/testfiles/file3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/tree/testfiles/file3 -------------------------------------------------------------------------------- /cmd/tree/testfiles/subdir/file4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/tree/testfiles/subdir/file4 -------------------------------------------------------------------------------- /cmd/tree/testfiles/subdir/file5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/cmd/tree/testfiles/subdir/file5 -------------------------------------------------------------------------------- /contrib/docker-plugin/systemd/docker-volume-rclone.socket: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Docker Volume Plugin for rclone 3 | 4 | [Socket] 5 | ListenStream=/run/docker/plugins/rclone.sock 6 | 7 | [Install] 8 | WantedBy=sockets.target 9 | -------------------------------------------------------------------------------- /docs/content/oracleobjectstorage/_index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/content/oracleobjectstorage/_index.md -------------------------------------------------------------------------------- /docs/content/tardigrade.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Tardigrade" 3 | description: "Rclone docs for Tardigrade" 4 | versionIntroduced: "v1.52" 5 | --- 6 | 7 | # {{< icon "fas fa-dove" >}} Tardigrade 8 | 9 | The Tardigrade backend has been renamed to be the [Storj backend](/storj/). 10 | Old configuration files will continue to work. 11 | -------------------------------------------------------------------------------- /docs/i18n/en.toml: -------------------------------------------------------------------------------- 1 | # Dummy translation file to make errors go away 2 | # See: https://discourse.gohugo.io/t/monolingual-site/6300 3 | 4 | [wordCount] 5 | other = "{{ .WordCount }} words" 6 | -------------------------------------------------------------------------------- /docs/layouts/404.html: -------------------------------------------------------------------------------- 1 | {{ define "main"}} 2 |

Page not found :-(

3 | Click here to return to the homepage. 4 | {{ end }} 5 | -------------------------------------------------------------------------------- /docs/layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ .Content }} 3 | {{ end }} 4 | -------------------------------------------------------------------------------- /docs/layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ .Content }} 3 | {{ end }} 4 | -------------------------------------------------------------------------------- /docs/layouts/partials/version.html: -------------------------------------------------------------------------------- 1 | v1.66.0 -------------------------------------------------------------------------------- /docs/layouts/shortcodes/asciinema.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/bizbutton.html: -------------------------------------------------------------------------------- 1 | For Business 2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/cdownload.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/color.html: -------------------------------------------------------------------------------- 1 | {{ .Inner }} 2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/download.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/icon.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/img.html: -------------------------------------------------------------------------------- 1 | {{ .Get 2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/nick.html: -------------------------------------------------------------------------------- 1 |

Nick
Nick Craig-Wood

2 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/provider_list.html: -------------------------------------------------------------------------------- 1 |
    2 | {{ .Inner }} 3 |
4 | -------------------------------------------------------------------------------- /docs/layouts/shortcodes/rem.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/layouts/shortcodes/rem.html -------------------------------------------------------------------------------- /docs/layouts/shortcodes/version.html: -------------------------------------------------------------------------------- 1 | {{ partial "version.html" . }} -------------------------------------------------------------------------------- /docs/layouts/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | {{ range .Data.Pages }} 3 | 4 | {{ .Permalink }} 5 | {{ safeHTML ( .Date.Format "2006-01-02T15:04:05-07:00" ) }}{{ with .Sitemap.ChangeFreq }} 6 | {{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }} 7 | {{ .Sitemap.Priority }}{{ end }} 8 | 9 | {{ end }} 10 | 11 | -------------------------------------------------------------------------------- /docs/static/img/ncw-bitcoin-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/img/ncw-bitcoin-address.png -------------------------------------------------------------------------------- /docs/static/img/rclone-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/img/rclone-32x32.png -------------------------------------------------------------------------------- /docs/static/js/search.js: -------------------------------------------------------------------------------- 1 | function on_search() { 2 | document.search_form.q.value = document.search_form.words.value + " -site:forum.rclone.org"; 3 | return true; 4 | } 5 | -------------------------------------------------------------------------------- /docs/static/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /docs/static/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/static/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /docs/static/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/static/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /docs/static/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/static/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /docs/static/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/static/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /docs/static/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/static/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /docs/static/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/docs/static/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /fs/accounting/accounting_other.go: -------------------------------------------------------------------------------- 1 | // Accounting and limiting reader 2 | // Non-unix specific functions. 3 | 4 | //go:build !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris 5 | // +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris 6 | 7 | package accounting 8 | 9 | // startSignalHandler() is Unix specific and does nothing under non-Unix 10 | // platforms. 11 | func (tb *tokenBucket) startSignalHandler() {} 12 | -------------------------------------------------------------------------------- /fs/config/config_read_password_unsupported.go: -------------------------------------------------------------------------------- 1 | // ReadPassword for OSes which are not supported by golang.org/x/term 2 | // See https://github.com/golang/go/issues/14441 - plan9 3 | 4 | //go:build plan9 5 | // +build plan9 6 | 7 | package config 8 | 9 | // ReadPassword reads a password with echoing it to the terminal. 10 | func ReadPassword() string { 11 | return ReadLine() 12 | } 13 | -------------------------------------------------------------------------------- /fs/config/configfile/configfile_other.go: -------------------------------------------------------------------------------- 1 | // Read, write and edit the config file 2 | // Non-unix specific functions. 3 | 4 | //go:build !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris 5 | // +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris 6 | 7 | package configfile 8 | 9 | // attemptCopyGroups tries to keep the group the same, which only makes sense 10 | // for system with user-group-world permission model. 11 | func attemptCopyGroup(fromPath, toPath string) {} 12 | -------------------------------------------------------------------------------- /fs/config/testdata/enc-invalid.conf: -------------------------------------------------------------------------------- 1 | # Encrypted rclone configuration File 2 | 3 | RCLONE_ENCRYPT_V0: 4 | b5Uk6mE3cUn5Wb8xiWYnVBAxXUirAaEG1PO/GIDiO9274AOæøå+Yj790BwJA4d2y7lNkmHt4nJwIsoueFvUYmm7RDyzER8IA3XOCrjzl3OUcczZqcplk5JfBdhxMZpt1aGYWUdle1IgO/kAFne6sLD6IuxPySEb -------------------------------------------------------------------------------- /fs/config/testdata/enc-short.conf: -------------------------------------------------------------------------------- 1 | # Encrypted rclone configuration File 2 | 3 | RCLONE_ENCRYPT_V0: 4 | b5Uk6mE3cUn5Wb8xi -------------------------------------------------------------------------------- /fs/config/testdata/enc-too-new.conf: -------------------------------------------------------------------------------- 1 | # Encrypted rclone configuration File 2 | 3 | RCLONE_ENCRYPT_V1: 4 | b5Uk6mE3cUn5Wb8xiWYnVBAxXUirAaEG1PO/GIDiO9274AO+Yj790BwJA4d2y7lNkmHt4nJwIsoueFvUYmm7RDyzER8IA3XOCrjzl3OUcczZqcplk5JfBdhxMZpt1aGYWUdle1IgO/kAFne6sLD6IuxPySEb -------------------------------------------------------------------------------- /fs/config/testdata/encrypted.conf: -------------------------------------------------------------------------------- 1 | # Encrypted rclone configuration File 2 | 3 | RCLONE_ENCRYPT_V0: 4 | b5Uk6mE3cUn5Wb8xiWYnVBAxXUirAaEG1PO/GIDiO9274AO+Yj790BwJA4d2y7lNkmHt4nJwIsoueFvUYmm7RDyzER8IA3XOCrjzl3OUcczZqcplk5JfBdhxMZpt1aGYWUdle1IgO/kAFne6sLD6IuxPySEb -------------------------------------------------------------------------------- /fs/config/testdata/plain.conf: -------------------------------------------------------------------------------- 1 | [RCLONE_ENCRYPT_V0] 2 | type = local 3 | nounc = true 4 | 5 | [nounc] 6 | type = local 7 | nounc = true 8 | 9 | 10 | [unc] 11 | type = local 12 | nounc = false 13 | -------------------------------------------------------------------------------- /fs/cutoffmode.go: -------------------------------------------------------------------------------- 1 | package fs 2 | 3 | type cutoffModeChoices struct{} 4 | 5 | func (cutoffModeChoices) Choices() []string { 6 | return []string{ 7 | CutoffModeHard: "HARD", 8 | CutoffModeSoft: "SOFT", 9 | CutoffModeCautious: "CAUTIOUS", 10 | } 11 | } 12 | 13 | // CutoffMode describes the possible delete modes in the config 14 | type CutoffMode = Enum[cutoffModeChoices] 15 | 16 | // CutoffMode constants 17 | const ( 18 | CutoffModeHard CutoffMode = iota 19 | CutoffModeSoft 20 | CutoffModeCautious 21 | CutoffModeDefault = CutoffModeHard 22 | ) 23 | -------------------------------------------------------------------------------- /fs/daemon_other.go: -------------------------------------------------------------------------------- 1 | // Daemonization stub for non-Unix platforms (common definitions) 2 | 3 | //go:build windows || plan9 || js 4 | // +build windows plan9 js 5 | 6 | package fs 7 | 8 | // IsDaemon returns true if this process runs in background 9 | func IsDaemon() bool { 10 | return false 11 | } 12 | -------------------------------------------------------------------------------- /fs/deletemode.go: -------------------------------------------------------------------------------- 1 | package fs 2 | 3 | // DeleteMode describes the possible delete modes in the config 4 | type DeleteMode byte 5 | 6 | // DeleteMode constants 7 | const ( 8 | DeleteModeOff DeleteMode = iota 9 | DeleteModeBefore 10 | DeleteModeDuring 11 | DeleteModeAfter 12 | DeleteModeOnly 13 | DeleteModeDefault = DeleteModeAfter 14 | ) 15 | -------------------------------------------------------------------------------- /fs/driveletter/driveletter.go: -------------------------------------------------------------------------------- 1 | //go:build !windows 2 | // +build !windows 3 | 4 | // Package driveletter returns whether a name is a valid drive letter 5 | package driveletter 6 | 7 | // IsDriveLetter returns a bool indicating whether name is a valid 8 | // Windows drive letter 9 | // 10 | // On non windows platforms we don't have drive letters so we always 11 | // return false 12 | func IsDriveLetter(name string) bool { 13 | return false 14 | } 15 | -------------------------------------------------------------------------------- /fs/driveletter/driveletter_windows.go: -------------------------------------------------------------------------------- 1 | //go:build windows 2 | // +build windows 3 | 4 | // Package driveletter returns whether a name is a valid drive letter 5 | package driveletter 6 | 7 | // IsDriveLetter returns a bool indicating whether name is a valid 8 | // Windows drive letter 9 | func IsDriveLetter(name string) bool { 10 | if len(name) != 1 { 11 | return false 12 | } 13 | c := name[0] 14 | return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') 15 | } 16 | -------------------------------------------------------------------------------- /fs/fserrors/enospc_error.go: -------------------------------------------------------------------------------- 1 | //go:build !plan9 2 | // +build !plan9 3 | 4 | package fserrors 5 | 6 | import ( 7 | "syscall" 8 | 9 | liberrors "github.com/rclone/rclone/lib/errors" 10 | ) 11 | 12 | // IsErrNoSpace checks a possibly wrapped error to 13 | // see if it contains a ENOSPC error 14 | func IsErrNoSpace(cause error) (isNoSpc bool) { 15 | liberrors.Walk(cause, func(c error) bool { 16 | if c == syscall.ENOSPC { 17 | isNoSpc = true 18 | return true 19 | } 20 | isNoSpc = false 21 | return false 22 | }) 23 | return 24 | } 25 | -------------------------------------------------------------------------------- /fs/fserrors/enospc_error_notsupported.go: -------------------------------------------------------------------------------- 1 | //go:build plan9 2 | // +build plan9 3 | 4 | package fserrors 5 | 6 | // IsErrNoSpace() on plan9 returns false because 7 | // plan9 does not support syscall.ENOSPC error. 8 | func IsErrNoSpace(cause error) (isNoSpc bool) { 9 | isNoSpc = false 10 | return 11 | } 12 | -------------------------------------------------------------------------------- /fs/fserrors/retriable_errors.go: -------------------------------------------------------------------------------- 1 | //go:build !plan9 2 | // +build !plan9 3 | 4 | package fserrors 5 | 6 | import ( 7 | "syscall" 8 | ) 9 | 10 | func init() { 11 | retriableErrors = append(retriableErrors, 12 | syscall.EPIPE, 13 | syscall.ETIMEDOUT, 14 | syscall.ECONNREFUSED, 15 | syscall.EHOSTDOWN, 16 | syscall.EHOSTUNREACH, 17 | syscall.ECONNABORTED, 18 | syscall.EAGAIN, 19 | syscall.EWOULDBLOCK, 20 | syscall.ECONNRESET, 21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /fs/log/redirect_stderr.go: -------------------------------------------------------------------------------- 1 | // Log the panic to the log file - for oses which can't do this 2 | 3 | //go:build !windows && !darwin && !dragonfly && !freebsd && !linux && !nacl && !netbsd && !openbsd 4 | // +build !windows,!darwin,!dragonfly,!freebsd,!linux,!nacl,!netbsd,!openbsd 5 | 6 | package log 7 | 8 | import ( 9 | "os" 10 | 11 | "github.com/rclone/rclone/fs" 12 | ) 13 | 14 | // redirectStderr to the file passed in 15 | func redirectStderr(f *os.File) { 16 | fs.Errorf(nil, "Can't redirect stderr to file") 17 | } 18 | -------------------------------------------------------------------------------- /fs/log/syslog.go: -------------------------------------------------------------------------------- 1 | // Syslog interface for non-Unix variants only 2 | 3 | //go:build windows || nacl || plan9 4 | // +build windows nacl plan9 5 | 6 | package log 7 | 8 | import ( 9 | "log" 10 | "runtime" 11 | ) 12 | 13 | // Starts syslog if configured, returns true if it was started 14 | func startSysLog() bool { 15 | log.Fatalf("--syslog not supported on %s platform", runtime.GOOS) 16 | return false 17 | } 18 | -------------------------------------------------------------------------------- /fs/log/systemd.go: -------------------------------------------------------------------------------- 1 | // Systemd interface for non-Unix variants only 2 | 3 | //go:build windows || nacl || plan9 4 | // +build windows nacl plan9 5 | 6 | package log 7 | 8 | import ( 9 | "log" 10 | "runtime" 11 | ) 12 | 13 | // Enables systemd logs if configured or if auto detected 14 | func startSystemdLog() bool { 15 | log.Fatalf("--log-systemd not supported on %s platform", runtime.GOOS) 16 | return false 17 | } 18 | -------------------------------------------------------------------------------- /fs/override_dir_test.go: -------------------------------------------------------------------------------- 1 | package fs 2 | 3 | // Check interfaces satisfied 4 | var _ Directory = (*OverrideDirectory)(nil) 5 | -------------------------------------------------------------------------------- /fs/override_test.go: -------------------------------------------------------------------------------- 1 | package fs 2 | 3 | // Check all optional interfaces satisfied 4 | var _ FullObjectInfo = (*OverrideRemote)(nil) 5 | -------------------------------------------------------------------------------- /fs/rc/js/.gitignore: -------------------------------------------------------------------------------- 1 | *.wasm 2 | -------------------------------------------------------------------------------- /fs/rc/js/Makefile: -------------------------------------------------------------------------------- 1 | build: 2 | GOARCH=wasm GOOS=js go build -o rclone.wasm 3 | 4 | serve: build 5 | go run serve.go 6 | -------------------------------------------------------------------------------- /fs/rc/js/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Rclone 6 | 7 | 8 | 9 |

Welcome to rclone - check the console

10 | 11 | 12 | -------------------------------------------------------------------------------- /fs/rc/js/serve.go: -------------------------------------------------------------------------------- 1 | //go:build none 2 | // +build none 3 | 4 | package main 5 | 6 | import ( 7 | "fmt" 8 | "log" 9 | "mime" 10 | "net/http" 11 | ) 12 | 13 | func main() { 14 | mime.AddExtensionType(".wasm", "application/wasm") 15 | mime.AddExtensionType(".js", "application/javascript") 16 | mux := http.NewServeMux() 17 | mux.Handle("/", http.FileServer(http.Dir("."))) 18 | fmt.Printf("Serving on http://localhost:3000/\n") 19 | log.Fatal(http.ListenAndServe(":3000", mux)) 20 | } 21 | -------------------------------------------------------------------------------- /fs/rc/rc_test.go: -------------------------------------------------------------------------------- 1 | package rc 2 | 3 | import ( 4 | "bytes" 5 | "testing" 6 | 7 | "github.com/stretchr/testify/assert" 8 | "github.com/stretchr/testify/require" 9 | ) 10 | 11 | func TestWriteJSON(t *testing.T) { 12 | var buf bytes.Buffer 13 | err := WriteJSON(&buf, Params{ 14 | "String": "hello", 15 | "Int": 42, 16 | }) 17 | require.NoError(t, err) 18 | assert.Equal(t, `{ 19 | "Int": 42, 20 | "String": "hello" 21 | } 22 | `, buf.String()) 23 | } 24 | -------------------------------------------------------------------------------- /fs/rc/rcserver/testdata/files/dir/file2.txt: -------------------------------------------------------------------------------- 1 | this is dir/file2.txt 2 | -------------------------------------------------------------------------------- /fs/rc/rcserver/testdata/files/file.txt: -------------------------------------------------------------------------------- 1 | this is file1.txt 2 | -------------------------------------------------------------------------------- /fs/rc/rcserver/testdata/golden/testindex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ .Title }} 6 | 7 | 8 |

{{ .Title }}

9 | {{ range $i := .Entries }}{{ $i.Leaf }}
10 | {{ end }} 11 | 12 | -------------------------------------------------------------------------------- /fs/version.go: -------------------------------------------------------------------------------- 1 | package fs 2 | 3 | // Version of rclone containing the complete version string 4 | var Version string 5 | 6 | func init() { 7 | if Version == "" { 8 | if VersionSuffix == "" { 9 | Version = VersionTag 10 | } else { 11 | Version = VersionTag + "-" + VersionSuffix 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /fs/versioncheck.go: -------------------------------------------------------------------------------- 1 | //go:build !go1.19 2 | // +build !go1.19 3 | 4 | package fs 5 | 6 | // Upgrade to Go version 1.19 to compile rclone - latest stable go 7 | // compiler recommended. 8 | func init() { Go_version_1_19_required_for_compilation() } 9 | -------------------------------------------------------------------------------- /fs/versionsuffix.go: -------------------------------------------------------------------------------- 1 | package fs 2 | 3 | // VersionSuffix of rclone containing the pre-release label if any 4 | var VersionSuffix = "DEV" 5 | -------------------------------------------------------------------------------- /fs/versiontag.go: -------------------------------------------------------------------------------- 1 | package fs 2 | 3 | // VersionTag of rclone 4 | var VersionTag = "v1.66.0" 5 | -------------------------------------------------------------------------------- /fstest/mockdir/dir.go: -------------------------------------------------------------------------------- 1 | // Package mockdir makes a mock fs.Directory object 2 | package mockdir 3 | 4 | import ( 5 | "time" 6 | 7 | "github.com/rclone/rclone/fs" 8 | ) 9 | 10 | // New makes a mock directory object with the name given 11 | func New(name string) fs.Directory { 12 | return fs.NewDir(name, time.Time{}) 13 | } 14 | -------------------------------------------------------------------------------- /fstest/testserver/images/test-hdfs/httpfs-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /fstest/testserver/images/test-hdfs/kdc.conf: -------------------------------------------------------------------------------- 1 | [realms] 2 | KERBEROS.RCLONE = { 3 | acl_file = /etc/krb5kdc/kadm5.acl 4 | } 5 | -------------------------------------------------------------------------------- /fstest/testserver/images/test-hdfs/kms-site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /fstest/testserver/images/test-hdfs/krb5.conf: -------------------------------------------------------------------------------- 1 | [libdefaults] 2 | default_realm = KERBEROS.RCLONE 3 | dns_lookup_realm = false 4 | dns_lookup_kdc = false 5 | forwardable = true 6 | proxiable = true 7 | [realms] 8 | KERBEROS.RCLONE = { 9 | kdc = localhost 10 | } 11 | -------------------------------------------------------------------------------- /fstest/testserver/images/test-hdfs/mapred-site.xml: -------------------------------------------------------------------------------- 1 | 2 | mapreduce.framework.nameyarn 3 | yarn.nodemanager.bind-host0.0.0.0 4 | 5 | 6 | -------------------------------------------------------------------------------- /fstest/testserver/images/test-sftp-openssh/Dockerfile: -------------------------------------------------------------------------------- 1 | # A very minimal sftp server for integration testing rclone 2 | FROM alpine:latest 3 | 4 | # User rclone, password password 5 | RUN \ 6 | apk add openssh && \ 7 | ssh-keygen -A && \ 8 | adduser -D rclone && \ 9 | echo "rclone:password" | chpasswd 10 | 11 | ENTRYPOINT [ "/usr/sbin/sshd", "-D" ] 12 | -------------------------------------------------------------------------------- /fstest/testserver/images/test-sftp-openssh/README.md: -------------------------------------------------------------------------------- 1 | # Test SFTP Openssh 2 | 3 | This is a docker image for rclone's integration tests which runs an 4 | openssh server in a docker image. 5 | 6 | ## Build 7 | 8 | ``` 9 | docker build --rm -t rclone/test-sftp-openssh . 10 | docker push rclone/test-sftp-openssh 11 | ``` 12 | 13 | # Test 14 | 15 | ``` 16 | rclone lsf -R --sftp-host 172.17.0.2 --sftp-user rclone --sftp-pass $(rclone obscure password) :sftp: 17 | ``` 18 | -------------------------------------------------------------------------------- /fstest/testserver/init.d/TestFTPRclone: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | NAME=rclone-serve-ftp 6 | USER=rclone 7 | PASS=FuddleIdlingJell5 8 | IP=127.0.0.1 9 | PORT=28622 10 | 11 | start() { 12 | run rclone serve ftp --user $USER --pass $PASS --addr ${IP}:${PORT} ${DATADIR} 13 | 14 | echo type=ftp 15 | echo host=${IP} 16 | echo port=$PORT 17 | echo user=$USER 18 | echo pass=$(rclone obscure $PASS) 19 | echo _connect=${IP}:${PORT} 20 | } 21 | 22 | . $(dirname "$0")/rclone-serve.bash 23 | -------------------------------------------------------------------------------- /fstest/testserver/init.d/TestSFTPOpenssh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | NAME=rclone-sftp-openssh 6 | USER=rclone 7 | PASS=password 8 | 9 | . $(dirname "$0")/docker.bash 10 | 11 | start() { 12 | docker run --rm -d --name ${NAME} \ 13 | rclone/test-sftp-openssh 14 | 15 | echo type=sftp 16 | echo host=$(docker_ip) 17 | echo user=$USER 18 | echo pass=$(rclone obscure $PASS) 19 | echo copy_is_hardlink=true 20 | echo _connect=$(docker_ip):22 21 | } 22 | 23 | . $(dirname "$0")/run.bash 24 | -------------------------------------------------------------------------------- /fstest/testserver/init.d/TestSFTPRclone: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | NAME=rclone-serve-sftp 6 | USER=rclone 7 | PASS=CranesBallotDorsey5 8 | IP=127.0.0.1 9 | PORT=28621 10 | 11 | start() { 12 | run rclone serve sftp --user $USER --pass $PASS --addr ${IP}:${PORT} ${DATADIR} 13 | 14 | echo type=sftp 15 | echo host=${IP} 16 | echo port=$PORT 17 | echo user=$USER 18 | echo pass=$(rclone obscure $PASS) 19 | echo _connect=${IP}:${PORT} 20 | } 21 | 22 | . $(dirname "$0")/rclone-serve.bash 23 | -------------------------------------------------------------------------------- /fstest/testserver/init.d/TestSwiftAIO: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | NAME=swift-aio 6 | 7 | . $(dirname "$0")/docker.bash 8 | 9 | start() { 10 | docker run --rm -d --name ${NAME} \ 11 | bouncestorage/swift-aio 12 | 13 | echo type=swift 14 | echo env_auth=false 15 | echo user=test:tester 16 | echo key=testing 17 | echo auth=http://$(docker_ip):8080/auth/v1.0 18 | echo _connect=$(docker_ip):8080 19 | } 20 | 21 | . $(dirname "$0")/run.bash 22 | -------------------------------------------------------------------------------- /fstest/testserver/init.d/TestWebdavRclone: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | NAME=rclone-serve-webdav 6 | USER=rclone 7 | PASS=PagansSwimExpiry9 8 | IP=127.0.0.1 9 | PORT=28620 10 | 11 | start() { 12 | run rclone serve webdav --user $USER --pass $PASS --addr ${IP}:${PORT} ${DATADIR} 13 | 14 | echo type=webdav 15 | echo vendor=rclone 16 | echo url=http://${IP}:${PORT}/ 17 | echo user=$USER 18 | echo pass=$(rclone obscure $PASS) 19 | echo _connect=${IP}:$PORT 20 | } 21 | 22 | . $(dirname "$0")/rclone-serve.bash 23 | -------------------------------------------------------------------------------- /fstest/testserver/init.d/docker.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | stop() { 4 | if status ; then 5 | docker stop "$NAME" 6 | echo "$NAME stopped" 7 | fi 8 | } 9 | 10 | status() { 11 | if docker ps --format '{{.Names}}' | grep -q "^${NAME}$" ; then 12 | echo "$NAME running" 13 | else 14 | echo "$NAME not running" 15 | return 1 16 | fi 17 | return 0 18 | } 19 | 20 | docker_ip() { 21 | docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{"\n"}}{{end}}' "$NAME" | head -1 22 | } 23 | -------------------------------------------------------------------------------- /fstest/testserver/init.d/run.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | case "$1" in 4 | start) 5 | start 6 | ;; 7 | stop) 8 | stop 9 | ;; 10 | status) 11 | status 12 | ;; 13 | *) 14 | echo "usage: $0 start|stop|status" >&2 15 | exit 1 16 | ;; 17 | esac 18 | -------------------------------------------------------------------------------- /fstest/testy/testy.go: -------------------------------------------------------------------------------- 1 | // Package testy contains test utilities for rclone 2 | package testy 3 | 4 | import ( 5 | "os" 6 | "testing" 7 | ) 8 | 9 | // SkipUnreliable skips this test if running on CI 10 | func SkipUnreliable(t *testing.T) { 11 | if os.Getenv("CI") == "" { 12 | return 13 | } 14 | t.Skip("Skipping Unreliable Test on CI") 15 | } 16 | -------------------------------------------------------------------------------- /graphics/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/cover.jpg -------------------------------------------------------------------------------- /graphics/logo/README.md: -------------------------------------------------------------------------------- 1 | This directory contains rclone logos in various different formats. 2 | 3 | The logo was designed by Andreas Chlupka 4 | 5 | [@andy23](https://twitter.com/andy23) 6 | -------------------------------------------------------------------------------- /graphics/logo/favicon/favicon_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/favicon/favicon_16px.png -------------------------------------------------------------------------------- /graphics/logo/favicon/favicon_32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/favicon/favicon_32px.png -------------------------------------------------------------------------------- /graphics/logo/ico/logo_symbol_color.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/ico/logo_symbol_color.ico -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_32px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_color_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_32px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__horizontal_mono_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_color_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_color_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_color_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_color_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_color_512px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_color_512px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_color_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_color_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_512px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_512px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_on_dark__vertical_mono_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_512px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_512px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_dark/logo_symbol_on_dark_mono_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_color_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_color_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_color_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_color_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_color_32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_color_32px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_color_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_color_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_mono_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_mono_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_mono_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_mono_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_mono_32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_mono_32px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__horizontal_mono_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__horizontal_mono_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_color_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_color_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_color_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_color_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_color_512px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_color_512px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_color_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_color_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_mono_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_mono_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_mono_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_mono_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_mono_512px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_mono_512px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_on_light__vertical_mono_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_on_light__vertical_mono_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_symbol_on_light_mono_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_symbol_on_light_mono_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_symbol_on_light_mono_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_symbol_on_light_mono_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_symbol_on_light_mono_512px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_symbol_on_light_mono_512px.png -------------------------------------------------------------------------------- /graphics/logo/logo_on_light/logo_symbol_on_light_mono_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_on_light/logo_symbol_on_light_mono_64px.png -------------------------------------------------------------------------------- /graphics/logo/logo_symbol/logo_symbol_color_128px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_symbol/logo_symbol_color_128px.png -------------------------------------------------------------------------------- /graphics/logo/logo_symbol/logo_symbol_color_16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_symbol/logo_symbol_color_16px.png -------------------------------------------------------------------------------- /graphics/logo/logo_symbol/logo_symbol_color_256px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_symbol/logo_symbol_color_256px.png -------------------------------------------------------------------------------- /graphics/logo/logo_symbol/logo_symbol_color_512px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_symbol/logo_symbol_color_512px.png -------------------------------------------------------------------------------- /graphics/logo/logo_symbol/logo_symbol_color_600px_spaced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_symbol/logo_symbol_color_600px_spaced.png -------------------------------------------------------------------------------- /graphics/logo/logo_symbol/logo_symbol_color_600px_spaced.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_symbol/logo_symbol_color_600px_spaced.xcf -------------------------------------------------------------------------------- /graphics/logo/logo_symbol/logo_symbol_color_64px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gaoyb7/rclone/85bdeb55219cd737dab9099029aa9dae84179678/graphics/logo/logo_symbol/logo_symbol_color_64px.png -------------------------------------------------------------------------------- /lib/atexit/atexit_other.go: -------------------------------------------------------------------------------- 1 | //go:build windows || plan9 2 | // +build windows plan9 3 | 4 | package atexit 5 | 6 | import ( 7 | "os" 8 | 9 | "github.com/rclone/rclone/lib/exitcode" 10 | ) 11 | 12 | var exitSignals = []os.Signal{os.Interrupt} 13 | 14 | func exitCode(_ os.Signal) int { 15 | return exitcode.UncategorizedError 16 | } 17 | -------------------------------------------------------------------------------- /lib/buildinfo/cgo.go: -------------------------------------------------------------------------------- 1 | //go:build cgo 2 | // +build cgo 3 | 4 | package buildinfo 5 | 6 | func init() { 7 | Tags = append(Tags, "cgo") 8 | } 9 | -------------------------------------------------------------------------------- /lib/buildinfo/snap.go: -------------------------------------------------------------------------------- 1 | //go:build snap 2 | // +build snap 3 | 4 | package buildinfo 5 | 6 | func init() { 7 | Tags = append(Tags, "snap") 8 | } 9 | -------------------------------------------------------------------------------- /lib/daemonize/daemon_other.go: -------------------------------------------------------------------------------- 1 | //go:build windows || plan9 || js 2 | // +build windows plan9 js 3 | 4 | // Package daemonize provides daemonization stub for non-Unix platforms. 5 | package daemonize 6 | 7 | import ( 8 | "fmt" 9 | "os" 10 | "runtime" 11 | ) 12 | 13 | // StartDaemon runs background twin of current process. 14 | func StartDaemon(args []string) (*os.Process, error) { 15 | return nil, fmt.Errorf("background mode is not supported on %s platform", runtime.GOOS) 16 | } 17 | -------------------------------------------------------------------------------- /lib/diskusage/diskusage_unsupported.go: -------------------------------------------------------------------------------- 1 | //go:build illumos || js || plan9 || solaris 2 | 3 | package diskusage 4 | 5 | // New returns the disk status for dir. 6 | // 7 | // May return Unsupported error if it doesn't work on this platform. 8 | func New(dir string) (info Info, err error) { 9 | return info, ErrUnsupported 10 | } 11 | -------------------------------------------------------------------------------- /lib/diskusage/diskusage_windows.go: -------------------------------------------------------------------------------- 1 | //go:build windows 2 | 3 | package diskusage 4 | 5 | import ( 6 | "golang.org/x/sys/windows" 7 | ) 8 | 9 | // New returns the disk status for dir. 10 | // 11 | // May return Unsupported error if it doesn't work on this platform. 12 | func New(dir string) (info Info, err error) { 13 | dir16 := windows.StringToUTF16Ptr(dir) 14 | err = windows.GetDiskFreeSpaceEx(dir16, &info.Available, &info.Total, &info.Free) 15 | return info, err 16 | } 17 | -------------------------------------------------------------------------------- /lib/encoder/os_darwin.go: -------------------------------------------------------------------------------- 1 | //go:build darwin 2 | // +build darwin 3 | 4 | package encoder 5 | 6 | // OS is the encoding used by the local backend for macOS 7 | // 8 | // macOS can't store invalid UTF-8, it converts them into %XX encoding 9 | const OS = (Base | 10 | EncodeInvalidUtf8) 11 | -------------------------------------------------------------------------------- /lib/encoder/os_other.go: -------------------------------------------------------------------------------- 1 | //go:build !windows && !darwin 2 | // +build !windows,!darwin 3 | 4 | package encoder 5 | 6 | // OS is the encoding used by the local backend for non windows platforms 7 | const OS = Base 8 | -------------------------------------------------------------------------------- /lib/file/driveletter_other.go: -------------------------------------------------------------------------------- 1 | //go:build !windows 2 | // +build !windows 3 | 4 | package file 5 | 6 | // FindUnusedDriveLetter does nothing except on Windows. 7 | func FindUnusedDriveLetter() (driveLetter uint8) { 8 | return 0 9 | } 10 | -------------------------------------------------------------------------------- /lib/file/mkdir_other.go: -------------------------------------------------------------------------------- 1 | //go:build !windows 2 | // +build !windows 3 | 4 | package file 5 | 6 | import "os" 7 | 8 | // MkdirAll just calls os.MkdirAll on non-Windows. 9 | func MkdirAll(path string, perm os.FileMode) error { 10 | return os.MkdirAll(path, perm) 11 | } 12 | -------------------------------------------------------------------------------- /lib/file/preallocate.go: -------------------------------------------------------------------------------- 1 | package file 2 | 3 | import "errors" 4 | 5 | // ErrDiskFull is returned from PreAllocate when it detects disk full 6 | var ErrDiskFull = errors.New("preallocate: file too big for remaining disk space") 7 | -------------------------------------------------------------------------------- /lib/file/unc.go: -------------------------------------------------------------------------------- 1 | //go:build !windows 2 | // +build !windows 3 | 4 | package file 5 | 6 | // UNCPath converts an absolute Windows path to a UNC long path. 7 | // 8 | // It does nothing on non windows platforms 9 | func UNCPath(l string) string { 10 | return l 11 | } 12 | -------------------------------------------------------------------------------- /lib/http/auth_test.go: -------------------------------------------------------------------------------- 1 | package http 2 | 3 | import ( 4 | "strings" 5 | "testing" 6 | ) 7 | 8 | func TestHelpPrefixAuth(t *testing.T) { 9 | // This test assumes template variables are placed correctly. 10 | const testPrefix = "server-help-test" 11 | helpMessage := AuthHelp(testPrefix) 12 | if !strings.Contains(helpMessage, testPrefix) { 13 | t.Fatal("flag prefix not found") 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/http/template_test.go: -------------------------------------------------------------------------------- 1 | package http 2 | 3 | import ( 4 | "strings" 5 | "testing" 6 | ) 7 | 8 | func TestHelpPrefixTemplate(t *testing.T) { 9 | // This test assumes template variables are placed correctly. 10 | const testPrefix = "template-help-test" 11 | helpMessage := TemplateHelp(testPrefix) 12 | if !strings.Contains(helpMessage, testPrefix) { 13 | t.Fatal("flag prefix not found") 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/http/testdata/.htpasswd: -------------------------------------------------------------------------------- 1 | sha:{SHA}2PRZAyDhNDqRW2OUFwZQqPNdaSY= 2 | md5:$apr1$s7fogein$IK9ItbnGM14ct0bY4Uyik1 3 | bcrypt:$2y$10$K/b3mVXUA6X857TOTYIL9.Lbaeg9oBjMQwUX5NefpVUCcYP0Z5KY2 -------------------------------------------------------------------------------- /lib/http/testdata/client-ca.srl: -------------------------------------------------------------------------------- 1 | 607C74360F5500750AA949B367AC937975C32987 2 | -------------------------------------------------------------------------------- /lib/israce/israce.go: -------------------------------------------------------------------------------- 1 | //go:build race 2 | // +build race 3 | 4 | // Package israce reports if the Go race detector is enabled. 5 | // 6 | // From https://stackoverflow.com/questions/44944959/how-can-i-check-if-the-race-detector-is-enabled-at-runtime 7 | package israce 8 | 9 | // Enabled reports if the race detector is enabled. 10 | const Enabled = true 11 | -------------------------------------------------------------------------------- /lib/israce/norace.go: -------------------------------------------------------------------------------- 1 | //go:build !race 2 | // +build !race 3 | 4 | // Package israce reports if the Go race detector is enabled. 5 | // 6 | // From https://stackoverflow.com/questions/44944959/how-can-i-check-if-the-race-detector-is-enabled-at-runtime 7 | package israce 8 | 9 | // Enabled reports if the race detector is enabled. 10 | const Enabled = false 11 | -------------------------------------------------------------------------------- /lib/pacer/tokens_test.go: -------------------------------------------------------------------------------- 1 | package pacer 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/stretchr/testify/assert" 7 | ) 8 | 9 | func TestTokenDispenser(t *testing.T) { 10 | td := NewTokenDispenser(5) 11 | assert.Equal(t, 5, len(td.tokens)) 12 | td.Get() 13 | assert.Equal(t, 4, len(td.tokens)) 14 | td.Put() 15 | assert.Equal(t, 5, len(td.tokens)) 16 | } 17 | -------------------------------------------------------------------------------- /lib/readers/error.go: -------------------------------------------------------------------------------- 1 | package readers 2 | 3 | // ErrorReader wraps an error to return on Read 4 | type ErrorReader struct { 5 | Err error 6 | } 7 | 8 | // Read always returns the error 9 | func (er ErrorReader) Read(p []byte) (n int, err error) { 10 | return 0, er.Err 11 | } 12 | -------------------------------------------------------------------------------- /lib/readers/error_test.go: -------------------------------------------------------------------------------- 1 | package readers 2 | 3 | import ( 4 | "errors" 5 | "testing" 6 | 7 | "github.com/stretchr/testify/assert" 8 | ) 9 | 10 | func TestErrorReader(t *testing.T) { 11 | errRead := errors.New("boom") 12 | r := ErrorReader{errRead} 13 | 14 | buf := make([]byte, 16) 15 | n, err := r.Read(buf) 16 | assert.Equal(t, errRead, err) 17 | assert.Equal(t, 0, n) 18 | } 19 | -------------------------------------------------------------------------------- /lib/readers/noseeker.go: -------------------------------------------------------------------------------- 1 | package readers 2 | 3 | import ( 4 | "errors" 5 | "io" 6 | ) 7 | 8 | var ( 9 | errCantSeek = errors.New("can't Seek") 10 | ) 11 | 12 | // NoSeeker adapts an io.Reader into an io.ReadSeeker. 13 | // 14 | // However if Seek() is called it will return an error. 15 | type NoSeeker struct { 16 | io.Reader 17 | } 18 | 19 | // Seek the stream - returns an error 20 | func (r NoSeeker) Seek(offset int64, whence int) (abs int64, err error) { 21 | return 0, errCantSeek 22 | } 23 | -------------------------------------------------------------------------------- /lib/readers/readfill.go: -------------------------------------------------------------------------------- 1 | package readers 2 | 3 | import "io" 4 | 5 | // ReadFill reads as much data from r into buf as it can 6 | // 7 | // It reads until the buffer is full or r.Read returned an error. 8 | // 9 | // This is io.ReadFull but when you just want as much data as 10 | // possible, not an exact size of block. 11 | func ReadFill(r io.Reader, buf []byte) (n int, err error) { 12 | var nn int 13 | for n < len(buf) && err == nil { 14 | nn, err = r.Read(buf[n:]) 15 | n += nn 16 | } 17 | return n, err 18 | } 19 | -------------------------------------------------------------------------------- /lib/systemd/doc.go: -------------------------------------------------------------------------------- 1 | // Package systemd contains utilities for communication with the systemd service manager. 2 | package systemd 3 | -------------------------------------------------------------------------------- /lib/terminal/hidden_other.go: -------------------------------------------------------------------------------- 1 | //go:build !windows 2 | // +build !windows 3 | 4 | package terminal 5 | 6 | // HideConsole is only supported on windows 7 | func HideConsole() { 8 | } 9 | -------------------------------------------------------------------------------- /librclone/ctest/Makefile: -------------------------------------------------------------------------------- 1 | CFLAGS = -g -Wall 2 | LDFLAGS = -L. -lrclone -lpthread -ldl 3 | 4 | ctest: ctest.o librclone.a 5 | $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) 6 | 7 | ctest.o: ctest.c librclone.h 8 | $(CC) $(CFLAGS) -c $^ $(LDFLAGS) 9 | 10 | librclone.a librclone.h: 11 | go build --buildmode=c-archive -o librclone.a github.com/rclone/rclone/librclone 12 | 13 | test: ctest 14 | ./ctest 15 | 16 | clean: 17 | rm -f tmp ctest *.o *.a *.h *.gch 18 | -------------------------------------------------------------------------------- /rclone.go: -------------------------------------------------------------------------------- 1 | // Sync files and directories to and from local and remote object stores 2 | // 3 | // Nick Craig-Wood 4 | package main 5 | 6 | import ( 7 | _ "github.com/rclone/rclone/backend/all" // import all backends 8 | "github.com/rclone/rclone/cmd" 9 | _ "github.com/rclone/rclone/cmd/all" // import all commands 10 | _ "github.com/rclone/rclone/lib/plugin" // import plugins 11 | ) 12 | 13 | func main() { 14 | cmd.Main() 15 | } 16 | -------------------------------------------------------------------------------- /vfs/errors_test.go: -------------------------------------------------------------------------------- 1 | package vfs 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/stretchr/testify/assert" 7 | ) 8 | 9 | func TestErrorError(t *testing.T) { 10 | assert.Equal(t, "Success", OK.Error()) 11 | assert.Equal(t, "Function not implemented", ENOSYS.Error()) 12 | assert.Equal(t, "Low level error 99", Error(99).Error()) 13 | } 14 | -------------------------------------------------------------------------------- /vfs/vfsflags/vfsflags_non_unix.go: -------------------------------------------------------------------------------- 1 | //go:build !linux && !darwin && !freebsd 2 | // +build !linux,!darwin,!freebsd 3 | 4 | package vfsflags 5 | 6 | import ( 7 | "github.com/spf13/pflag" 8 | ) 9 | 10 | // add any extra platform specific flags 11 | func platformFlags(flags *pflag.FlagSet) { 12 | } 13 | -------------------------------------------------------------------------------- /vfs/vfstest/read_non_unix.go: -------------------------------------------------------------------------------- 1 | //go:build !linux && !darwin && !freebsd 2 | // +build !linux,!darwin,!freebsd 3 | 4 | package vfstest 5 | 6 | import ( 7 | "runtime" 8 | "testing" 9 | ) 10 | 11 | // TestReadFileDoubleClose tests double close on read 12 | func TestReadFileDoubleClose(t *testing.T) { 13 | t.Skip("not supported on " + runtime.GOOS) 14 | } 15 | -------------------------------------------------------------------------------- /vfs/vfstest/vfs.go: -------------------------------------------------------------------------------- 1 | // Package vfstest provides tests for VFS. 2 | package vfstest 3 | 4 | import ( 5 | "os" 6 | 7 | "github.com/rclone/rclone/vfs" 8 | ) 9 | 10 | // vfsOs is an implementation of Oser backed by the "vfs" package 11 | type vfsOs struct { 12 | *vfs.VFS 13 | } 14 | 15 | // Stat 16 | func (v vfsOs) Stat(path string) (os.FileInfo, error) { 17 | return v.VFS.Stat(path) 18 | } 19 | 20 | // Check interfaces 21 | var _ Oser = vfsOs{} 22 | --------------------------------------------------------------------------------