if __name__ == '__main__':
     try:
-        if 2 != len(argv):
-            raise HandledException('Bad number of command arguments.')
-        match argv[1]:
-            case 'install_deps':
-                raise HandledException('Should be handled by calling script.')
-            case 'create_db':
-                DbFile.create()
-            case 'migrate_db':
-                DbFile(skip_validations=True).migrate(MIGRATIONS)
-            case 'serve':
+        match len(argv):
+            case 1:
                 serve()
-            case 'sync':
-                sync()
+            case 2:
+                match argv[1]:
+                    case 'install_deps':
+                        raise HandledException(
+                                'Should be handled by calling script.')
+                    case 'create_db':
+                        DbFile.create()
+                    case 'migrate_db':
+                        DbFile(skip_validations=True).migrate(MIGRATIONS)
+                    case 'serve':
+                        serve()
+                    case 'sync':
+                        sync()
+                    case _:
+                        raise HandledException('Unknown argument.')
             case _:
-                raise HandledException('Unknown argument.')
+                raise HandledException('Bad number of command arguments.')
     except HandledException as e:
         print(e)
         sys_exit(1)