Review of "rclone-manager" version 18

Details Page Preview

Is like Dropbox sync client but for more than 30 services, adds an indicator to the top panel so you can manage the rclone profiles configured in your system, perform operations such as mount as remote, watch for file modifications, sync with remote storage, navigate it's main folder. Also, it shows the status of each profile so you can supervise the operations, and provides an easy access log of events. Backup and restore the rclone configuration file, so you won't have to configure all your devices one by one

Extension Homepage
https://github.com/germanztz/gnome-shell-extension-rclone-manager

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 5

Shexli found 5 issues that may need reviewer attention.

EGO-X-002 warning

extensions should not use synchronous subprocess APIs in shell code

Shell code should avoid synchronous subprocess APIs like `GLib.spawn_command_line_sync()` and `GLib.spawn_sync()`.

Complete Examples

  • fileMonitorHelper.js:660
    GLib.spawn_sync(
          // Working directory, passing %null to use the parent's
          null,
          // An array of arguments
          argv,
          // Process ENV, passing %null to use the parent's
          null,
          // Flags; we need to use PATH so `ls` can be found and also need to know
          // when the p

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:78
    this._notifSource.connect('destroy', () => { this._notifSource = null })
  • extension.js:85
    this._settings.connect('changed', this._onSettingsChange.bind(this))
  • extension.js:471
            notification.connect('activated', () => {
              ConfirmDialog.openConfirmDialog(title, '', details, _('Ok'))
            })

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • extension.js:124
              this._sourceId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, this.PREF_CHECK_INTERVAL * 60, () => {
                this.fmh.PREF_DBG && log(`rcm._resetCheckInterval running`)
                Object.entries(that._registry)
                  .filter(p => p[1].syncType === ProfileStatus.WATCHED)
       

EGO-C45-001 warning

45+ preferences should use fillPreferencesWindow instead of getPreferencesWidget

45+ preferences code should use `fillPreferencesWindow()` instead of `getPreferencesWidget()`.

Preferences

  • prefs.js:12
        getPreferencesWidget() {
            return new RcloneManagerWidget(this);
        }

All Versions

Version Status
18 Active
17 Active
16 Active
15 Active
14 Inactive
13 Active
12 Rejected
11 Rejected
10 Active
9 Active
8 Active
7 Active
6 Rejected
5 Active
4 Active
3 Active
2 Rejected
1 Active

Previous Reviews on this Version

JustPerfection active
JustPerfection posted a review
Please also fix the issues mentioned in the Shexli.