~ruther/CTU-FEE-B0B35APO-Semestral-project

45b4088007d8d45041c6351e660fb159d1128347 — František Boháček 4 years ago 817c1f9
feat: add get file local path so it can be executed
M file-browser/include/file_access.h => file-browser/include/file_access.h +6 -1
@@ 112,6 112,9 @@ typedef file_operation_error_t (*get_mime_type_fn)(fileaccess_state_t state,
typedef executing_file_or_error_t (*execute_file_fn)(fileaccess_state_t state,
                                          file_t *file, char *args);

typedef file_operation_error_t (*get_file_local_path_fn)(fileaccess_state_t state,
                                                     file_t *file, char *out);

typedef file_operation_error_t (*delete_directory_fn)(fileaccess_state_t state,
                                                      char *path);
typedef file_operation_error_t (*delete_file_fn)(fileaccess_state_t state,


@@ 126,6 129,8 @@ struct fileaccess_t {
  list_directory_fn list_directory;
  list_root_fn list_root;

  get_file_local_path_fn get_file_local_path;

  create_directory_fn create_directory;
  close_directory_fn close_directory;



@@ 186,7 191,7 @@ file_operation_error_t fileaccess_file_get_mimetype(fileaccess_state_t state,
executing_file_or_error_t fileaccess_file_execute(fileaccess_state_t state, file_t *file,
                                       char *args);
file_operation_error_t fileaccess_file_delete(fileaccess_state_t state, char *path);
file_operation_error_t fileaccess_file_get_local_path(fileaccess_state_t state, file_t *file, char *out);

file_operation_error_t file_operation_error_from_errno(int error);

#endif // __FILE_ACCESS_H__

M file-browser/include/local_file_access.h => file-browser/include/local_file_access.h +4 -0
@@ 16,6 16,10 @@ file_operation_error_t local_fileaccess_directory_close(fileaccess_state_t state

file_operation_error_t local_fileaccess_file_get_mime_type(fileaccess_state_t state, file_t *file, char *mime);
executing_file_or_error_t local_fileaccess_file_execute(fileaccess_state_t state, file_t *file, char *args);

file_operation_error_t local_fileaccess_file_get_local_path(fileaccess_state_t state, file_t *file,
                                     char *out);

file_operation_error_t local_fileaccess_file_delete(fileaccess_state_t state, char *path);

#endif // __LOCAL_FILE_ACCESS_H__

M file-browser/src/extern_file_access.c => file-browser/src/extern_file_access.c +1 -0
@@ 137,6 137,7 @@ const fileaccess_t extern_file_access = {
    .delete_file = extern_fileaccess_file_delete,
    .execute_file = extern_fileaccess_file_execute,
    .get_mime_type = extern_fileaccess_file_get_mime_type,
    .get_file_local_path = local_fileaccess_file_get_local_path,

    .list_directory = extern_fileaccess_directory_list,
    .close_directory = extern_fileaccess_directory_close,

M file-browser/src/file_access.c => file-browser/src/file_access.c +5 -0
@@ 75,6 75,11 @@ file_operation_error_t fileaccess_file_delete(fileaccess_state_t state,
  return state.fileaccess->delete_file(state, path);
}

file_operation_error_t fileaccess_file_get_local_path(fileaccess_state_t state,
                                                      file_t *file, char *out) {
  return state.fileaccess->get_file_local_path(state, file, out);
}

file_operation_error_t file_operation_error_from_errno(int error) {
  switch (error) {
  case EACCES:

M file-browser/src/local_file_access.c => file-browser/src/local_file_access.c +8 -0
@@ 239,6 239,13 @@ executing_file_or_error_t local_fileaccess_file_execute(fileaccess_state_t state
  return ret;
}

file_operation_error_t
local_fileaccess_file_get_local_path(fileaccess_state_t state, file_t *file,
                                     char *out) {
  file_get_full_path(state, file->directory, file, out);
  return FILOPER_SUCCESS;
}

file_operation_error_t local_fileaccess_file_delete(fileaccess_state_t state,
                                                    char *path) {
  file_operation_error_t error = FILOPER_SUCCESS;


@@ 266,4 273,5 @@ const fileaccess_t local_file_access = {
    .deinit = local_fileaccess_deinit_state,
    .get_mime_type = local_fileaccess_file_get_mime_type,
    .execute_file = local_fileaccess_file_execute,
    .get_file_local_path = local_fileaccess_file_get_local_path
};

M file-browser/src/temp_file_access.c => file-browser/src/temp_file_access.c +1 -1
@@ 21,6 21,7 @@ const fileaccess_t temp_file_access = {
    .delete_file = local_fileaccess_file_delete,
    .execute_file = local_fileaccess_file_execute,
    .get_mime_type = local_fileaccess_file_get_mime_type,
    .get_file_local_path = local_fileaccess_file_get_local_path,

    .list_directory = local_fileaccess_directory_list,
    .close_directory = local_fileaccess_directory_close,


@@ 28,5 29,4 @@ const fileaccess_t temp_file_access = {
    .delete_directory = local_fileaccess_directory_delete,

    .list_root = local_fileaccess_root_list,

};