mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-10-30 17:46:41 +08:00
maintain (path): absolute path
getting things ready to have config coming as a plugin to handle various distributions
This commit is contained in:
@ -19,11 +19,10 @@ import (
|
||||
"github.com/tidwall/sjson"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
var (
|
||||
configPath string = filepath.Join(GetCurrentDir(), CONFIG_PATH+"config.json")
|
||||
configPath string = GetAbsolutePath(CONFIG_PATH, "config.json")
|
||||
configKeysToEncrypt []string = []string{
|
||||
"middleware.identity_provider.params",
|
||||
"middleware.attribute_mapping.params",
|
||||
@ -34,7 +33,7 @@ func LoadConfig() ([]byte, error) {
|
||||
file, err := os.OpenFile(configPath, os.O_RDONLY, os.ModePerm)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
os.MkdirAll(filepath.Join(GetCurrentDir(), CONFIG_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(CONFIG_PATH), os.ModePerm)
|
||||
return []byte(""), nil
|
||||
}
|
||||
return nil, err
|
||||
|
||||
@ -20,8 +20,15 @@ func GetCurrentDir() string {
|
||||
return filepath.Dir(ex)
|
||||
}
|
||||
|
||||
func GetAbsolutePath(p string) string {
|
||||
return filepath.Join(GetCurrentDir(), p)
|
||||
func GetAbsolutePath(base string, opts ...string) string {
|
||||
fullPath := base
|
||||
if strings.HasPrefix(base, "/") == false { // relative filepath are relative to the binary
|
||||
fullPath = filepath.Join(GetCurrentDir(), base)
|
||||
}
|
||||
if len(opts) == 0 {
|
||||
return fullPath
|
||||
}
|
||||
return filepath.Join(append([]string{fullPath}, opts...)...)
|
||||
}
|
||||
|
||||
func IsDirectory(path string) bool {
|
||||
|
||||
@ -4,7 +4,6 @@ import (
|
||||
"fmt"
|
||||
slog "log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
@ -18,8 +17,8 @@ var logfile *os.File
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
logPath := filepath.Join(GetCurrentDir(), LOG_PATH)
|
||||
logfile, err = os.OpenFile(filepath.Join(logPath, "access.log"), os.O_APPEND|os.O_WRONLY|os.O_CREATE, os.ModePerm)
|
||||
logPath := GetAbsolutePath(LOG_PATH)
|
||||
logfile, err = os.OpenFile(GetAbsolutePath(logPath, "access.log"), os.O_APPEND|os.O_WRONLY|os.O_CREATE, os.ModePerm)
|
||||
if err != nil {
|
||||
slog.Printf("ERROR log file: %+v", err)
|
||||
return
|
||||
|
||||
@ -3,14 +3,13 @@ package ssl
|
||||
import (
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
var keyPEMPath string = filepath.Join(GetCurrentDir(), CERT_PATH, "key.pem")
|
||||
var certPEMPath string = filepath.Join(GetCurrentDir(), CERT_PATH, "cert.pem")
|
||||
var keyPEMPath string = GetAbsolutePath(CERT_PATH, "key.pem")
|
||||
var certPEMPath string = GetAbsolutePath(CERT_PATH, "cert.pem")
|
||||
|
||||
func init() {
|
||||
os.MkdirAll(filepath.Join(GetCurrentDir(), CERT_PATH), os.ModePerm)
|
||||
os.MkdirAll(GetAbsolutePath(CERT_PATH), os.ModePerm)
|
||||
}
|
||||
|
||||
func Clear() {
|
||||
|
||||
@ -8,12 +8,11 @@ import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
var logpath = filepath.Join(GetCurrentDir(), LOG_PATH, "access.log")
|
||||
var logpath = GetAbsolutePath(LOG_PATH, "access.log")
|
||||
|
||||
func AdminSessionGet(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
if admin := Config.Get("auth.admin").String(); admin == "" {
|
||||
|
||||
@ -4,10 +4,9 @@ import (
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
var configpath = filepath.Join(GetCurrentDir(), CONFIG_PATH, "config.json")
|
||||
var configpath = GetAbsolutePath(CONFIG_PATH, "config.json")
|
||||
|
||||
func PrivateConfigHandler(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
SendSuccessResult(res, &Config)
|
||||
|
||||
@ -31,7 +31,7 @@ var (
|
||||
|
||||
func init() {
|
||||
FileCache = NewAppCache()
|
||||
cachePath := filepath.Join(GetCurrentDir(), TMP_PATH)
|
||||
cachePath := GetAbsolutePath(TMP_PATH)
|
||||
FileCache.OnEvict(func(key string, value interface{}) {
|
||||
os.RemoveAll(filepath.Join(cachePath, key))
|
||||
})
|
||||
@ -235,7 +235,7 @@ func FileCat(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
tmpPath := filepath.Join(GetCurrentDir(), TMP_PATH, "file_"+QuickString(20)+".dat")
|
||||
tmpPath := GetAbsolutePath(TMP_PATH, "file_"+QuickString(20)+".dat")
|
||||
f, err := os.OpenFile(tmpPath, os.O_RDWR|os.O_CREATE, os.ModePerm)
|
||||
if err != nil {
|
||||
Log.Debug("cat::range0 '%s'", err.Error())
|
||||
|
||||
@ -5,7 +5,6 @@ import (
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
func ReportHandler(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
@ -24,7 +23,7 @@ func HealthHandler(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
res.Header().Set("Access-Control-Allow-Origin", "*")
|
||||
// CHECK 1: open the config file
|
||||
file, err := os.OpenFile(
|
||||
filepath.Join(GetCurrentDir(), CONFIG_PATH, "config.json"),
|
||||
GetAbsolutePath(CONFIG_PATH, "config.json"),
|
||||
os.O_RDWR, os.ModePerm,
|
||||
)
|
||||
if err != nil {
|
||||
|
||||
@ -9,7 +9,6 @@ import (
|
||||
"net/http"
|
||||
URL "net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
"text/template"
|
||||
@ -155,8 +154,8 @@ func AboutHandler(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
Version: fmt.Sprintf("Filestash %s.%s", APP_VERSION, BUILD_DATE),
|
||||
CommitHash: BUILD_REF,
|
||||
Checksum: []string{
|
||||
hashFileContent(filepath.Join(GetCurrentDir(), "/filestash"), 0),
|
||||
hashFileContent(filepath.Join(GetCurrentDir(), CONFIG_PATH, "config.json"), 0),
|
||||
hashFileContent(GetAbsolutePath("filestash"), 0),
|
||||
hashFileContent(GetAbsolutePath(CONFIG_PATH, "config.json"), 0),
|
||||
},
|
||||
License: strings.ToUpper(LICENSE),
|
||||
Plugins: []string{
|
||||
|
||||
@ -5,14 +5,13 @@ import (
|
||||
. "github.com/mickael-kerjean/filestash/server/common"
|
||||
_ "modernc.org/sqlite"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
)
|
||||
|
||||
var DB *sql.DB
|
||||
|
||||
func init() {
|
||||
cachePath := filepath.Join(GetCurrentDir(), DB_PATH)
|
||||
cachePath := GetAbsolutePath(DB_PATH)
|
||||
os.MkdirAll(cachePath, os.ModePerm)
|
||||
var err error
|
||||
if DB, err = sql.Open("sqlite", cachePath+"/share.sql?_fk=true"); err != nil {
|
||||
|
||||
@ -28,7 +28,7 @@ var (
|
||||
)
|
||||
|
||||
func init() {
|
||||
cachePath = filepath.Join(GetCurrentDir(), DAVCachePath) + "/"
|
||||
cachePath = GetAbsolutePath(DAVCachePath) + "/"
|
||||
os.RemoveAll(cachePath)
|
||||
os.MkdirAll(cachePath, os.ModePerm)
|
||||
|
||||
|
||||
@ -12,7 +12,6 @@ import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@ -42,7 +41,7 @@ type BackblazeError struct {
|
||||
func init() {
|
||||
Backend.Register("backblaze", Backblaze{})
|
||||
BackblazeCache = NewAppCache()
|
||||
cachePath := filepath.Join(GetCurrentDir(), BackblazeCachePath)
|
||||
cachePath := GetAbsolutePath(BackblazeCachePath)
|
||||
os.RemoveAll(cachePath)
|
||||
os.MkdirAll(cachePath, os.ModePerm)
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ func init() {
|
||||
Backend.Register("git", Git{})
|
||||
|
||||
GitCache = NewAppCache()
|
||||
cachePath := filepath.Join(GetCurrentDir(), GitCachePath)
|
||||
cachePath := GetAbsolutePath(GitCachePath)
|
||||
os.RemoveAll(cachePath)
|
||||
os.MkdirAll(cachePath, os.ModePerm)
|
||||
GitCache.OnEvict(func(key string, value interface{}) {
|
||||
|
||||
@ -6,7 +6,6 @@ import (
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
@ -108,7 +107,7 @@ func init() {
|
||||
}
|
||||
image_caching()
|
||||
|
||||
cachePath := filepath.Join(GetCurrentDir(), ImageCachePath)
|
||||
cachePath := GetAbsolutePath(ImageCachePath)
|
||||
os.RemoveAll(cachePath)
|
||||
os.MkdirAll(cachePath, os.ModePerm)
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ type SearchIndexer struct {
|
||||
|
||||
func NewSearchIndexer(id string, b IBackend) SearchIndexer {
|
||||
s := SearchIndexer{
|
||||
DBPath: filepath.Join(GetCurrentDir(), FTS_PATH, "fts_"+id+".sql"),
|
||||
DBPath: GetAbsolutePath(FTS_PATH, "fts_"+id+".sql"),
|
||||
Id: id,
|
||||
Backend: b,
|
||||
FoldersUnknown: make(HeapDoc, 0, 1),
|
||||
|
||||
@ -19,7 +19,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
var SSL_PATH string = filepath.Join(GetCurrentDir(), CERT_PATH, "ssl")
|
||||
var SSL_PATH string = GetAbsolutePath(CERT_PATH, "ssl")
|
||||
|
||||
func init() {
|
||||
os.MkdirAll(SSL_PATH, os.ModePerm)
|
||||
|
||||
@ -11,7 +11,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
var TOR_PATH string = filepath.Join(GetCurrentDir(), CERT_PATH, "tor")
|
||||
var TOR_PATH string = GetAbsolutePath(CERT_PATH, "tor")
|
||||
|
||||
func init() {
|
||||
os.MkdirAll(TOR_PATH, os.ModePerm)
|
||||
|
||||
@ -12,7 +12,6 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@ -78,7 +77,7 @@ func init() {
|
||||
return
|
||||
}
|
||||
|
||||
cachePath := filepath.Join(GetCurrentDir(), VideoCachePath)
|
||||
cachePath := GetAbsolutePath(VideoCachePath)
|
||||
os.RemoveAll(cachePath)
|
||||
os.MkdirAll(cachePath, os.ModePerm)
|
||||
|
||||
@ -124,8 +123,7 @@ func hls_playlist(reader io.ReadCloser, ctx *App, res *http.ResponseWriter, req
|
||||
}
|
||||
|
||||
cacheName := "vid_" + GenerateID(ctx) + "_" + QuickHash(path, 10) + ".dat"
|
||||
cachePath := filepath.Join(
|
||||
GetCurrentDir(),
|
||||
cachePath := GetAbsolutePath(
|
||||
VideoCachePath,
|
||||
cacheName,
|
||||
)
|
||||
@ -172,8 +170,7 @@ func hls_transcode(ctx *App, res http.ResponseWriter, req *http.Request) {
|
||||
return
|
||||
}
|
||||
startTime := segmentNumber * HLS_SEGMENT_LENGTH
|
||||
cachePath := filepath.Join(
|
||||
GetCurrentDir(),
|
||||
cachePath := GetAbsolutePath(
|
||||
VideoCachePath,
|
||||
req.URL.Query().Get("path"),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user