fully added git

This commit is contained in:
grant 2022-11-07 18:15:14 -06:00
parent f59c43b2b0
commit b4048e4713
3 changed files with 44 additions and 15 deletions

View File

@ -1,5 +1,3 @@
=>gemini://{domain}
# git repos
{git-list}

View File

@ -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:

View File

@ -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
}
}