1 module deimos.git2.submodule; 2 3 import deimos.git2.common; 4 import deimos.git2.oid; 5 import deimos.git2.util; 6 import deimos.git2.types; 7 8 extern (C): 9 10 enum git_submodule_status_t { 11 GIT_SUBMODULE_STATUS_IN_HEAD = (1u << 0), 12 GIT_SUBMODULE_STATUS_IN_INDEX = (1u << 1), 13 GIT_SUBMODULE_STATUS_IN_CONFIG = (1u << 2), 14 GIT_SUBMODULE_STATUS_IN_WD = (1u << 3), 15 GIT_SUBMODULE_STATUS_INDEX_ADDED = (1u << 4), 16 GIT_SUBMODULE_STATUS_INDEX_DELETED = (1u << 5), 17 GIT_SUBMODULE_STATUS_INDEX_MODIFIED = (1u << 6), 18 GIT_SUBMODULE_STATUS_WD_UNINITIALIZED = (1u << 7), 19 GIT_SUBMODULE_STATUS_WD_ADDED = (1u << 8), 20 GIT_SUBMODULE_STATUS_WD_DELETED = (1u << 9), 21 GIT_SUBMODULE_STATUS_WD_MODIFIED = (1u << 10), 22 GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED = (1u << 11), 23 GIT_SUBMODULE_STATUS_WD_WD_MODIFIED = (1u << 12), 24 GIT_SUBMODULE_STATUS_WD_UNTRACKED = (1u << 13), 25 } 26 mixin _ExportEnumMembers!git_submodule_status_t; 27 28 enum GIT_SUBMODULE_STATUS__IN_FLAGS = 0x000Fu; 29 enum GIT_SUBMODULE_STATUS__INDEX_FLAGS = 0x0070u; 30 enum GIT_SUBMODULE_STATUS__WD_FLAGS = 0x3F80u; 31 32 auto GIT_SUBMODULE_STATUS_IS_UNMODIFIED(T)(T S) 33 { 34 return (((S) & ~git_submodule_status_t.GIT_SUBMODULE_STATUS__IN_FLAGS) == 0); 35 } 36 37 auto GIT_SUBMODULE_STATUS_IS_INDEX_UNMODIFIED(T)(T S) 38 { 39 return (((S) & git_submodule_status_t.GIT_SUBMODULE_STATUS__INDEX_FLAGS) == 0); 40 } 41 42 auto GIT_SUBMODULE_STATUS_IS_WD_UNMODIFIED(T)(T S) 43 { 44 return (((S) & git_submodule_status_t.GIT_SUBMODULE_STATUS__WD_FLAGS) == 0); 45 } 46 47 auto GIT_SUBMODULE_STATUS_IS_WD_DIRTY(T)(T S) 48 { 49 return (((S) & (git_submodule_status_t.GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED | 50 git_submodule_status_t.GIT_SUBMODULE_STATUS_WD_WD_MODIFIED | 51 git_submodule_status_t.GIT_SUBMODULE_STATUS_WD_UNTRACKED)) != 0); 52 } 53 54 int git_submodule_lookup( 55 git_submodule **submodule, 56 git_repository *repo, 57 const(char)* name); 58 int git_submodule_foreach( 59 git_repository *repo, 60 int function(git_submodule *sm, const(char)* name, void *payload) callback, 61 void *payload); 62 int git_submodule_add_setup( 63 git_submodule **submodule, 64 git_repository *repo, 65 const(char)* url, 66 const(char)* path, 67 int use_gitlink); 68 int git_submodule_add_finalize(git_submodule *submodule); 69 int git_submodule_add_to_index( 70 git_submodule *submodule, 71 int write_index); 72 int git_submodule_save(git_submodule *submodule); 73 git_repository * git_submodule_owner(git_submodule *submodule); 74 const(char)* git_submodule_name(git_submodule *submodule); 75 const(char)* git_submodule_path(git_submodule *submodule); 76 const(char)* git_submodule_url(git_submodule *submodule); 77 int git_submodule_set_url(git_submodule *submodule, const(char)* url); 78 const(git_oid)* git_submodule_index_id(git_submodule *submodule); 79 const(git_oid)* git_submodule_head_id(git_submodule *submodule); 80 const(git_oid)* git_submodule_wd_id(git_submodule *submodule); 81 git_submodule_ignore_t git_submodule_ignore( 82 git_submodule *submodule); 83 git_submodule_ignore_t git_submodule_set_ignore( 84 git_submodule *submodule, 85 git_submodule_ignore_t ignore); 86 git_submodule_update_t git_submodule_update( 87 git_submodule *submodule); 88 git_submodule_update_t git_submodule_set_update( 89 git_submodule *submodule, 90 git_submodule_update_t update); 91 int git_submodule_fetch_recurse_submodules( 92 git_submodule *submodule); 93 int git_submodule_set_fetch_recurse_submodules( 94 git_submodule *submodule, 95 int fetch_recurse_submodules); 96 int git_submodule_init(git_submodule *submodule, int overwrite); 97 int git_submodule_sync(git_submodule *submodule); 98 int git_submodule_open( 99 git_repository **repo, 100 git_submodule *submodule); 101 int git_submodule_reload(git_submodule *submodule); 102 int git_submodule_reload_all(git_repository *repo); 103 int git_submodule_status( 104 uint *status, 105 git_submodule *submodule); 106 int git_submodule_location( 107 uint *location_status, 108 git_submodule *submodule);