mirror of
https://github.com/OBKoro1/autoCommit.git
synced 2024-11-24 03:19:23 +08:00
修改插件名称
This commit is contained in:
parent
53eee36cab
commit
19a115efbb
@ -2,7 +2,6 @@
|
||||
|
||||
### 如果觉得本插件还不错的话,给个[Star](https://github.com/OBKoro1/autoCommit)吧~
|
||||
|
||||
<!-- TODO: package.json 抄一下 -->
|
||||
<!-- TODO: wiki readme -->
|
||||
<!-- TODO: npm包形式 -->
|
||||
<!-- webview 的icon -->
|
||||
|
@ -12,6 +12,6 @@
|
||||
|
||||
<!-- TODO: icon -->
|
||||
|
||||
<!-- 分支未创建 未上传问题 -->
|
||||
<!-- 注意保持git干净,不要有未合并merge、rebase等情况 -->
|
||||
|
||||
<!-- 注意保持git干净,不要有未合并merge、rebase等情况 -->
|
||||
<!-- TODO: 提交到分支不会显示在绿色格子里面 合并后 才有 -->
|
BIN
images/.DS_Store
vendored
BIN
images/.DS_Store
vendored
Binary file not shown.
BIN
images/command.png
Normal file
BIN
images/command.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
BIN
images/icon.png
BIN
images/icon.png
Binary file not shown.
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |
BIN
images/icon2.png
BIN
images/icon2.png
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
BIN
images/icon3.png
BIN
images/icon3.png
Binary file not shown.
Before Width: | Height: | Size: 22 KiB |
10
package.json
10
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "autoCommit",
|
||||
"displayName": "autoCommit",
|
||||
"name": "auto-commit",
|
||||
"displayName": "Auto Commit",
|
||||
"description": "自动提交commit到github",
|
||||
"publisher": "OBKoro1",
|
||||
"version": "1.0.0",
|
||||
@ -20,7 +20,7 @@
|
||||
"email": "obkoro1@foxmail.com",
|
||||
"url": "http://obkoro1.com/web_accumulate/"
|
||||
},
|
||||
"icon": "images/icon3.png",
|
||||
"icon": "images/icon.png",
|
||||
"galleryBanner": {
|
||||
"color": "#3B4859",
|
||||
"theme": "dark"
|
||||
@ -44,8 +44,8 @@
|
||||
"commands": [
|
||||
{
|
||||
"command": "extension.autoCommit",
|
||||
"title": "Github自动提交 autoCommit",
|
||||
"category": "Github自动提交 autoCommit"
|
||||
"title": "控制Github绿色格子的commit数量",
|
||||
"category": "auto commit Github自动提交 "
|
||||
}
|
||||
]
|
||||
},
|
||||
|
116
src/index.js
116
src/index.js
@ -1,116 +0,0 @@
|
||||
/*
|
||||
* Author : OBKoro1
|
||||
* Date : 2019-12-19 20:23:57
|
||||
* LastEditors : OBKoro1
|
||||
* LastEditTime : 2019-12-27 15:50:22
|
||||
* FilePath : /autoCommit/src/index.js
|
||||
* Description : 自动commit
|
||||
* https://github.com/OBKoro1
|
||||
*/
|
||||
|
||||
const { execSync } = require('child_process');
|
||||
const moment = require('moment');
|
||||
const fs = require('fs');
|
||||
|
||||
class autoCommit {
|
||||
constructor() {
|
||||
this.init();
|
||||
}
|
||||
getData() {
|
||||
this.getAllDay(this.paramsObj.beginDay, this.paramsObj.endDay);
|
||||
this.readyCommit();
|
||||
}
|
||||
// 格式化日期
|
||||
formatTime(time) {
|
||||
return `${time} 08:00`;
|
||||
}
|
||||
// 获取两个日期之间的间隔: [ '2019-02-02', '2019-02-03' ... ]
|
||||
getAllDay(begin, end) {
|
||||
this.timeArr = [];
|
||||
const beginSplit = begin.split('-');
|
||||
const endSplit = end.split('-');
|
||||
const beginDate = new Date();
|
||||
beginDate.setUTCFullYear(beginSplit[0], beginSplit[1] - 1, beginSplit[2]);
|
||||
const endDate = new Date();
|
||||
endDate.setUTCFullYear(endSplit[0], endSplit[1] - 1, endSplit[2]);
|
||||
const beginNumber = beginDate.getTime();
|
||||
const endNumber = endDate.getTime();
|
||||
for (let k = beginNumber; k <= endNumber; ) {
|
||||
const day = new Date(parseInt(k));
|
||||
const dayFormat = moment(day).format('YYYY-MM-DD');
|
||||
this.timeArr.push(dayFormat);
|
||||
k = k + 24 * 60 * 60 * 1000;
|
||||
}
|
||||
}
|
||||
init() {
|
||||
// TODO: 获取参数
|
||||
let paramsObj = {
|
||||
beginDay: '2019-12-27',
|
||||
itemSrc: '/Users/koro/work/web_my/testCommit' // 要commit的项目地址
|
||||
};
|
||||
let defaultOption = {
|
||||
beginDay: moment().format('YYYY-MM-DD'), // 默认为今天
|
||||
endDay: moment().format('YYYY-MM-DD'), // 默认为今天
|
||||
fileSrc: `commit.md`,
|
||||
commitNumber: 1 // 每天commit 次数
|
||||
};
|
||||
this.paramsObj = Object.assign(defaultOption, paramsObj);
|
||||
this.getData();
|
||||
}
|
||||
// commit
|
||||
readyCommit() {
|
||||
console.log('日期数组:', this.timeArr);
|
||||
console.log('每个日期提交次数:', this.paramsObj.commitNumber);
|
||||
let totalNum = 0; // 总commit次数
|
||||
// 遍历日期
|
||||
this.timeArr.forEach(item => {
|
||||
// 每个日期commit次数
|
||||
for (let i = 0; i < this.paramsObj.commitNumber; i++) {
|
||||
let time = this.formatTime(item); // 2019-01-02 08:00
|
||||
time = moment(time).format(); // 2019-01-02T00:00:00+0800
|
||||
const commitContent = `${time}${i}`;
|
||||
fs.writeFileSync(
|
||||
`${this.paramsObj.itemSrc}/${this.paramsObj.fileSrc}`,
|
||||
commitContent,
|
||||
'utf-8'
|
||||
);
|
||||
let res = this.myExecSync(
|
||||
`cd ${this.paramsObj.itemSrc} && git add . && git commit -m 'autoCommit' --date='${time}' && git pull && git push origin master`
|
||||
);
|
||||
console.log('res 开始', res);
|
||||
console.log('res 结束');
|
||||
let cmd = `git log -1 \
|
||||
--date=iso --pretty=format:'{"commit": "%h","author": "%aN <%aE>","date": "%ad","message": "%s"},' \
|
||||
$@ | \
|
||||
perl -pe 'BEGIN{print "["}; END{print "]\n"}' | \
|
||||
perl -pe 's/},]/}]/'`;
|
||||
let log = this.myExecSync(cmd);
|
||||
console.log('log 开始', log);
|
||||
console.log('log 结束');
|
||||
totalNum++;
|
||||
|
||||
console.log('commit内容', commitContent);
|
||||
}
|
||||
console.log(`总commit次数${totalNum}`);
|
||||
});
|
||||
}
|
||||
|
||||
myExecSync(cmd) {
|
||||
// 除了该方法直到子进程完全关闭后才返回 执行完毕 返回
|
||||
try {
|
||||
const res = execSync(cmd, {
|
||||
encoding: 'utf8',
|
||||
timeout: 0,
|
||||
maxBuffer: 200 * 1024,
|
||||
killSignal: 'SIGTERM',
|
||||
cwd: undefined,
|
||||
env: undefined
|
||||
});
|
||||
return res;
|
||||
} catch (err) {
|
||||
console.log(`执行命令出错:${cmd}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
new autoCommit();
|
@ -1,42 +0,0 @@
|
||||
# Welcome to your VS Code Extension
|
||||
|
||||
## What's in the folder
|
||||
|
||||
* This folder contains all of the files necessary for your extension.
|
||||
* `package.json` - this is the manifest file in which you declare your extension and command.
|
||||
* The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
|
||||
* `src/extension.ts` - this is the main file where you will provide the implementation of your command.
|
||||
* The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
|
||||
* We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
|
||||
|
||||
## Get up and running straight away
|
||||
|
||||
* Press `F5` to open a new window with your extension loaded.
|
||||
* Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
|
||||
* Set breakpoints in your code inside `src/extension.ts` to debug your extension.
|
||||
* Find output from your extension in the debug console.
|
||||
|
||||
## Make changes
|
||||
|
||||
* You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
|
||||
* You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
|
||||
|
||||
|
||||
## Explore the API
|
||||
|
||||
* You can open the full set of our API when you open the file `node_modules/@types/vscode/index.d.ts`.
|
||||
|
||||
## Run tests
|
||||
|
||||
* Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
|
||||
* Press `F5` to run the tests in a new window with your extension loaded.
|
||||
* See the output of the test result in the debug console.
|
||||
* Make changes to `src/test/suite/extension.test.ts` or create new test files inside the `test/suite` folder.
|
||||
* The provided test runner will only consider files matching the name pattern `**.test.ts`.
|
||||
* You can create folders inside the `test` folder to structure your tests any way you want.
|
||||
|
||||
## Go further
|
||||
|
||||
* Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/bundling-extension).
|
||||
* [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace.
|
||||
* Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).
|
Loading…
Reference in New Issue
Block a user