mirror of
https://github.com/pldubouilh/gossa.git
synced 2026-08-31 06:16:54 -04:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c049b71b96 | ||
|
|
93f3717835 | ||
|
|
48f1751cee | ||
|
|
8769257692 | ||
|
|
3e01b7a0ab | ||
|
|
b656951e81 | ||
|
|
53f220a6d6 |
@@ -1,8 +1,11 @@
|
|||||||
run:
|
build:
|
||||||
make embed
|
make embed
|
||||||
go vet && go fmt
|
go vet && go fmt
|
||||||
CGO_ENABLED=0 go build gossa.go
|
CGO_ENABLED=0 go build gossa.go
|
||||||
rm gossa.go
|
rm gossa.go
|
||||||
|
|
||||||
|
run:
|
||||||
|
make build
|
||||||
./gossa fixture
|
./gossa fixture
|
||||||
|
|
||||||
watch:
|
watch:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ RUN curl -L -o caddy.tar.gz "https://github.com/mholt/caddy/releases/download/v0
|
|||||||
RUN tar xvzf caddy.tar.gz && mv caddy /caddy
|
RUN tar xvzf caddy.tar.gz && mv caddy /caddy
|
||||||
|
|
||||||
# download and prepare gossa
|
# download and prepare gossa
|
||||||
RUN curl -L -o /gossa "https://github.com/pldubouilh/gossa/releases/download/v0.0.4/gossa-linux64"
|
RUN curl -L -o /gossa "https://github.com/pldubouilh/gossa/releases/download/v0.0.7/gossa-linux64"
|
||||||
RUN chmod +x /gossa /caddy
|
RUN chmod +x /gossa /caddy
|
||||||
|
|
||||||
# Caddy config:
|
# Caddy config:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
FROM alpine
|
FROM alpine
|
||||||
EXPOSE 8001
|
EXPOSE 8001
|
||||||
RUN wget https://github.com/pldubouilh/gossa/releases/download/v0.0.4/gossa-linux64 && mv gossa-linux64 /gossa && chmod +x /gossa
|
RUN wget https://github.com/pldubouilh/gossa/releases/download/v0.0.7/gossa-linux64 && mv gossa-linux64 /gossa && chmod +x /gossa
|
||||||
ENTRYPOINT [ "/gossa", "-h", "0.0.0.0", "/shared" ]
|
ENTRYPOINT [ "/gossa", "-h", "0.0.0.0", "/shared" ]
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ built blobs are available on the [release page](https://github.com/pldubouilh/go
|
|||||||
|
|
||||||
### run
|
### run
|
||||||
```sh
|
```sh
|
||||||
# build
|
# build (or download release from github)
|
||||||
make
|
make
|
||||||
|
|
||||||
# run
|
# run
|
||||||
@@ -46,6 +46,7 @@ make
|
|||||||
|Ctrl/Meta + C | copy URL to clipboard|
|
|Ctrl/Meta + C | copy URL to clipboard|
|
||||||
|Ctrl/Meta + E | rename file/folder|
|
|Ctrl/Meta + E | rename file/folder|
|
||||||
|Ctrl/Meta + Del | delete file/folder|
|
|Ctrl/Meta + Del | delete file/folder|
|
||||||
|
|Ctrl/Meta + U | upload new file/folder|
|
||||||
|Ctrl/Meta + D | create a new directory|
|
|Ctrl/Meta + D | create a new directory|
|
||||||
|Ctrl/Meta + X | cut selected path|
|
|Ctrl/Meta + X | cut selected path|
|
||||||
|Ctrl/Meta + V | paste previously selected paths to directory|
|
|Ctrl/Meta + V | paste previously selected paths to directory|
|
||||||
|
|||||||
+1
-1
@@ -164,7 +164,7 @@ func rpc(w http.ResponseWriter, r *http.Request) {
|
|||||||
} else if payload.Call == "mv" {
|
} else if payload.Call == "mv" {
|
||||||
err = os.Rename(payload.Args[0], payload.Args[1])
|
err = os.Rename(payload.Args[0], payload.Args[1])
|
||||||
} else if payload.Call == "rm" {
|
} else if payload.Call == "rm" {
|
||||||
err = os.Remove(payload.Args[0])
|
err = os.RemoveAll(payload.Args[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
logVerb("RPC", err, payload)
|
logVerb("RPC", err, payload)
|
||||||
|
|||||||
+9
-6
@@ -122,7 +122,7 @@ let totalUploads = 0
|
|||||||
let totalUploadsSize = 0
|
let totalUploadsSize = 0
|
||||||
let totalUploadedSize = []
|
let totalUploadedSize = []
|
||||||
|
|
||||||
const dupe = test => allA.find(a => a.innerText.replace('/', '') === test)
|
const dupe = test => allA.find(a => a.innerHTML.replace('/', '') === test)
|
||||||
const isDupe = t => dupe(t) ? alert(t + ' already already exists') || true : false
|
const isDupe = t => dupe(t) ? alert(t + ' already already exists') || true : false
|
||||||
|
|
||||||
function shouldRefresh () {
|
function shouldRefresh () {
|
||||||
@@ -231,7 +231,7 @@ document.ondragenter = e => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.ondragstart = e => { draggingSrc = e.target.innerText }
|
document.ondragstart = e => { draggingSrc = e.target.innerHTML }
|
||||||
|
|
||||||
document.ondragend = e => resetBackgroundLinks()
|
document.ondragend = e => resetBackgroundLinks()
|
||||||
|
|
||||||
@@ -248,7 +248,7 @@ document.ondrop = e => {
|
|||||||
|
|
||||||
// move to a folder
|
// move to a folder
|
||||||
if (draggingSrc && t) {
|
if (draggingSrc && t) {
|
||||||
const dest = t.innerText + draggingSrc
|
const dest = t.innerHTML + draggingSrc
|
||||||
ensureMove() || mvCall(prependPath(draggingSrc), prependPath(dest), refresh)
|
ensureMove() || mvCall(prependPath(draggingSrc), prependPath(dest), refresh)
|
||||||
// ... or upload
|
// ... or upload
|
||||||
} else if (e.dataTransfer.items.length) {
|
} else if (e.dataTransfer.items.length) {
|
||||||
@@ -302,7 +302,7 @@ function padOff () {
|
|||||||
async function displayPad (a) {
|
async function displayPad (a) {
|
||||||
if (a) {
|
if (a) {
|
||||||
try {
|
try {
|
||||||
fileEdited = a.innerText
|
fileEdited = a.innerHTML
|
||||||
const f = await fetch(a.href, {
|
const f = await fetch(a.href, {
|
||||||
credentials: 'include',
|
credentials: 'include',
|
||||||
headers: new Headers({
|
headers: new Headers({
|
||||||
@@ -367,7 +367,7 @@ window.rename = (e, commit) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const orig = e.key ? getASelected().innerText : getBtnA(e).innerText
|
const orig = e.key ? getASelected().innerHTML : getBtnA(e).innerHTML
|
||||||
const chg = prompt('rename to', orig)
|
const chg = prompt('rename to', orig)
|
||||||
if (chg && !isDupe(chg)) {
|
if (chg && !isDupe(chg)) {
|
||||||
mvCall(prependPath(orig), prependPath(chg), refresh)
|
mvCall(prependPath(orig), prependPath(chg), refresh)
|
||||||
@@ -488,7 +488,7 @@ function onPaste () {
|
|||||||
const root = cuts.pop()
|
const root = cuts.pop()
|
||||||
const filename = root.split('/').pop()
|
const filename = root.split('/').pop()
|
||||||
const pwd = decodeURIComponent(location.pathname)
|
const pwd = decodeURIComponent(location.pathname)
|
||||||
const dest = isFolder(a) ? pwd + a.innerText : pwd
|
const dest = isFolder(a) ? pwd + a.innerHTML : pwd
|
||||||
mvCall(root, dest + filename, onPaste)
|
mvCall(root, dest + filename, onPaste)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,6 +576,9 @@ document.body.addEventListener('keydown', e => {
|
|||||||
|
|
||||||
case 'KeyD':
|
case 'KeyD':
|
||||||
return prevent(e) || window.mkdirBtn()
|
return prevent(e) || window.mkdirBtn()
|
||||||
|
|
||||||
|
case 'KeyU':
|
||||||
|
return prevent(e) || manualUpload.click()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user