fully added git
This commit is contained in:
parent
f59c43b2b0
commit
b4048e4713
|
@ -1,5 +1,3 @@
|
|||
=>gemini://{domain}
|
||||
|
||||
# git repos
|
||||
|
||||
{git-list}
|
||||
|
|
|
@ -10,12 +10,15 @@ i am grant:) a software engineer^^
|
|||
* rust
|
||||
* c/c++
|
||||
* clojure
|
||||
* python (bleh)
|
||||
* lua (python^2)
|
||||
* probably some more idk
|
||||
|
||||
### learning (or plan to):
|
||||
|
||||
* carbon
|
||||
* asm
|
||||
|
||||
* haskell
|
||||
* go
|
||||
|
||||
## contacts:
|
||||
|
||||
|
|
50
server.ts
50
server.ts
|
@ -1,4 +1,4 @@
|
|||
import { readFileSync, writeFileSync,mkdirSync,unlinkSync,rmSync,readdirSync} from "fs";
|
||||
import { existsSync,readFileSync, writeFileSync,mkdirSync,unlinkSync,rmSync,readdirSync} from "fs";
|
||||
import gemini, { Request, Response, TitanRequest, NextFunction } from "gemini-server";
|
||||
const {gitToJs} = require("git-parse")
|
||||
const options = {
|
||||
|
@ -42,7 +42,9 @@ app.use(async(_req: Request, res: Response) => {
|
|||
return
|
||||
} else {
|
||||
if(_req.url.pathname.split("/")[3]==undefined){
|
||||
let parsedGit = await gitToJs(__dirname+_req.url.pathname)
|
||||
let parsedGit
|
||||
|
||||
parsedGit = await gitToJs(__dirname+_req.url.pathname)
|
||||
let a:any = Math.random()
|
||||
let cList = ''
|
||||
for(let commit of parsedGit){
|
||||
|
@ -60,25 +62,32 @@ app.use(async(_req: Request, res: Response) => {
|
|||
cList += '~'
|
||||
}
|
||||
}
|
||||
let t = `=> gemini://${_req.url.host}/git git\n\n=> gemini://${_req.url.host+_req.url.pathname}/source source\n\n#${reqd}\n\n## commits\n${cList}`
|
||||
let readme = ''
|
||||
if(existsSync('.'+_req.url.pathname+'/readme')){
|
||||
readme = '\n\n## readme\n\n'+readFileSync('.'+_req.url.pathname+'/readme').toString()
|
||||
}
|
||||
if(existsSync('.'+_req.url.pathname+'/readme.md')){
|
||||
readme = '\n\n## readme\n\n'+readFileSync('.'+_req.url.pathname+'/readme.md').toString()
|
||||
}
|
||||
let t = `=> gemini://${_req.url.host+_req.url.pathname}/source source\n\n#${reqd}${readme}\n\n## commits\n${cList}`
|
||||
writeFileSync("tmp/"+a+".gemini",t)
|
||||
res.file("tmp/"+a+".gemini");
|
||||
unlinkSync("tmp/"+a+".gemini")
|
||||
|
||||
} else {
|
||||
let x = (_req.url.pathname.split('/'))
|
||||
let z = x.splice(3,1)
|
||||
let parsedGit
|
||||
try{
|
||||
parsedGit = await gitToJs(__dirname+x.join('\\'))
|
||||
parsedGit = await gitToJs(__dirname+x.join('/'))
|
||||
} catch(e){
|
||||
parsedGit = []
|
||||
}
|
||||
let a:any = Math.random()
|
||||
let cList:any = []
|
||||
|
||||
for(let commit of parsedGit){
|
||||
if(z == commit.hash){
|
||||
let t = `=> gemini://${_req.url.host+x.join('/')} ${_req.url.host+x.join('/')}\n\n# commit ${commit.hash}\n\n`
|
||||
let t = `# commit ${commit.hash}\n\n`
|
||||
for(let i of commit.filesAdded){
|
||||
i['action']='add'
|
||||
cList.push(i)
|
||||
|
@ -117,29 +126,48 @@ app.use(async(_req: Request, res: Response) => {
|
|||
}
|
||||
}
|
||||
x = (_req.url.pathname.split('/'))
|
||||
|
||||
z = x.splice(3,1)
|
||||
let def = x
|
||||
let aaa = '';
|
||||
for(let l of def){
|
||||
aaa+=l+"/"
|
||||
}
|
||||
let aa = aaa.split('/')
|
||||
aa.splice(3,0,z.join(""))
|
||||
if(z.join("").includes('source')){
|
||||
|
||||
|
||||
try{
|
||||
let gitDir = readdirSync("."+x.join("/"))
|
||||
let t = `=> gemini://${_req.url.host+x.join('/')} ${x.join('/')}\n\n`
|
||||
//let t = `=> gemini://${_req.url.host+x.join('/')} ${x.join('/')}\n\n`
|
||||
let t = ''
|
||||
for(let i of gitDir){
|
||||
try{
|
||||
readFileSync("."+x.join("/")+'/'+i)
|
||||
t += ` ${i}\n`
|
||||
t += `=> gemini://${_req.url.host+aa.join("/")+'/'+i} ${i}\n`
|
||||
} catch(e) {//is directory
|
||||
t += `[d] ${i}\n`
|
||||
t += `=> gemini://${_req.url.host+aa.join("/")+'/'+i} [d] ${i}\n`
|
||||
}
|
||||
}
|
||||
writeFileSync("tmp/"+a+".gemini",t)
|
||||
res.file("tmp/"+a+".gemini");
|
||||
unlinkSync("tmp/"+a+".gemini")
|
||||
return
|
||||
}catch (e) {//a file
|
||||
let a:any = Math.random()
|
||||
let f = (readFileSync("."+x.join("/")).toString())
|
||||
writeFileSync("tmp/"+a+".gemini",f)
|
||||
res.file("tmp/"+a+".gemini");
|
||||
unlinkSync("tmp/"+a+".gemini")
|
||||
return
|
||||
|
||||
}
|
||||
}
|
||||
let t = readFileSync("./pages/404.gemini").toString().replace(/{domain}/g,_req.url.host)
|
||||
writeFileSync("tmp/"+a+".gemini",t)
|
||||
res.file("tmp/"+a+".gemini");
|
||||
unlinkSync("tmp/"+a+".gemini")
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue