Repository: dcs4cop/xcube
Issue: xcube rectify does not accept omitting --var parameter

**Describe the bug**
The xcube CLI command `xcube rectify` states in the help section, that when omitting the `--var` parameter, all variables are selected an rectified. 


**To Reproduce**
Steps to reproduce the behavior:
1. use `xcube rectify` without passing the `--var` parameter
2. See error

```
Rectifying...
Internal error: empty var_names
Traceback (most recent call last):
  File "/home/alicja/Desktop/projects/xcube/xcube/cli/main.py", line 52, in main
    exit_code = cli.main(args=args, obj=ctx_obj, standalone_mode=False)
  File "/home/alicja/miniconda3/envs/xcube/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/alicja/miniconda3/envs/xcube/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/alicja/miniconda3/envs/xcube/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/alicja/miniconda3/envs/xcube/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/alicja/Desktop/projects/xcube/xcube/cli/rectify.py", line 113, in rectify
    monitor=print)
  File "/home/alicja/Desktop/projects/xcube/xcube/cli/rectify.py", line 160, in _rectify
    uv_delta=delta)
  File "/home/alicja/Desktop/projects/xcube/xcube/core/rectify.py", line 106, in rectify_dataset
    src_vars = _select_variables(dataset, var_names, geo_coding=src_geo_coding)
  File "/home/alicja/Desktop/projects/xcube/xcube/core/rectify.py", line 179, in _select_variables
    raise ValueError(f'empty var_names')
ValueError: empty var_names
```
**Expected behavior**
The CLI command should rectify all existing variables of the input file when the parameter `--var` is not passed as described in the help section:
```
  -v, --var VARIABLES        Comma-separated list of names of variables to be
                             included or multiple options may be given. If
                             omitted, all variables in INPUT will be
                             reprojected.

```



Changed files:
test/cli/test_rectify.py, xcube/cli/rectify.py

diff --git a/test/cli/test_rectify.py b/test/cli/test_rectify.py
index 328e05c1..af53d1d6 100644
--- a/test/cli/test_rectify.py
+++ b/test/cli/test_rectify.py
@@ -10,6 +10,32 @@ class RectifyTest(CliDataTest):
     def outputs(self) -> List[str]:
         return ['out.zarr']
 
+    def test_rectify_without_vars(self):
+        """Test that rectify selects all variables when --var is not given."""
+
+        # For now, specify the image geometry explicitly with --size, --point,
+        # and --res to avoid triggering an "invalid y_min" ValueError when
+        # ImageGeom tries to determine it automatically. Once Issue #303 has
+        # been fixed, these options can be omitted.
+
+        result = self.invoke_cli(['rectify',
+                                  '--size', '508,253',
+                                  '--point', '-179.5,-89.5',
+                                  '--res', '0.7071067811865475',
+                                  TEST_ZARR_DIR])
+        self.assertEqual(0, result.exit_code)
+        self.assertEqual('Opening dataset from \\'test.zarr\\'...\\n'
+                         'Rectifying...\\n'
+                         'Writing rectified dataset to \\'out.zarr\\'...\\n'
+                         'Done.\\n',
+                         result.stdout)
+        self.assertTrue(os.path.isdir('out.zarr'))
+        ds = xr.open_zarr('out.zarr')
+        assert_cube(ds)
+        self.assertIn('precipitation', ds)
+        self.assertIn('temperature', ds)
+        self.assertIn('soil_moisture', ds)
+
     def test_rectify_multiple_comma_separated_vars(self):
         """Test that rectify selects the desired variables when
         multiple --var options, some with multiple comma-separated
diff --git a/xcube/cli/rectify.py b/xcube/cli/rectify.py
index a12195c8..8aeb25b6 100644
--- a/xcube/cli/rectify.py
+++ b/xcube/cli/rectify.py
@@ -109,7 +109,7 @@ def rectify(dataset: str,
     # noinspection PyBroadException
     _rectify(input_path,
              xy_var_names,
-             var_name_flat_list,
+             None if len(var_name_flat_list) == 0 else var_name_flat_list,
              output_path,
              output_format,
              output_size,