-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
93 lines (84 loc) · 3.08 KB
/
Taskfile.yml
File metadata and controls
93 lines (84 loc) · 3.08 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
version: '3'
vars:
# Use XDG paths with fallbacks
XDG_BIN_HOME: '{{default .XDG_BIN_HOME (joinPath .HOME "/.local/bin")}}'
XDG_CONFIG_HOME: '{{default .XDG_CONFIG_HOME (joinPath .HOME "/.config")}}'
XDG_DATA_HOME: '{{default .XDG_DATA_HOME (joinPath .HOME "/.local/share")}}'
XDG_LIB_HOME: '{{default .XDG_LIB_HOME (joinPath .HOME "/.local/lib")}}'
# Installation directories
BINDIR: '{{.XDG_BIN_HOME}}'
APPSDIR: '{{joinPath .XDG_DATA_HOME "/applications"}}'
RUBY_LIB_DIR: '{{joinPath .XDG_LIB_HOME "/ruby/site_ruby"}}'
MPV_SCRIPTS_DIR: '{{joinPath .XDG_CONFIG_HOME "/mpv/scripts"}}'
tasks:
default:
desc: Show available tasks
cmds:
- task --list
mkdir:
desc: Create necessary directories
internal: true
cmds:
- mkdir -p {{.BINDIR}} {{.APPSDIR}} {{.RUBY_LIB_DIR}} {{.MPV_SCRIPTS_DIR}}
install:
desc: Install playtag, desktop file, and player scripts
summary: |
Installs all components to their respective XDG directories:
- playtag executable to {{.BINDIR}}
- Desktop file to {{.APPSDIR}}
- Ruby libraries to {{.RUBY_LIB_DIR}}
- MPV script to {{.MPV_SCRIPTS_DIR}}
deps: [mkdir]
cmds:
- cp -f bin/playtag {{.BINDIR}}/
- cp -f lib/playtag.rb {{.RUBY_LIB_DIR}}/
- cp -rf lib/playtag {{.RUBY_LIB_DIR}}/
- cp -f vlc+playtag.desktop {{.APPSDIR}}
- cp -f mpv/playtag_lib.lua {{.MPV_SCRIPTS_DIR}}
- cp -f mpv/playtag.lua {{.MPV_SCRIPTS_DIR}}
- echo "Installation complete!"
lninstall:
desc: Install playtag and related files using symlinks
summary: Creates symlinks instead of copying files
deps: [mkdir]
cmds:
- ln -fs {{.TASKFILE_DIR}}/bin/playtag {{.BINDIR}}/
- ln -fs {{.TASKFILE_DIR}}/lib/playtag.rb {{.RUBY_LIB_DIR}}/
- ln -fs {{.TASKFILE_DIR}}/lib/playtag {{.RUBY_LIB_DIR}}/
- ln -fs {{.TASKFILE_DIR}}/vlc+playtag.desktop {{.APPSDIR}}
- ln -fs {{.TASKFILE_DIR}}/mpv/playtag_lib.lua {{.MPV_SCRIPTS_DIR}}
- ln -fs {{.TASKFILE_DIR}}/mpv/playtag.lua {{.MPV_SCRIPTS_DIR}}
- echo "Symlink installation complete!"
status:
- test -L {{.BINDIR}}/playtag
- test -L {{.RUBY_LIB_DIR}}/playtag.rb
- test -L {{.RUBY_LIB_DIR}}/playtag
- test -L {{.APPSDIR}}/vlc+playtag.desktop
- test -L {{.MPV_SCRIPTS_DIR}}/playtag_lib.lua
- test -L {{.MPV_SCRIPTS_DIR}}/playtag.lua
remove:
desc: Remove playtag and related files
summary: Removes all installed components
cmds:
- rm -f {{.BINDIR}}/playtag
- rm -f {{.RUBY_LIB_DIR}}/playtag
- rm -f {{.RUBY_LIB_DIR}}/playtag.rb
- rm -f {{.APPSDIR}}/vlc+playtag.desktop
- rm -f {{.MPV_SCRIPTS_DIR}}/playtag*.lua
- echo "Removal complete!"
doc:
desc: Generate README.html from README.md
sources:
- README.md
generates:
- README.html
cmds:
- pandoc -s -f markdown_github README.md -o README.html
- echo "Generated README.html"
status:
- test README.md -nt README.html
clean:
desc: Remove generated files
cmds:
- rm -f README.html
- echo "Cleanup complete!"