/
functionality.sh
executable file
·71 lines (45 loc) · 1.87 KB
/
functionality.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env bash
set -e
# Debugging configuration defaults.
readonly configDefaultDebug=false
configDebug="$configDefaultDebug"
# Fundamental configuration defaults.
readonly configDefaultConfigFolder="${HOME}/.np"
configConfigFolder="$configDefaultConfigFolder"
configDefaultConfigFile="${configConfigFolder}/config.sh"
configConfigFile="$configDefaultConfigFile"
ensureConfigFoldersAndFilesExist
# Keep track of lock/pid files.
declare -a pidFilesCreatedByThisInstance
declare -a pidsCreatedByThisInstance
declare -a pidMessagesCreatedByThisInstance
{ trap 'onExit' EXIT; }
# Lock/pid files defaults.
readonly configDefaultPidFile="${configConfigFolder}/.pidfile~"
configPidFile="$configDefaultPidFile"
readonly configDefaultDaemonPidFile="${configConfigFolder}/.daemonpidfile~"
configDaemonPidFile="$configDefaultDaemonPidFile"
readonly configDefaultExternalPlayerPidFile="${configConfigFolder}/.externalplayerpidfile~"
configExternalPlayerPidFile="$configDefaultExternalPlayerPidFile"
# File configuration defaults.
configDefaultQueueFile="${configConfigFolder}/queue.pls"
configQueueFile="$configDefaultQueueFile"
configDefaultHistoryFile="${configConfigFolder}/history.pls"
configHistoryFile="$configDefaultHistoryFile"
configDefaultModeFile="${configConfigFolder}/.mode"
configModeFile="$configDefaultModeFile"
configDefaultPlayingFile="${configConfigFolder}/.playing"
configPlayingFile="$configDefaultPlayingFile"
ensureOtherFoldersAndFilesExist
# Advanced configuration defaults.
readonly configDefaultCacheFileName=".np.cache~"
configCacheFileName="$configDefaultCacheFileName"
# Normal configuration defaults.
configDefaultUseCache=true
configUseCache="$configDefaultUseCache"
configDefaultNumsounds=10
configNumsounds="$configDefaultNumsounds"
configDefaultOrder="shuffle"
configOrder="$configDefaultOrder"
# Allow $configConfigFile to override above configuration.
readConfig