mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-22 16:48:23 +01:00
33f05c6e0c
Going forward for new installations, config and data files will be stored at the platform default paths, as defined by [env-paths](https://www.npmjs.com/package/env-paths). For backwards compatibility, if the `~/.waveterm` or `WAVETERM_HOME` directory exists and contains valid data, it will be used. If this check fails, then `WAVETERM_DATA_HOME` and `WAVETERM_CONFIG_HOME` will be used. If these are not defined, then `XDG_DATA_HOME` and `XDG_CONFIG_HOME` will be used. Finally, if none of these are defined, the [env-paths](https://www.npmjs.com/package/env-paths) defaults will be used. As with the existing app, dev instances will write to `waveterm-dev` directories, while all others will write to `waveterm`.
30 lines
620 B
Go
30 lines
620 B
Go
// Copyright 2024, Command Line Inc.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
//go:build windows
|
|
|
|
package wavebase
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"path/filepath"
|
|
|
|
"github.com/alexflint/go-filemutex"
|
|
)
|
|
|
|
func AcquireWaveLock() (FDLock, error) {
|
|
dataHomeDir := GetWaveDataDir()
|
|
lockFileName := filepath.Join(dataHomeDir, WaveLockFile)
|
|
log.Printf("[base] acquiring lock on %s\n", lockFileName)
|
|
m, err := filemutex.New(lockFileName)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("filemutex new error: %w", err)
|
|
}
|
|
err = m.TryLock()
|
|
if err != nil {
|
|
return nil, fmt.Errorf("filemutex trylock error: %w", err)
|
|
}
|
|
return m, nil
|
|
}
|