Проверить CORS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

398 lines
9.1KB

  1. const ИМЯ = "test-cors";
  2. // // // //
  3. Закомитать = function(мир)
  4. {
  5. (async() => {
  6. console.debug("01")
  7. var дата = new Date();
  8. await мир.fs.promises.writeFile(мир.директория + "/abc", дата.toString(), "utf8");
  9. await git.add({
  10. fs: мир.fs,
  11. dir: мир.директория,
  12. filepath: "abc"
  13. });
  14. var sha = await git.commit({
  15. fs: мир.fs,
  16. dir: мир.директория,
  17. message: мир.сообщение,
  18. author: мир.автор,
  19. })
  20. console.debug("commit sha:", sha);
  21. await git.push({
  22. fs: мир.fs,
  23. http: мир.гитHTTP,
  24. dir: мир.директория,
  25. remote: мир.источник,
  26. ref: мир.ветка,
  27. onAuth: url => {
  28. var auth = {
  29. "username": мир.пользователь,
  30. "password": мир.пароль,
  31. };
  32. var json = JSON.stringify(auth);
  33. console.debug(`Auth url: '${url}' auth: '${json}'`);
  34. return auth;
  35. }
  36. });
  37. console.debug("закомитали")
  38. })();
  39. };
  40. // // // //
  41. УведомитьОбОшибкеПолученияСпискаФайлов = function(мир)
  42. {
  43. var сообщение = `ОШИБКА Не удалось получить список файлов | ERROR Could not get a list of files ${мир.ошибка}`;
  44. document.body.innerHTML += `<p>${сообщение}</p>`;
  45. console.error(сообщение);
  46. };
  47. // // // //
  48. ВывестиСписокФайлов = function(мир)
  49. {
  50. console.debug("файлы", мир.файлы);
  51. };
  52. // // // //
  53. ПолучитьСписокФайлов = function(мир)
  54. {
  55. (async() => {
  56. try
  57. {
  58. мир.файлы = await мир.fs.promises.readdir(мир.директория);
  59. мир.уведомить("получили список файлов");
  60. }
  61. catch (ошибка)
  62. {
  63. мир.ошибка = ошибка;
  64. мир.уведомить("не получили список файлов");
  65. }
  66. })();
  67. };
  68. // // // //
  69. УведомитьОПерезагрузке = function(мир)
  70. {
  71. var сообщение = `ВНИМАНИЕ Происходит очистка локальной копии Гита с последующей перезагрузкой страницы | WARNING There's a local Git copy cleanup going on with a subsequent page reload ${мир.ошибка}`;
  72. document.body.innerHTML += `<p>${сообщение}</p>`;
  73. console.error(сообщение);
  74. };
  75. // // // //
  76. УведомитьОЗавершенииОбновления = function(мир)
  77. {
  78. console.debug("завершили обновление");
  79. };
  80. // // // //
  81. Перезагрузить = function(мир)
  82. {
  83. setTimeout(
  84. function() {
  85. window.location.reload(false);
  86. },
  87. 4000
  88. );
  89. };
  90. // // // //
  91. ОчиститьФайловуюСистему = function(мир)
  92. {
  93. // Очищаем IndexedDB.
  94. мир.fs = new LightningFS(мир.имяФС, { wipe: true });
  95. };
  96. // // // //
  97. ОбновитьХранилище = function(мир)
  98. {
  99. (async() => {
  100. try
  101. {
  102. await git.pull({
  103. fs: мир.fs,
  104. http: мир.гитHTTP,
  105. dir: мир.директория,
  106. url: мир.хранилище,
  107. depth: 1,
  108. username: мир.пользователь,
  109. password: мир.пароль,
  110. author: мир.автор,
  111. });
  112. мир.уведомить("обновили хранилище");
  113. }
  114. catch (ошибка)
  115. {
  116. мир.ошибка = ошибка;
  117. мир.уведомить("не обновили хранилище");
  118. }
  119. })();
  120. };
  121. // // // //
  122. УведомитьОЗавершенииКлонирования = function(мир)
  123. {
  124. console.debug("завершили клонирование");
  125. };
  126. // // // //
  127. СклонироватьХранилище = function(мир)
  128. {
  129. (async() => {
  130. await git.clone({
  131. fs: мир.fs,
  132. http: мир.гитHTTP,
  133. dir: мир.директория,
  134. url: мир.хранилище,
  135. depth: 1,
  136. username: мир.пользователь,
  137. password: мир.пароль,
  138. });
  139. мир.уведомить("склонировали хранилище");
  140. })();
  141. };
  142. // // // //
  143. УведомитьОбОшибкеПодготовкиДиректории = function(мир)
  144. {
  145. var сообщение = `ОШИБКА Не удалось подготовить директорию для хранилища Гит | ERROR Could not prepare a directory for Git repository ${мир.ошибка}`;
  146. document.body.innerHTML += `<p>${сообщение}</p>`;
  147. console.error(сообщение);
  148. };
  149. // // // //
  150. ПодготовитьДиректорию = function(мир)
  151. {
  152. (async() => {
  153. try
  154. {
  155. await мир.fs.promises.mkdir(мир.директория);
  156. мир.уведомить("подготовили директорию");
  157. }
  158. catch (ошибка)
  159. {
  160. мир.ошибка = ошибка;
  161. мир.уведомить("не подготовили директорию");
  162. }
  163. })();
  164. };
  165. // // // //
  166. ПроверитьНаличиеДиректории = function(мир)
  167. {
  168. мир.fs = new LightningFS(мир.имяФС);
  169. (async() => {
  170. try
  171. {
  172. await мир.fs.promises.readdir(мир.директория);
  173. мир.уведомить("директория присутствует");
  174. }
  175. catch (ошибка)
  176. {
  177. мир.ошибка = ошибка;
  178. мир.уведомить("директория отсутствует");
  179. }
  180. })();
  181. };
  182. // // // //
  183. ЗадатьНастройки = function(мир)
  184. {
  185. мир.имяФС = "fs";
  186. мир.пользователь = "kornerr";
  187. мир.пароль = localStorage.getItem("пароль");
  188. мир.автор = {
  189. "name": "Михаил Капелько",
  190. "email": "kornerr@gmail.com",
  191. };
  192. мир.ветка = "master";
  193. мир.директория = "/" + мир.ветка;
  194. мир.источник = "origin";
  195. мир.сообщение = "Изменения от isomorphic-git";
  196. мир.хранилище = "https://git.opengamestudio.org/kornerr/isomorphic-git-module-test";
  197. мир.хранилище = "https://git.opengamestudio.org/kornerr/test-cors";
  198. };
  199. // // // //
  200. УведомитьОПускеТеста = function(мир)
  201. {
  202. console.debug("пуск теста");
  203. };
  204. // // // //
  205. /*
  206. // // // //
  207. СоздатьВетку = function(мир)
  208. {
  209. (async() => {
  210. console.debug("01");
  211. await git.checkout({
  212. fs: мир.fs,
  213. dir: мир.директория,
  214. ref: мир.ветка,
  215. });
  216. console.debug("02");
  217. console.log("создали ветку");
  218. мир.уведомить("создали ветку");
  219. })();
  220. };
  221. // // // //
  222. СоздатьВеткуДистанционно = function(мир)
  223. {
  224. (async() => {
  225. console.debug("01")
  226. await git.push({
  227. fs: мир.fs,
  228. http: мир.гитHTTP,
  229. dir: мир.директория,
  230. remote: мир.источник,
  231. ref: мир.ветка,
  232. onAuth: function() {
  233. return {
  234. "username": мир.пользователь,
  235. "password": мир.пароль,
  236. };
  237. },
  238. });
  239. console.debug("02")
  240. console.log("создали ветку дистанционно");
  241. мир.уведомить("создали ветку дистанционно");
  242. })();
  243. };
  244. // // // //
  245. СоздатьВеткуЛокально = function(мир)
  246. {
  247. (async() => {
  248. await git.branch({
  249. fs: мир.fs,
  250. dir: мир.директория,
  251. ref: мир.ветка,
  252. checkout: true,
  253. });
  254. console.log("создали ветку локально");
  255. мир.уведомить("создали ветку локально");
  256. })();
  257. };
  258. // // // //
  259. ПроверитьНаличиеВетки = function(мир)
  260. {
  261. (async() => {
  262. var ветки = await git.listBranches({
  263. fs: мир.fs,
  264. dir: мир.директория,
  265. });
  266. if (ветки.includes(мир.ветка))
  267. {
  268. мир.уведомить("ветка присутствует");
  269. }
  270. else
  271. {
  272. мир.уведомить("ветка отсутствует");
  273. }
  274. })();
  275. };
  276. */