-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmyproject
63 lines (51 loc) · 2.68 KB
/
myproject
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
#!/usr/bin/env bash
# -*- mode: shell-script; sh-shell: bash; sh-basic-offset: 4; sh-indentation: 4; coding: utf-8 -*-
# shellcheck shell=bash
set -o nounset -o errexit -o errtrace -o pipefail
project.load_task_library "shell"
# shellcheck disable=SC2154
readonly MYCMD_DIR="${MYPROJECT_BASE_DIR}/mycmd"
# shellcheck disable=SC2154
readonly BOOTSTRAP_DIR="${MYPROJECT_BASE_DIR}/bootstrap"
# shellcheck disable=SC2154
readonly TEMPLATE_DIR="${MYPROJECT_BASE_DIR}/.chezmoitemplates"
# shellcheck disable=SC2154
readonly DATA_DIR="${MYPROJECT_BASE_DIR}/.chezmoidata"
project.register_fileset ALL_BASH_SCRIPTS
project.find_files_for_fileset ALL_BASH_SCRIPTS "${BOOTSTRAP_DIR}" "${MYCMD_DIR}" -type f
# shellcheck disable=SC2154
project.add_files_to_fileset ALL_BASH_SCRIPTS "${MYPROJECT_PROJECT_FILE}"
project.register_task_with_fileset list-all-bash-scripts project.list-files ALL_BASH_SCRIPTS
project.register_task_with_fileset format-all-bash-scripts project:shell.format ALL_BASH_SCRIPTS
project.register_task_with_fileset lint-all-bash-scripts project:shell.lint ALL_BASH_SCRIPTS
project.register_fileset ALL_COMMAND_GROUPS
project.find_files_for_fileset ALL_COMMAND_GROUPS "${MYCMD_DIR}" -name "*-lib" -type f
project.register_task_with_fileset list-all-command-groups project.list-files ALL_COMMAND_GROUPS
project.register_task_with_fileset format-all-command-groups project:shell.format ALL_COMMAND_GROUPS
project.register_task_with_fileset lint-all-command-groups project:shell.lint ALL_COMMAND_GROUPS
project.register_fileset ALL_COMMANDS
project.find_files_for_fileset ALL_COMMANDS "${MYCMD_DIR}" -type f ! -name "*-lib"
project.register_task_with_fileset list-all-commands project.list-files ALL_COMMANDS
project.register_task_with_fileset format-all-commands project:shell.format ALL_COMMANDS
project.register_task_with_fileset lint-all-commands project:shell.lint ALL_COMMANDS
mycmd.defer_at_startup mycmd.init_bin chezmoi
if mycmd.is_mac_os; then
mycmd.defer_at_startup mycmd.init_bin brew
function diff-packages-toml() {
# shellcheck disable=SC2312
diff \
<(mycmd.bin_execute brew bundle dump --force --file=- 2>/dev/null | sort -u) \
<(mycmd.bin_execute chezmoi execute-template <"${TEMPLATE_DIR}/Brewfile" | sort -u)
}
project.register_task diff-packages-toml
mycmd.defer_at_startup mycmd.init_bin toml-sort
function format-packages-toml() {
mycmd.bin_execute toml-sort --all --in-place --sort-first taps,brews,casks "${DATA_DIR}/packages.toml"
}
project.register_task format-packages-toml
fi
function apply-changes() {
mycmd.bin_execute chezmoi apply -v
}
project.register_task apply-changes
project.register_default_task apply-changes