mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2024-12-26 04:08:21 +01:00
add GitGraph build file
This commit is contained in:
parent
e48c535f08
commit
0b50d75f30
17
GitGraph/build/debug/README.md
Normal file
17
GitGraph/build/debug/README.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# LibGitGraph
|
||||||
|
Git grapth visualization API for AntOS application.
|
||||||
|
|
||||||
|
The visualization can be easily integrated to an AntOS application, example:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
const graph = new API.LibGitGraph({
|
||||||
|
target: this.find("git-graph")
|
||||||
|
});
|
||||||
|
graph.on_open_diff = (files) => {
|
||||||
|
console.log(files);
|
||||||
|
}
|
||||||
|
graph.base_dir = "home://workspace/repo-git";
|
||||||
|
```
|
||||||
|
|
||||||
|
## Change logs:
|
||||||
|
- v0.1.0-b: Initial version
|
86
GitGraph/build/debug/api/api.lua
Normal file
86
GitGraph/build/debug/api/api.lua
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
-- nothing todo for now
|
||||||
|
local args=...
|
||||||
|
local vfs = require("vfs")
|
||||||
|
|
||||||
|
local result = function(data)
|
||||||
|
return { error = false, result = data }
|
||||||
|
end
|
||||||
|
|
||||||
|
local error = function(msg)
|
||||||
|
return {error = msg, result = false}
|
||||||
|
end
|
||||||
|
|
||||||
|
local handle = {}
|
||||||
|
|
||||||
|
handle.log = function(data)
|
||||||
|
-- convert VFS to OS path
|
||||||
|
local os_path = vfs.ospath(data.base_dir)
|
||||||
|
if(not os_path) then
|
||||||
|
return error("Base dir "..data.base_dir.." is not found")
|
||||||
|
end
|
||||||
|
local cmd = "cd "..os_path.." && "
|
||||||
|
cmd = cmd.."git --no-pager log -n "..data.n_commits.." --all --format='{ \"hashes\":{ \"commit\":\"%H\", \"tree\":\"%T\", \"parents\":\"%P\" }, \"author\":{ \"date\": \"%ai\", \"name\": \"%an\", \"email\":\"%ae\" }, \"committer\":{ \"date\": \"%ci\", \"name\": \"%cn\", \"email\":\"%ce\" }, \"extra\":\"%D\"} ====:RAW:====%B====:RAW:========:COMMITEND:===='"
|
||||||
|
if(data.before) then
|
||||||
|
cmd = cmd.." --before='"..data.before.."'"
|
||||||
|
end
|
||||||
|
local f = assert(io.popen(cmd, 'r'))
|
||||||
|
local s = assert(f:read('*a'))
|
||||||
|
f:close()
|
||||||
|
local ret = {}
|
||||||
|
for line in s:gmatch("(.-)====:COMMITEND:====\n") do
|
||||||
|
local arr = {}
|
||||||
|
for el in line:gmatch("(.-)====:RAW:====") do
|
||||||
|
table.insert(arr, el)
|
||||||
|
end
|
||||||
|
local commit = JSON.decodeString(arr[1])
|
||||||
|
commit.message = arr[2]
|
||||||
|
table.insert(ret, commit)
|
||||||
|
end
|
||||||
|
return result(ret)
|
||||||
|
end
|
||||||
|
|
||||||
|
handle.list_file = function(data)
|
||||||
|
local os_path = vfs.ospath(data.base_dir)
|
||||||
|
if(not os_path) then
|
||||||
|
return error("Base dir "..data.base_dir.." is not found")
|
||||||
|
end
|
||||||
|
local cmd = "cd "..os_path..' && git --no-pager log -m -1 --name-status --pretty="format:" '..data.commit
|
||||||
|
local f = assert(io.popen(cmd, 'r'))
|
||||||
|
local s = assert(f:read('*a'))
|
||||||
|
f:close()
|
||||||
|
local ret = {}
|
||||||
|
for line in s:gmatch("(.-)\n") do
|
||||||
|
table.insert(ret, line)
|
||||||
|
end
|
||||||
|
return result(ret)
|
||||||
|
end
|
||||||
|
|
||||||
|
handle.get_changes = function(data)
|
||||||
|
local os_path = vfs.ospath(data.base_dir)
|
||||||
|
if(not os_path) then
|
||||||
|
return error("Base dir "..data.base_dir.." is not found")
|
||||||
|
end
|
||||||
|
local cmd = "cd "..os_path.." && git --no-pager diff --no-prefix -U1000 "..data.commit.."^:"..data.file.." "..data.commit..":"..data.file
|
||||||
|
local f = assert(io.popen(cmd, 'r'))
|
||||||
|
local s = assert(f:read('*a'))
|
||||||
|
f:close()
|
||||||
|
return result(s)
|
||||||
|
end
|
||||||
|
|
||||||
|
handle.get_file = function(data)
|
||||||
|
local os_path = vfs.ospath(data.base_dir)
|
||||||
|
if(not os_path) then
|
||||||
|
return error("Base dir "..data.base_dir.." is not found")
|
||||||
|
end
|
||||||
|
local cmd = "cd "..os_path.." && git --no-pager show "..data.commit..":"..data.file
|
||||||
|
local f = assert(io.popen(cmd, 'r'))
|
||||||
|
local s = assert(f:read('*a'))
|
||||||
|
f:close()
|
||||||
|
return result(s)
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.action and handle[args.action] then
|
||||||
|
return handle[args.action](args.args)
|
||||||
|
else
|
||||||
|
return error("Invalid action parameter")
|
||||||
|
end
|
1
GitGraph/build/debug/libgitgraph.js
Normal file
1
GitGraph/build/debug/libgitgraph.js
Normal file
File diff suppressed because one or more lines are too long
208
GitGraph/build/debug/main.css
Normal file
208
GitGraph/build/debug/main.css
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
afx-app-window[data-id="GitGraph"] div[data-id="git-graph"]
|
||||||
|
{
|
||||||
|
overflow-y: auto;
|
||||||
|
background-color: bisque;
|
||||||
|
}
|
||||||
|
|
||||||
|
afx-app-window[data-id="GitGraph"] afx-label[data-id="txt-repo"] i.label-text
|
||||||
|
{
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.git_graph_commit_message:hover
|
||||||
|
{
|
||||||
|
background-color:rgba(39, 39, 39,0.5);
|
||||||
|
}
|
||||||
|
p.git_graph_commit_current_head
|
||||||
|
{
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_hash
|
||||||
|
{
|
||||||
|
font-weight: bold;
|
||||||
|
margin-right: 5px;
|
||||||
|
font-style: normal;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_tag,
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_branch
|
||||||
|
{
|
||||||
|
border: 1px solid;
|
||||||
|
font-style: normal;
|
||||||
|
border-radius: 5px;
|
||||||
|
line-height: 20px;
|
||||||
|
padding: 0;
|
||||||
|
padding-left: 2px;
|
||||||
|
padding-right: 2px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_tag::before
|
||||||
|
{
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F5AF";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
padding-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_branch::before
|
||||||
|
{
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
content: "\f126";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
position: relative;
|
||||||
|
top: 1px;
|
||||||
|
padding-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.git_grapth_commit_detail
|
||||||
|
{
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
box-shadow: 0px 3px 6px 0px rgb(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.git_grapth_commit_detail_right,
|
||||||
|
div.git_grapth_commit_detail_left {
|
||||||
|
background-color: transparent !important;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
div.git_grapth_commit_detail_left {
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
|
div.git_grapth_commit_detail_left p{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
word-wrap:break-word;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.git_grapth_commit_detail_left pre
|
||||||
|
{
|
||||||
|
margin: 0;
|
||||||
|
padding-top: 10px;
|
||||||
|
display: block;
|
||||||
|
border-top: 1px solid #9c9c9c;
|
||||||
|
}
|
||||||
|
div.git_grapth_commit_detail_right a{
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.git_grapth_commit_detail_right a.git_graph_file_m::before
|
||||||
|
{
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F364";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
color: blue !important;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.git_grapth_commit_detail_right a.git_graph_file_a::before
|
||||||
|
{
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F37D";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
color: green !important;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.git_grapth_commit_detail_right a.git_graph_file_d::before
|
||||||
|
{
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F368";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
color: red !important;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
div.git_grapth_commit_detail_ctrl i::before{
|
||||||
|
display: block;
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F622";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
div.git_grapth_commit_detail_ctrl i {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
div.git_grapth_commit_detail_right ul{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_text
|
||||||
|
{
|
||||||
|
font-style: normal;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_author::before
|
||||||
|
{
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F4DC";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 3px;
|
||||||
|
position: relative;
|
||||||
|
top: 3px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
p.git_graph_commit_message i.git_graph_commit_date::before
|
||||||
|
{
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F205";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-right: 3px;
|
||||||
|
padding-left: 5px;
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
p.git_grapth_load_more
|
||||||
|
{
|
||||||
|
font-weight: normal ;
|
||||||
|
text-align: left;
|
||||||
|
color:#131313;
|
||||||
|
display: inline-block !important;
|
||||||
|
padding-left: 5px !important;
|
||||||
|
padding-right: 5px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.git_grapth_load_more::before
|
||||||
|
{
|
||||||
|
font-family: 'bootstrap-icons';
|
||||||
|
content: "\F118";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
display: inline-block;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.git_grapth_load_more:hover
|
||||||
|
{
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
1
GitGraph/build/debug/main.js
Normal file
1
GitGraph/build/debug/main.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
var OS;!function(t){let i,e;i=t.API||(t.API={}),function(t){class e extends t.BaseApplication{constructor(t){super("GitGraph",t)}main(){const t=new i.LibGitGraph({target:this.find("git-graph")});t.on_open_diff=t=>{this._gui.launch("Antedit",[]).then(i=>{i.observable.one("launched",()=>i.openDiff(t))}).catch(t=>this.error(__("Unable to open diff with Antedit: {0}",t.toString()),t))},this.find("btn-open").onbtclick=i=>{this.openDialog("FileDialog",{title:__("Select a repository"),type:"dir"}).then(i=>{this.find("txt-repo").text=i.file.path,t.base_dir=i.file})}}}t.GitGraph=e,e.dependencies=["pkg://GitGraph/libgitgraph.js"]}(e=t.application||(t.application={}))}(OS||(OS={}));
|
16
GitGraph/build/debug/package.json
Normal file
16
GitGraph/build/debug/package.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"pkgname": "GitGraph",
|
||||||
|
"app":"GitGraph",
|
||||||
|
"name":"GIT Visualization",
|
||||||
|
"description":"Git Grapth",
|
||||||
|
"info":{
|
||||||
|
"author": "Dany LE",
|
||||||
|
"email": "contact@iohub.dev"
|
||||||
|
},
|
||||||
|
"version":"0.0.1-a",
|
||||||
|
"category":"Development",
|
||||||
|
"iconclass":"bi bi-git",
|
||||||
|
"mimes":["dir"],
|
||||||
|
"dependencies":[],
|
||||||
|
"locale": {}
|
||||||
|
}
|
12
GitGraph/build/debug/scheme.html
Normal file
12
GitGraph/build/debug/scheme.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<afx-app-window apptitle="LibGitGraph" width="600" height="400" data-id="GitGraph">
|
||||||
|
<afx-vbox>
|
||||||
|
<afx-hbox data-height="25">
|
||||||
|
<afx-button data-width="24" iconclass = "bi bi-folder2-open" data-id="btn-open"></afx-button>
|
||||||
|
<afx-label data-id="txt-repo"></afx-label>
|
||||||
|
</afx-hbox>
|
||||||
|
<afx-hbox >
|
||||||
|
<div data-id="git-graph">
|
||||||
|
</div>
|
||||||
|
</afx-hbox>
|
||||||
|
</afx-vbox>
|
||||||
|
</afx-app-window>
|
BIN
GitGraph/build/release/GitGraph.zip
Normal file
BIN
GitGraph/build/release/GitGraph.zip
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user