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