rclone-api 1.5.46__py3-none-any.whl → 1.5.47__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
rclone_api/install.py CHANGED
@@ -79,31 +79,60 @@ def _move_to_standard_linux_paths(exe_path: Path) -> None:
79
79
  return
80
80
 
81
81
  try:
82
- # Create directory in standard path if it doesn't exist
83
- bin_path = Path("/usr/local/bin/rclone")
82
+ # Try system-wide installation first
83
+ system_bin_path = Path("/usr/local/bin/rclone")
84
84
 
85
85
  if os.access("/usr/local/bin", os.W_OK):
86
86
  # Remove existing binary if it exists
87
- if bin_path.exists():
88
- if bin_path.is_symlink():
89
- bin_path.unlink()
87
+ if system_bin_path.exists():
88
+ if system_bin_path.is_symlink():
89
+ system_bin_path.unlink()
90
90
  else:
91
- os.remove(bin_path)
91
+ os.remove(system_bin_path)
92
92
 
93
93
  # Move the binary to standard path
94
- shutil.move(str(exe_path), str(bin_path))
94
+ shutil.move(str(exe_path), str(system_bin_path))
95
95
 
96
96
  # Make it executable
97
- os.chmod(bin_path, 0o755)
97
+ os.chmod(system_bin_path, 0o755)
98
98
 
99
99
  # Create a symlink in the original location
100
- exe_path.symlink_to(bin_path)
100
+ exe_path.symlink_to(system_bin_path)
101
101
 
102
- logger.info(f"Moved rclone to {bin_path} and created symlink at {exe_path}")
102
+ logger.info(
103
+ f"Moved rclone to {system_bin_path} and created symlink at {exe_path}"
104
+ )
103
105
  else:
104
- logger.warning(
105
- "No write permission to /usr/local/bin, skipping move operation"
106
+ # Fall back to user's home directory if no root access
107
+ home_bin_dir = Path.home() / ".local" / "bin"
108
+ home_bin_dir.mkdir(parents=True, exist_ok=True)
109
+ home_bin_path = home_bin_dir / "rclone"
110
+
111
+ # Remove existing binary if it exists
112
+ if home_bin_path.exists():
113
+ if home_bin_path.is_symlink():
114
+ home_bin_path.unlink()
115
+ else:
116
+ os.remove(home_bin_path)
117
+
118
+ # Move the binary to user's bin directory
119
+ shutil.move(str(exe_path), str(home_bin_path))
120
+
121
+ # Make it executable
122
+ os.chmod(home_bin_path, 0o755)
123
+
124
+ # Create a symlink in the original location
125
+ exe_path.symlink_to(home_bin_path)
126
+
127
+ logger.info(
128
+ f"Moved rclone to {home_bin_path} and created symlink at {exe_path}"
106
129
  )
130
+
131
+ # Check if ~/.local/bin is in PATH, if not suggest adding it
132
+ if str(home_bin_dir) not in os.environ.get("PATH", ""):
133
+ logger.warning(
134
+ f"{home_bin_dir} is not in PATH. Consider adding it to your shell profile."
135
+ )
107
136
  except Exception as e:
108
137
  logger.warning(f"Failed to move rclone to standard paths: {e}")
109
138
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rclone_api
3
- Version: 1.5.46
3
+ Version: 1.5.47
4
4
  Summary: rclone api in python
5
5
  Home-page: https://github.com/zackees/rclone-api
6
6
  License: BSD 3-Clause License
@@ -16,7 +16,7 @@ rclone_api/filelist.py,sha256=xbiusvNgaB_b_kQOZoHMJJxn6TWGtPrWd2J042BI28o,767
16
16
  rclone_api/fs.py,sha256=xUkoSV2R9dByKgueZ3x2GjyCn9fM7tK1ydgK1Whiph0,8933
17
17
  rclone_api/group_files.py,sha256=H92xPW9lQnbNw5KbtZCl00bD6iRh9yRbCuxku4j_3dg,8036
18
18
  rclone_api/http_server.py,sha256=P-LT2GqCEM9tGbyzzr-CrSOc3FyCw1qXUSQ5bY2KBHU,12113
19
- rclone_api/install.py,sha256=db7l5KoVBr84HbFxih1Sd82tUfzhOuczKfBLb_Dn3XU,4507
19
+ rclone_api/install.py,sha256=ZDG8QNj1JciS_DSqYnMTECwhJksUPAoqZQxtX804TDk,5679
20
20
  rclone_api/log.py,sha256=VZHM7pNSXip2ZLBKMP7M1u-rp_F7zoafFDuR8CPUoKI,1271
21
21
  rclone_api/mount.py,sha256=LZqEhuKZunbWVqmsOIqkkCotaxWJpdFRS1InXveoU5E,1428
22
22
  rclone_api/mount_util.py,sha256=jqhJEVTHV6c6lOOzUYb4FLMbqDMHdz7-QRcdH-IobFc,10154
@@ -55,9 +55,9 @@ rclone_api/s3/multipart/upload_parts_inline.py,sha256=V7syKjFyVIe4U9Ahl5XgqVTzt9
55
55
  rclone_api/s3/multipart/upload_parts_resumable.py,sha256=6-nlMclS8jyVvMvFbQDcZOX9MY1WbCcKA_s9bwuYxnk,9793
56
56
  rclone_api/s3/multipart/upload_parts_server_side_merge.py,sha256=Fp2pdrs5dONQI9LkfNolgAGj1-Z2V1SsRd0r0sreuXI,18040
57
57
  rclone_api/s3/multipart/upload_state.py,sha256=f-Aq2NqtAaMUMhYitlICSNIxCKurWAl2gDEUVizLIqw,6019
58
- rclone_api-1.5.46.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
59
- rclone_api-1.5.46.dist-info/METADATA,sha256=KqRtpIh195KJQ-8gY8HYZLcY4Qm1KUFVXC5XCw_av8o,37305
60
- rclone_api-1.5.46.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
61
- rclone_api-1.5.46.dist-info/entry_points.txt,sha256=ognh2e11HTjn73_KL5MWI67pBKS2jekBi-QTiRXySXA,316
62
- rclone_api-1.5.46.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
63
- rclone_api-1.5.46.dist-info/RECORD,,
58
+ rclone_api-1.5.47.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
59
+ rclone_api-1.5.47.dist-info/METADATA,sha256=UZGLiUY8lZA3ToCEOlD_oo1YtUONlTkAt16OMk9Dzv8,37305
60
+ rclone_api-1.5.47.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
61
+ rclone_api-1.5.47.dist-info/entry_points.txt,sha256=ognh2e11HTjn73_KL5MWI67pBKS2jekBi-QTiRXySXA,316
62
+ rclone_api-1.5.47.dist-info/top_level.txt,sha256=EvZ7uuruUpe9RiUyEp25d1Keq7PWYNT0O_-mr8FCG5g,11
63
+ rclone_api-1.5.47.dist-info/RECORD,,