galaaz 2.1.6 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/blogs/galaaz_ggplot/galaaz_ggplot.Rmd +63 -58
- data/blogs/galaaz_ggplot/galaaz_ggplot.log +59 -68
- data/blogs/galaaz_ggplot/galaaz_ggplot.md +91 -84
- data/blogs/galaaz_ggplot/galaaz_ggplot.tex +125 -94
- data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/midwest_rb.png +0 -0
- data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/scatter_plot_rb.png +0 -0
- data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-markdown_github/midwest_rb.png +0 -0
- data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-markdown_github/scatter_plot_rb.png +0 -0
- data/blogs/gknit/gknit.Rmd +33 -28
- data/blogs/gknit/gknit.md +47 -42
- data/blogs/gknit/gknit.tex +1368 -0
- data/blogs/gknit/gknit_files/figure-html/bubble-1.png +0 -0
- data/blogs/gknit/gknit_files/figure-html/diverging_bar.png +0 -0
- data/blogs/gknit/gknit_files/figure-latex/bubble-1.png +0 -0
- data/blogs/gknit/gknit_files/gknit_files/figure-latex/bubble-1.png +0 -0
- data/blogs/manual/manual.Rmd +129 -60
- data/blogs/manual/manual.log +289 -545
- data/blogs/manual/manual.md +551 -467
- data/blogs/manual/manual.tex +1059 -485
- data/blogs/manual/manual_files/figure-html/bubble-1.png +0 -0
- data/blogs/manual/manual_files/figure-latex/bubble-1.png +0 -0
- data/blogs/manual/manual_files/figure-markdown_github/bubble-1.png +0 -0
- data/blogs/manual/manual_files/figure-markdown_github/diverging_bar.png +0 -0
- data/blogs/manual/manual_files/manual_files/figure-latex/bubble-1.png +0 -0
- data/blogs/nse_dplyr/nse_dplyr.Rmd +28 -7
- data/blogs/nse_dplyr/nse_dplyr.log +49 -153
- data/blogs/nse_dplyr/nse_dplyr.md +676 -705
- data/blogs/nse_dplyr/nse_dplyr.tex +1589 -0
- data/blogs/oh_my/oh_my.Rmd +193 -55
- data/blogs/oh_my/oh_my.log +265 -95
- data/blogs/oh_my/oh_my.md +236 -95
- data/blogs/oh_my/oh_my.tex +1976 -68
- data/blogs/ruby_plot/ruby_plot.Rmd +42 -34
- data/blogs/ruby_plot/ruby_plot.log +101 -99
- data/blogs/ruby_plot/ruby_plot.md +52 -46
- data/blogs/ruby_plot/ruby_plot.tex +134 -102
- data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_decorations.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/dose_len.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/facet_by_delivery.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/facet_by_dose.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_by_delivery_color.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_by_delivery_color2.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_with_decorations.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_with_jitter.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_with_points.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/final_box_plot.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/final_violin_plot.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/figure-latex/violin_with_jitter.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/dose_len.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/facet_by_delivery.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/facet_by_dose.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/facets_by_delivery_color.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/facets_by_delivery_color2.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/facets_with_decorations.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/facets_with_jitter.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/facets_with_points.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/final_box_plot.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/final_violin_plot.png +0 -0
- data/blogs/ruby_plot/ruby_plot_files/ruby_plot_files/figure-latex/violin_with_jitter.png +0 -0
- data/lib/galaaz/cli.rb +206 -11
- data/script/omarchy/README.md +94 -0
- data/script/omarchy/debug-galaaz.sh +91 -0
- data/script/omarchy/galaaz-add.sh +176 -0
- data/script/omarchy/galaaz-gknit.sh +73 -0
- data/script/omarchy/galaaz-guide.sh +123 -0
- data/script/omarchy/install-galaaz.sh +308 -0
- data/script/omarchy/omarchy-menu.jsonc +92 -0
- data/script/omarchy/remove-galaaz.sh +34 -0
- data/sty/galaaz.sty +22 -0
- data/version.rb +1 -1
- metadata +27 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Safe/debug gknit for Omarchy: force HTML, log everything, keep the window open.
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# omarchy-galaaz-gknit [path/to/file.Rmd]
|
|
6
|
+
# omarchy-galaaz-gknit ~/galaaz-blogs/gknit/gknit.Rmd
|
|
7
|
+
#
|
|
8
|
+
# Many shipped blogs list pdf_document before html_document in YAML. A bare
|
|
9
|
+
# `gknit file.Rmd` then tries PDF first (LaTeX) — that often fails hard or OOMs
|
|
10
|
+
# a small VM. This wrapper always requests html_document and tees a log.
|
|
11
|
+
set -uo pipefail
|
|
12
|
+
|
|
13
|
+
LOG_DIR="${HOME}/.local/share/galaaz"
|
|
14
|
+
LOG="${LOG_DIR}/gknit-debug.log"
|
|
15
|
+
mkdir -p "${LOG_DIR}"
|
|
16
|
+
|
|
17
|
+
RMD="${1:-${HOME}/galaaz-blogs/oh_my/oh_my.Rmd}"
|
|
18
|
+
if [[ ! -f "${RMD}" ]]; then
|
|
19
|
+
echo "Missing Rmd: ${RMD}"
|
|
20
|
+
echo "Press Enter to close..."
|
|
21
|
+
read -r _ || true
|
|
22
|
+
exit 1
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
{
|
|
26
|
+
echo "=== gknit debug $(date -Iseconds) ==="
|
|
27
|
+
echo "rmd: ${RMD}"
|
|
28
|
+
echo "cwd: $(pwd)"
|
|
29
|
+
echo "forcing: --output_format html_document"
|
|
30
|
+
echo "log: ${LOG}"
|
|
31
|
+
command -v pandoc >/dev/null && pandoc --version | head -1 || echo "pandoc: MISSING"
|
|
32
|
+
command -v gknit >/dev/null && echo "gknit: $(command -v gknit)" || echo "gknit: via mise/wrapper"
|
|
33
|
+
free -h 2>/dev/null | head -2 || true
|
|
34
|
+
echo
|
|
35
|
+
} | tee "${LOG}"
|
|
36
|
+
|
|
37
|
+
# Prefer HTML explicitly — do not let YAML's pdf_document win.
|
|
38
|
+
set +e
|
|
39
|
+
(
|
|
40
|
+
cd "$(dirname "${RMD}")" || exit 1
|
|
41
|
+
base="$(basename "${RMD}")"
|
|
42
|
+
if command -v mise >/dev/null 2>&1; then
|
|
43
|
+
mise x ruby -- gknit --output_format html_document --no_clean "${base}"
|
|
44
|
+
else
|
|
45
|
+
gknit --output_format html_document --no_clean "${base}"
|
|
46
|
+
fi
|
|
47
|
+
) 2>&1 | tee -a "${LOG}"
|
|
48
|
+
st=${PIPESTATUS[0]}
|
|
49
|
+
set -e
|
|
50
|
+
|
|
51
|
+
{
|
|
52
|
+
echo
|
|
53
|
+
echo "exit: ${st}"
|
|
54
|
+
echo "--- recent kernel/OOM hints (if any) ---"
|
|
55
|
+
dmesg -T 2>/dev/null | grep -iE 'oom|killed process|out of memory' | tail -5 || echo "(no dmesg access or no OOM lines)"
|
|
56
|
+
html="${RMD%.Rmd}.html"
|
|
57
|
+
if [[ -f "${html}" ]]; then
|
|
58
|
+
echo "html: ${html}"
|
|
59
|
+
else
|
|
60
|
+
echo "html: not found (knit likely failed before write)"
|
|
61
|
+
fi
|
|
62
|
+
echo "FULL LOG: ${LOG}"
|
|
63
|
+
} | tee -a "${LOG}"
|
|
64
|
+
|
|
65
|
+
echo
|
|
66
|
+
if [[ "${st}" -ne 0 ]]; then
|
|
67
|
+
echo "FAILED (exit ${st}). Scroll up or: less ${LOG}"
|
|
68
|
+
else
|
|
69
|
+
echo "OK."
|
|
70
|
+
fi
|
|
71
|
+
echo "Press Enter to close (so a crash mid-run still leaves this log on disk)..."
|
|
72
|
+
read -r _ || true
|
|
73
|
+
exit "${st}"
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Omarchy helpers for Galaaz discovery (docs + example knits).
|
|
3
|
+
# Installed as ~/.local/bin/omarchy-galaaz-guide (and thin aliases).
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
DOCS_WEB="https://rbotafogo.github.io/galaaz/"
|
|
7
|
+
DOCS_GH="https://github.com/rbotafogo/galaaz"
|
|
8
|
+
DOCS_README="https://github.com/rbotafogo/galaaz/blob/galaaz2_0/README.md"
|
|
9
|
+
DOCS_OMARCHY="https://github.com/rbotafogo/galaaz/blob/galaaz2_0/script/omarchy/README.md"
|
|
10
|
+
BLOGS="${HOME}/galaaz-blogs"
|
|
11
|
+
GALAAZ_BIN="${HOME}/.local/bin/galaaz"
|
|
12
|
+
[[ -x "${GALAAZ_BIN}" ]] || GALAAZ_BIN="galaaz"
|
|
13
|
+
|
|
14
|
+
open_url() {
|
|
15
|
+
local url="$1"
|
|
16
|
+
# Omarchy Learn menu uses launch-webapp; try browser helpers before xdg-open.
|
|
17
|
+
if command -v omarchy-launch-webapp >/dev/null 2>&1; then
|
|
18
|
+
omarchy-launch-webapp "${url}"
|
|
19
|
+
elif command -v omarchy-launch-browser >/dev/null 2>&1; then
|
|
20
|
+
omarchy-launch-browser "${url}"
|
|
21
|
+
elif command -v omarchy-launch-web >/dev/null 2>&1; then
|
|
22
|
+
omarchy-launch-web "${url}"
|
|
23
|
+
elif command -v xdg-open >/dev/null 2>&1; then
|
|
24
|
+
xdg-open "${url}" >/dev/null 2>&1 &
|
|
25
|
+
elif command -v open >/dev/null 2>&1; then
|
|
26
|
+
open "${url}"
|
|
27
|
+
else
|
|
28
|
+
echo "Open in a browser: ${url}"
|
|
29
|
+
return 1
|
|
30
|
+
fi
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
cmd="${1:-tips}"
|
|
34
|
+
case "${cmd}" in
|
|
35
|
+
tips|guide|help|"")
|
|
36
|
+
cat <<EOF
|
|
37
|
+
|
|
38
|
+
Galaaz — what you can do next
|
|
39
|
+
=============================
|
|
40
|
+
|
|
41
|
+
Core is installed. Blog sources live in:
|
|
42
|
+
${BLOGS}
|
|
43
|
+
|
|
44
|
+
Documentation
|
|
45
|
+
Website: ${DOCS_WEB}
|
|
46
|
+
GitHub: ${DOCS_GH}
|
|
47
|
+
README: ${DOCS_README}
|
|
48
|
+
|
|
49
|
+
After: galaaz add knit (Install → Development → Galaaz → Knit)
|
|
50
|
+
Needs system pandoc (Omarchy installs it via omarchy-galaaz-add knit).
|
|
51
|
+
Example knits (HTML — force html_document; bare gknit may try PDF first):
|
|
52
|
+
gknit --output_format html_document ${BLOGS}/oh_my/oh_my.Rmd
|
|
53
|
+
gknit --output_format html_document ${BLOGS}/gknit/gknit.Rmd
|
|
54
|
+
omarchy-galaaz-gknit ${BLOGS}/gknit/gknit.Rmd # logged, HTML-only, waits
|
|
55
|
+
|
|
56
|
+
Or from the menu: Knit demo (oh_my)
|
|
57
|
+
|
|
58
|
+
Other add-ons
|
|
59
|
+
galaaz add arrow # Apache Arrow
|
|
60
|
+
galaaz add ledger # R-on-Rails demo app → ~/r_on_rails_ledger && bin/dev
|
|
61
|
+
galaaz add examples # Ruby examples → ~/galaaz-examples
|
|
62
|
+
galaaz add tex # TinyTeX / PDF (large)
|
|
63
|
+
galaaz add bio # Bioconductor DESeq2 (large)
|
|
64
|
+
|
|
65
|
+
Check: galaaz doctor
|
|
66
|
+
Menu: Super+Space → Install → Development → Galaaz
|
|
67
|
+
|
|
68
|
+
Heavy CRAN installs / long R (gem 2.1.8+): R::Job keeps the bridge free.
|
|
69
|
+
See README → “Background R jobs (R::Job)” (${DOCS_README})
|
|
70
|
+
|
|
71
|
+
EOF
|
|
72
|
+
if [[ -d "${BLOGS}" ]]; then
|
|
73
|
+
echo "Blog folders found:"
|
|
74
|
+
ls -1 "${BLOGS}" 2>/dev/null | sed 's/^/ /' || true
|
|
75
|
+
echo
|
|
76
|
+
fi
|
|
77
|
+
echo "Press Enter to close..."
|
|
78
|
+
read -r _ || true
|
|
79
|
+
;;
|
|
80
|
+
docs|web)
|
|
81
|
+
echo "Opening ${DOCS_WEB}"
|
|
82
|
+
open_url "${DOCS_WEB}"
|
|
83
|
+
;;
|
|
84
|
+
github|gh)
|
|
85
|
+
echo "Opening ${DOCS_GH}"
|
|
86
|
+
open_url "${DOCS_GH}"
|
|
87
|
+
;;
|
|
88
|
+
knit-demo|demo)
|
|
89
|
+
rmd="${BLOGS}/oh_my/oh_my.Rmd"
|
|
90
|
+
if [[ ! -f "${rmd}" ]]; then
|
|
91
|
+
echo "Missing ${rmd}"
|
|
92
|
+
echo "Run core install first (blogs init), then: galaaz add knit"
|
|
93
|
+
exit 1
|
|
94
|
+
fi
|
|
95
|
+
if [[ ! -f "${HOME}/.config/galaaz/profiles/knit" ]]; then
|
|
96
|
+
echo "Knit profile not installed yet. Run: galaaz add knit"
|
|
97
|
+
exit 1
|
|
98
|
+
fi
|
|
99
|
+
# Prefer debug wrapper (HTML-only + log) when installed.
|
|
100
|
+
if [[ -x "${HOME}/.local/bin/omarchy-galaaz-gknit" ]]; then
|
|
101
|
+
exec "${HOME}/.local/bin/omarchy-galaaz-gknit" "${rmd}"
|
|
102
|
+
fi
|
|
103
|
+
echo "Knitting demo (HTML only): ${rmd}"
|
|
104
|
+
if command -v mise >/dev/null 2>&1; then
|
|
105
|
+
mise x ruby -- gknit --output_format html_document "${rmd}"
|
|
106
|
+
elif command -v gknit >/dev/null 2>&1; then
|
|
107
|
+
gknit --output_format html_document "${rmd}"
|
|
108
|
+
else
|
|
109
|
+
ruby -S gknit --output_format html_document "${rmd}"
|
|
110
|
+
fi
|
|
111
|
+
html="${BLOGS}/oh_my/oh_my.html"
|
|
112
|
+
if [[ -f "${html}" ]]; then
|
|
113
|
+
echo "Wrote ${html}"
|
|
114
|
+
open_url "file://${html}"
|
|
115
|
+
fi
|
|
116
|
+
echo "Press Enter to close..."
|
|
117
|
+
read -r _ || true
|
|
118
|
+
;;
|
|
119
|
+
*)
|
|
120
|
+
echo "Usage: omarchy-galaaz-guide [tips|docs|github|knit-demo]"
|
|
121
|
+
exit 1
|
|
122
|
+
;;
|
|
123
|
+
esac
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Omarchy-shaped core installer for Galaaz (R-on-Rails).
|
|
3
|
+
# omarchy:summary=Install Galaaz (R-on-Rails)
|
|
4
|
+
# omarchy:name=galaaz
|
|
5
|
+
#
|
|
6
|
+
# Debug log (always written, even if TUI tee fails):
|
|
7
|
+
# ~/.local/share/galaaz/install-core.log
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
# Optional pin: GALAAZ_GEM_VERSION=2.1.2 omarchy-install-galaaz
|
|
11
|
+
# Default: latest from RubyGems (Omarchy/Rails shape).
|
|
12
|
+
GALAAZ_GEM_VERSION="${GALAAZ_GEM_VERSION:-}"
|
|
13
|
+
LOG_DIR="${HOME}/.local/share/galaaz"
|
|
14
|
+
LOG="${LOG_DIR}/install-core.log"
|
|
15
|
+
mkdir -p "${LOG_DIR}"
|
|
16
|
+
|
|
17
|
+
# Plain file logging — process-substitution tee often dies under omarchy-launch-tui.
|
|
18
|
+
: >"${LOG}"
|
|
19
|
+
log() {
|
|
20
|
+
# shellcheck disable=SC3037
|
|
21
|
+
echo -e "$*" | tee -a "${LOG}"
|
|
22
|
+
}
|
|
23
|
+
log_cmd() {
|
|
24
|
+
log "+ $*"
|
|
25
|
+
# Capture status without aborting set -e mid-pipeline awkwardly
|
|
26
|
+
set +e
|
|
27
|
+
"$@" >>"${LOG}" 2>&1
|
|
28
|
+
local st=$?
|
|
29
|
+
set -e
|
|
30
|
+
if [[ ${st} -ne 0 ]]; then
|
|
31
|
+
log "ERROR: command failed (exit ${st}): $*"
|
|
32
|
+
log "---- last 40 log lines ----"
|
|
33
|
+
tail -n 40 "${LOG}" | tee -a /dev/tty 2>/dev/null || tail -n 40 "${LOG}"
|
|
34
|
+
fi
|
|
35
|
+
return "${st}"
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
on_err() {
|
|
39
|
+
local st=$?
|
|
40
|
+
log ""
|
|
41
|
+
log "FAILED (exit ${st}) at line ${BASH_LINENO[0]:-?} — see full log:"
|
|
42
|
+
log " ${LOG}"
|
|
43
|
+
log "Copy out with: cat ${LOG}"
|
|
44
|
+
exit "${st}"
|
|
45
|
+
}
|
|
46
|
+
trap on_err ERR
|
|
47
|
+
|
|
48
|
+
log "=== galaaz core install $(date -Iseconds) ==="
|
|
49
|
+
log "log file: ${LOG}"
|
|
50
|
+
log "script: ${BASH_SOURCE[0]}"
|
|
51
|
+
log "pwd: $(pwd)"
|
|
52
|
+
log "user: $(id -un) home=${HOME}"
|
|
53
|
+
log "PATH: ${PATH}"
|
|
54
|
+
log "GALAAZ_GEM_VERSION=${GALAAZ_GEM_VERSION:-latest}"
|
|
55
|
+
log ""
|
|
56
|
+
|
|
57
|
+
pkg_add() {
|
|
58
|
+
if command -v omarchy-pkg-add >/dev/null 2>&1; then
|
|
59
|
+
log_cmd omarchy-pkg-add "$@"
|
|
60
|
+
elif command -v pacman >/dev/null 2>&1; then
|
|
61
|
+
log_cmd sudo pacman -S --noconfirm --needed "$@"
|
|
62
|
+
else
|
|
63
|
+
log "WARN: skipping Arch packages ($*); install GNU R + build tools yourself"
|
|
64
|
+
fi
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
log "==> packages"
|
|
68
|
+
pkg_add r make gcc gcc-libs libyaml pkgconf
|
|
69
|
+
|
|
70
|
+
if ! command -v ruby >/dev/null 2>&1; then
|
|
71
|
+
if command -v mise >/dev/null 2>&1; then
|
|
72
|
+
mise settings add ruby.compile false 2>/dev/null || true
|
|
73
|
+
mise settings add idiomatic_version_file_enable_tools ruby 2>/dev/null || true
|
|
74
|
+
log_cmd mise use --global ruby@latest
|
|
75
|
+
else
|
|
76
|
+
log "ERROR: ruby not found and mise missing"
|
|
77
|
+
exit 1
|
|
78
|
+
fi
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
if command -v mise >/dev/null 2>&1; then
|
|
82
|
+
if ! mise x ruby -- ruby -e 'exit(RUBY_ENGINE == "ruby" ? 0 : 1)' 2>/dev/null; then
|
|
83
|
+
log "Active Ruby is not CRuby; installing MRI via mise..."
|
|
84
|
+
mise use --global ruby@3.4 2>/dev/null || mise use --global ruby@latest
|
|
85
|
+
fi
|
|
86
|
+
if ! mise x ruby -- ruby -e 'exit(RUBY_ENGINE == "ruby" ? 0 : 1)'; then
|
|
87
|
+
log "ERROR: need CRuby (MRI) for the gatekeeper .so"
|
|
88
|
+
mise x ruby -- ruby -v >>"${LOG}" 2>&1 || true
|
|
89
|
+
exit 1
|
|
90
|
+
fi
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
if ! command -v R >/dev/null 2>&1 || ! command -v Rscript >/dev/null 2>&1; then
|
|
94
|
+
log "ERROR: R/Rscript missing after package install"
|
|
95
|
+
log "which R: $(command -v R || echo none) Rscript: $(command -v Rscript || echo none)"
|
|
96
|
+
exit 1
|
|
97
|
+
fi
|
|
98
|
+
|
|
99
|
+
log "R: $(R --version 2>/dev/null | head -1)"
|
|
100
|
+
log "RHOME: $(R RHOME 2>/dev/null || echo '?')"
|
|
101
|
+
log "ruby: $(mise x ruby -- ruby -v 2>/dev/null || ruby -v)"
|
|
102
|
+
log "engine: $(mise x ruby -- ruby -e 'print RUBY_ENGINE' 2>/dev/null || ruby -e 'print RUBY_ENGINE')"
|
|
103
|
+
|
|
104
|
+
# Arch/Omarchy: system R library (/usr/lib/R/library) is root-only.
|
|
105
|
+
# Without a user lib, install.packages("Rcpp") fails with "lib is not writable".
|
|
106
|
+
ensure_user_r_lib() {
|
|
107
|
+
export R_LIBS_USER="${R_LIBS_USER:-${HOME}/.local/lib/R/library}"
|
|
108
|
+
mkdir -p "${R_LIBS_USER}"
|
|
109
|
+
local renviron="${HOME}/.Renviron"
|
|
110
|
+
if [[ ! -f "${renviron}" ]] || ! grep -q '^R_LIBS_USER=' "${renviron}" 2>/dev/null; then
|
|
111
|
+
echo "R_LIBS_USER=${R_LIBS_USER}" >>"${renviron}"
|
|
112
|
+
fi
|
|
113
|
+
log "R_LIBS_USER=${R_LIBS_USER}"
|
|
114
|
+
log "Renviron: ${renviron}"
|
|
115
|
+
}
|
|
116
|
+
ensure_user_r_lib
|
|
117
|
+
|
|
118
|
+
{
|
|
119
|
+
echo "---- R CMD config ----"
|
|
120
|
+
R CMD config CXX || true
|
|
121
|
+
R CMD config CXXFLAGS || true
|
|
122
|
+
R CMD config --cppflags || true
|
|
123
|
+
R CMD config --ldflags || true
|
|
124
|
+
echo "---- which ----"
|
|
125
|
+
command -v make; command -v gcc; command -v g++; command -v mise || true
|
|
126
|
+
command -v ruby; command -v gem || true
|
|
127
|
+
mise ls 2>/dev/null || true
|
|
128
|
+
echo "---- .libPaths ----"
|
|
129
|
+
Rscript -e '.libPaths()' || true
|
|
130
|
+
} >>"${LOG}" 2>&1
|
|
131
|
+
|
|
132
|
+
echo "gem: --no-document" >"${HOME}/.gemrc"
|
|
133
|
+
|
|
134
|
+
run_ruby() {
|
|
135
|
+
if command -v mise >/dev/null 2>&1; then
|
|
136
|
+
mise x ruby -- "$@"
|
|
137
|
+
else
|
|
138
|
+
"$@"
|
|
139
|
+
fi
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
gem_root() {
|
|
143
|
+
run_ruby ruby -e "puts Gem::Specification.find_by_name('galaaz').full_gem_path"
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
gatekeeper_path() {
|
|
147
|
+
run_ruby ruby -e "puts File.join(Gem::Specification.find_by_name('galaaz').full_gem_path, 'ext', 'new_bridge', 'galaaz_gatekeeper.so')"
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
# Invoke gem CLI without `ruby -S galaaz` (that finds ~/.local/bin/galaaz wrapper).
|
|
151
|
+
galaaz_cli() {
|
|
152
|
+
run_ruby ruby -e 'load Gem.activate_bin_path("galaaz", "galaaz")' -- "$@"
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
install_wrapper() {
|
|
156
|
+
mkdir -p "${HOME}/.local/bin"
|
|
157
|
+
cat >"${HOME}/.local/bin/galaaz" <<'WRAP'
|
|
158
|
+
#!/bin/bash
|
|
159
|
+
set -euo pipefail
|
|
160
|
+
# Do not use `ruby -S galaaz`: PATH often includes this wrapper → LoadError.
|
|
161
|
+
if command -v mise >/dev/null 2>&1; then
|
|
162
|
+
exec mise x ruby -- ruby -e 'load Gem.activate_bin_path("galaaz", "galaaz")' -- "$@"
|
|
163
|
+
fi
|
|
164
|
+
exec ruby -e 'load Gem.activate_bin_path("galaaz", "galaaz")' -- "$@"
|
|
165
|
+
WRAP
|
|
166
|
+
chmod +x "${HOME}/.local/bin/galaaz"
|
|
167
|
+
log "wrapper: ${HOME}/.local/bin/galaaz"
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
run_ruby gem uninstall galaaz -x -a --ignore-dependencies >>"${LOG}" 2>&1 || true
|
|
171
|
+
if [[ -n "${GALAAZ_GEM_VERSION}" ]]; then
|
|
172
|
+
log "==> gem install galaaz -v ${GALAAZ_GEM_VERSION}"
|
|
173
|
+
set +e
|
|
174
|
+
run_ruby gem install galaaz -v "${GALAAZ_GEM_VERSION}" --no-document --source https://rubygems.org 2>&1 | tee -a "${LOG}"
|
|
175
|
+
st=${PIPESTATUS[0]}
|
|
176
|
+
set -e
|
|
177
|
+
[[ ${st} -eq 0 ]] || exit "${st}"
|
|
178
|
+
else
|
|
179
|
+
LATEST="$(curl -fsSL https://rubygems.org/api/v1/versions/galaaz/latest.json 2>/dev/null \
|
|
180
|
+
| sed -n 's/.*"version":"\([^"]*\)".*/\1/p' || true)"
|
|
181
|
+
if [[ -n "${LATEST}" ]]; then
|
|
182
|
+
log "==> gem install galaaz ${LATEST} (latest on RubyGems)"
|
|
183
|
+
else
|
|
184
|
+
log "==> gem install galaaz (latest on RubyGems)"
|
|
185
|
+
fi
|
|
186
|
+
set +e
|
|
187
|
+
run_ruby gem install galaaz --no-document --source https://rubygems.org 2>&1 | tee -a "${LOG}"
|
|
188
|
+
st=${PIPESTATUS[0]}
|
|
189
|
+
set -e
|
|
190
|
+
[[ ${st} -eq 0 ]] || exit "${st}"
|
|
191
|
+
fi
|
|
192
|
+
|
|
193
|
+
INSTALLED="$(run_ruby ruby -e "puts Gem::Specification.find_by_name('galaaz').version")"
|
|
194
|
+
log "installed galaaz ${INSTALLED}"
|
|
195
|
+
|
|
196
|
+
ROOT="$(gem_root)"
|
|
197
|
+
BRIDGE="${ROOT}/ext/new_bridge"
|
|
198
|
+
log "gem root: ${ROOT}"
|
|
199
|
+
log "bridge: ${BRIDGE}"
|
|
200
|
+
ls -la "${BRIDGE}" >>"${LOG}" 2>&1 || true
|
|
201
|
+
if [[ ! -f "${BRIDGE}/Makefile" ]]; then
|
|
202
|
+
log "ERROR: bridge Makefile missing: ${BRIDGE}/Makefile"
|
|
203
|
+
exit 1
|
|
204
|
+
fi
|
|
205
|
+
|
|
206
|
+
log "==> ensure Rcpp (CRAN, user library)"
|
|
207
|
+
log_cmd Rscript -e "
|
|
208
|
+
lib <- Sys.getenv('R_LIBS_USER')
|
|
209
|
+
if (!nzchar(lib)) lib <- file.path(Sys.getenv('HOME'), '.local', 'lib', 'R', 'library')
|
|
210
|
+
dir.create(lib, recursive=TRUE, showWarnings=FALSE)
|
|
211
|
+
.libPaths(c(lib, .libPaths()))
|
|
212
|
+
if (!requireNamespace('Rcpp', quietly=TRUE))
|
|
213
|
+
install.packages('Rcpp', lib=lib, repos='https://cloud.r-project.org')
|
|
214
|
+
cat('Rcpp=', requireNamespace('Rcpp', quietly=TRUE), ' lib=', lib, '\n', sep='')
|
|
215
|
+
if (!requireNamespace('Rcpp', quietly=TRUE)) quit(status=1)
|
|
216
|
+
"
|
|
217
|
+
|
|
218
|
+
log "==> build gatekeeper (make -C ext/new_bridge)"
|
|
219
|
+
rm -f "${BRIDGE}/galaaz_gatekeeper.so" "${BRIDGE}"/*.o
|
|
220
|
+
|
|
221
|
+
# Older gems hardcoded -L$(R_HOME)/lib -lR which fails on Arch (RHOME=/usr/lib64/R).
|
|
222
|
+
# 2.1.2+ ships a fixed Makefile; still override LDFLAGS for safety.
|
|
223
|
+
R_LDFLAGS="$(R CMD config --ldflags)"
|
|
224
|
+
log "R CMD config --ldflags: ${R_LDFLAGS}"
|
|
225
|
+
log "Rcpp include: $(Rscript -e "cat(system.file('include', package='Rcpp'))")"
|
|
226
|
+
if grep -q 'LDFLAGS := -L\$(R_HOME)/lib -lR' "${BRIDGE}/Makefile" 2>/dev/null; then
|
|
227
|
+
log "patching gem Makefile LDFLAGS for Arch/Omarchy"
|
|
228
|
+
sed -i 's|^LDFLAGS := -L\$(R_HOME)/lib -lR.*|LDFLAGS := \$(shell R CMD config --ldflags) -Wl,-rpath,\$(R_HOME)/lib|' "${BRIDGE}/Makefile" || true
|
|
229
|
+
fi
|
|
230
|
+
|
|
231
|
+
set +e
|
|
232
|
+
make -C "${BRIDGE}" all LDFLAGS="${R_LDFLAGS} -Wl,-rpath,$(R RHOME)/lib" 2>&1 | tee -a "${LOG}"
|
|
233
|
+
make_st=${PIPESTATUS[0]}
|
|
234
|
+
set -e
|
|
235
|
+
if [[ ${make_st} -ne 0 ]]; then
|
|
236
|
+
log "ERROR: make failed (exit ${make_st}) — retry verbose"
|
|
237
|
+
make -C "${BRIDGE}" all LDFLAGS="${R_LDFLAGS} -Wl,-rpath,$(R RHOME)/lib" 2>&1 | tee -a "${LOG}" || true
|
|
238
|
+
log "---- bridge dir ----"
|
|
239
|
+
ls -la "${BRIDGE}" 2>&1 | tee -a "${LOG}" || true
|
|
240
|
+
log "Full log: ${LOG}"
|
|
241
|
+
exit 1
|
|
242
|
+
fi
|
|
243
|
+
|
|
244
|
+
SO="$(gatekeeper_path)"
|
|
245
|
+
log "expected so: ${SO}"
|
|
246
|
+
ls -la "${SO}" >>"${LOG}" 2>&1 || true
|
|
247
|
+
if [[ ! -f "${SO}" ]]; then
|
|
248
|
+
log "ERROR: gatekeeper missing after make"
|
|
249
|
+
ls -la "${BRIDGE}" 2>&1 | tee -a "${LOG}" || true
|
|
250
|
+
exit 1
|
|
251
|
+
fi
|
|
252
|
+
log "gatekeeper OK: ${SO}"
|
|
253
|
+
|
|
254
|
+
log "==> galaaz setup (CLI)"
|
|
255
|
+
galaaz_cli setup >>"${LOG}" 2>&1 || log "WARN: galaaz setup non-zero (so exists; continuing)"
|
|
256
|
+
|
|
257
|
+
log "==> galaaz blogs init"
|
|
258
|
+
galaaz_cli blogs init "${HOME}/galaaz-blogs" >>"${LOG}" 2>&1
|
|
259
|
+
|
|
260
|
+
install_wrapper
|
|
261
|
+
|
|
262
|
+
log "==> doctor"
|
|
263
|
+
export PATH="${HOME}/.local/bin:${PATH}"
|
|
264
|
+
hash -r 2>/dev/null || true
|
|
265
|
+
if ! "${HOME}/.local/bin/galaaz" doctor >>"${LOG}" 2>&1; then
|
|
266
|
+
log "ERROR: doctor incomplete"
|
|
267
|
+
log "so exists=$([[ -f ${SO} ]] && echo yes || echo no)"
|
|
268
|
+
"${HOME}/.local/bin/galaaz" doctor 2>&1 | tee -a "${LOG}" || true
|
|
269
|
+
exit 1
|
|
270
|
+
fi
|
|
271
|
+
"${HOME}/.local/bin/galaaz" doctor 2>&1 | tee -a "${LOG}" || true
|
|
272
|
+
|
|
273
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
274
|
+
mkdir -p "${HOME}/.config/omarchy/extensions" "${HOME}/.local/bin"
|
|
275
|
+
if [[ -f "${SCRIPT_DIR}/omarchy-menu.jsonc" ]]; then
|
|
276
|
+
cp "${SCRIPT_DIR}/omarchy-menu.jsonc" "${HOME}/.config/omarchy/extensions/omarchy-menu.jsonc"
|
|
277
|
+
fi
|
|
278
|
+
cp "${BASH_SOURCE[0]}" "${HOME}/.local/bin/omarchy-install-galaaz"
|
|
279
|
+
chmod +x "${HOME}/.local/bin/omarchy-install-galaaz"
|
|
280
|
+
if [[ -f "${SCRIPT_DIR}/remove-galaaz.sh" ]]; then
|
|
281
|
+
cp "${SCRIPT_DIR}/remove-galaaz.sh" "${HOME}/.local/bin/omarchy-remove-galaaz"
|
|
282
|
+
chmod +x "${HOME}/.local/bin/omarchy-remove-galaaz"
|
|
283
|
+
fi
|
|
284
|
+
if [[ -f "${SCRIPT_DIR}/galaaz-guide.sh" ]]; then
|
|
285
|
+
cp "${SCRIPT_DIR}/galaaz-guide.sh" "${HOME}/.local/bin/omarchy-galaaz-guide"
|
|
286
|
+
chmod +x "${HOME}/.local/bin/omarchy-galaaz-guide"
|
|
287
|
+
log "guide: ${HOME}/.local/bin/omarchy-galaaz-guide"
|
|
288
|
+
fi
|
|
289
|
+
if [[ -f "${SCRIPT_DIR}/galaaz-add.sh" ]]; then
|
|
290
|
+
cp "${SCRIPT_DIR}/galaaz-add.sh" "${HOME}/.local/bin/omarchy-galaaz-add"
|
|
291
|
+
chmod +x "${HOME}/.local/bin/omarchy-galaaz-add"
|
|
292
|
+
log "add helper: ${HOME}/.local/bin/omarchy-galaaz-add"
|
|
293
|
+
fi
|
|
294
|
+
if [[ -f "${SCRIPT_DIR}/galaaz-gknit.sh" ]]; then
|
|
295
|
+
cp "${SCRIPT_DIR}/galaaz-gknit.sh" "${HOME}/.local/bin/omarchy-galaaz-gknit"
|
|
296
|
+
chmod +x "${HOME}/.local/bin/omarchy-galaaz-gknit"
|
|
297
|
+
log "gknit helper: ${HOME}/.local/bin/omarchy-galaaz-gknit"
|
|
298
|
+
fi
|
|
299
|
+
|
|
300
|
+
mkdir -p "${HOME}/.config/galaaz/profiles"
|
|
301
|
+
date -Iseconds >"${HOME}/.config/galaaz/profiles/core"
|
|
302
|
+
|
|
303
|
+
log ""
|
|
304
|
+
log "Core install complete."
|
|
305
|
+
log "Next: Super+Space → Install → Development → Galaaz → Guide (what's next)"
|
|
306
|
+
log "Docs: https://rbotafogo.github.io/galaaz/"
|
|
307
|
+
log "FULL LOG: ${LOG}"
|
|
308
|
+
log "Done!"
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Galaaz overlay for ~/.config/omarchy/extensions/omarchy-menu.jsonc
|
|
3
|
+
// Copy/merge into that path on TryOmarchy. Whole-line // comments only.
|
|
4
|
+
//
|
|
5
|
+
// Use ~/.local/bin/galaaz (installer wrapper). Do not quote the whole
|
|
6
|
+
// "galaaz add …" as one word — omarchy-launch-tui then does nothing useful.
|
|
7
|
+
|
|
8
|
+
"install.development.galaaz": {
|
|
9
|
+
"icon": "",
|
|
10
|
+
"label": "Galaaz",
|
|
11
|
+
"description": "R on Rails"
|
|
12
|
+
},
|
|
13
|
+
"install.development.galaaz.core": {
|
|
14
|
+
"icon": "",
|
|
15
|
+
"label": "Galaaz (core)",
|
|
16
|
+
"description": "gem + setup + blogs (not just gem install)",
|
|
17
|
+
"action": "omarchy-launch-tui omarchy-install-galaaz",
|
|
18
|
+
"disabled": "test -f ~/.config/galaaz/profiles/core"
|
|
19
|
+
},
|
|
20
|
+
"install.development.galaaz.guide": {
|
|
21
|
+
"icon": "",
|
|
22
|
+
"label": "Guide (what's next)",
|
|
23
|
+
"description": "Example knits, docs links, add-ons",
|
|
24
|
+
"action": "omarchy-launch-tui omarchy-galaaz-guide",
|
|
25
|
+
"when": "test -f ~/.config/galaaz/profiles/core"
|
|
26
|
+
},
|
|
27
|
+
"install.development.galaaz.docs": {
|
|
28
|
+
"icon": "",
|
|
29
|
+
"label": "Documentation (website)",
|
|
30
|
+
"description": "Open rbotafogo.github.io/galaaz",
|
|
31
|
+
"action": "omarchy-launch-webapp https://rbotafogo.github.io/galaaz/",
|
|
32
|
+
"when": "test -f ~/.config/galaaz/profiles/core"
|
|
33
|
+
},
|
|
34
|
+
"install.development.galaaz.github": {
|
|
35
|
+
"icon": "",
|
|
36
|
+
"label": "GitHub repository",
|
|
37
|
+
"description": "Open github.com/rbotafogo/galaaz",
|
|
38
|
+
"action": "omarchy-launch-webapp https://github.com/rbotafogo/galaaz",
|
|
39
|
+
"when": "test -f ~/.config/galaaz/profiles/core"
|
|
40
|
+
},
|
|
41
|
+
"install.development.galaaz.knit": {
|
|
42
|
+
"icon": "",
|
|
43
|
+
"label": "Knit (HTML blogs)",
|
|
44
|
+
"description": "pandoc + knitr/rmarkdown",
|
|
45
|
+
"action": "omarchy-launch-tui omarchy-galaaz-add knit",
|
|
46
|
+
"disabled": "test -f ~/.config/galaaz/profiles/knit"
|
|
47
|
+
},
|
|
48
|
+
"install.development.galaaz.knit-demo": {
|
|
49
|
+
"icon": "",
|
|
50
|
+
"label": "Knit demo (oh_my)",
|
|
51
|
+
"description": "gknit ~/galaaz-blogs/oh_my/oh_my.Rmd",
|
|
52
|
+
"action": "omarchy-launch-tui omarchy-galaaz-guide knit-demo",
|
|
53
|
+
"when": "test -f ~/.config/galaaz/profiles/knit"
|
|
54
|
+
},
|
|
55
|
+
"install.development.galaaz.arrow": {
|
|
56
|
+
"icon": "",
|
|
57
|
+
"label": "Arrow",
|
|
58
|
+
"action": "omarchy-launch-tui omarchy-galaaz-add arrow",
|
|
59
|
+
"disabled": "test -f ~/.config/galaaz/profiles/arrow"
|
|
60
|
+
},
|
|
61
|
+
"install.development.galaaz.tex": {
|
|
62
|
+
"icon": "",
|
|
63
|
+
"label": "TeX (PDF blogs)",
|
|
64
|
+
"action": "omarchy-launch-tui omarchy-galaaz-add tex",
|
|
65
|
+
"disabled": "test -f ~/.config/galaaz/profiles/tex"
|
|
66
|
+
},
|
|
67
|
+
"install.development.galaaz.bio": {
|
|
68
|
+
"icon": "",
|
|
69
|
+
"label": "Bioconductor (DESeq2)",
|
|
70
|
+
"action": "omarchy-launch-tui omarchy-galaaz-add bio",
|
|
71
|
+
"disabled": "test -f ~/.config/galaaz/profiles/bio"
|
|
72
|
+
},
|
|
73
|
+
"install.development.galaaz.examples": {
|
|
74
|
+
"icon": "",
|
|
75
|
+
"label": "Examples",
|
|
76
|
+
"action": "omarchy-launch-tui omarchy-galaaz-add examples",
|
|
77
|
+
"disabled": "test -f ~/.config/galaaz/profiles/examples"
|
|
78
|
+
},
|
|
79
|
+
"install.development.galaaz.ledger": {
|
|
80
|
+
"icon": "",
|
|
81
|
+
"label": "Ledger (R-on-Rails demo)",
|
|
82
|
+
"description": "Clone app, seed, bin/dev",
|
|
83
|
+
"action": "omarchy-launch-tui omarchy-galaaz-add ledger",
|
|
84
|
+
"disabled": "test -f ~/.config/galaaz/profiles/ledger"
|
|
85
|
+
},
|
|
86
|
+
"remove.development.galaaz": {
|
|
87
|
+
"icon": "",
|
|
88
|
+
"label": "Galaaz",
|
|
89
|
+
"description": "Core gem (add-on R packages stay)",
|
|
90
|
+
"action": "omarchy-launch-tui omarchy-remove-galaaz"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Remove Galaaz core gem + blogs we created. Leaves Ruby, R, and add-on R packages.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
echo -e "Removing Galaaz...\n"
|
|
6
|
+
|
|
7
|
+
run_ruby() {
|
|
8
|
+
if command -v mise >/dev/null 2>&1; then
|
|
9
|
+
mise x ruby -- "$@"
|
|
10
|
+
else
|
|
11
|
+
"$@"
|
|
12
|
+
fi
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if command -v gem >/dev/null 2>&1 || command -v mise >/dev/null 2>&1; then
|
|
16
|
+
run_ruby gem uninstall galaaz -x -a --ignore-dependencies 2>/dev/null || true
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
blogs="${HOME}/galaaz-blogs"
|
|
20
|
+
if [[ -f "${blogs}/.galaaz-blogs" ]]; then
|
|
21
|
+
echo "Removing ${blogs} (galaaz blogs marker present)"
|
|
22
|
+
rm -rf "${blogs}"
|
|
23
|
+
else
|
|
24
|
+
echo "Leaving ${blogs} untouched (no .galaaz-blogs marker)"
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# Profile markers only — do not uninstall CRAN/Bioconductor/TinyTeX.
|
|
28
|
+
if [[ -d "${HOME}/.config/galaaz/profiles" ]]; then
|
|
29
|
+
rm -rf "${HOME}/.config/galaaz/profiles"
|
|
30
|
+
echo "Cleared ~/.config/galaaz/profiles"
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
echo -e "\nNote: GNU R and language packages (arrow, knitr, …) were left installed."
|
|
34
|
+
echo "Done!"
|
data/sty/galaaz.sty
CHANGED
|
@@ -67,5 +67,27 @@
|
|
|
67
67
|
% Command to import an R variable to latex
|
|
68
68
|
\newcommand{\RtoLatex}[2]{\newcommand{#1}{#2}}
|
|
69
69
|
|
|
70
|
+
% Soft-wrap Pandoc highlighted code/output boxes (Shaded + Highlighting).
|
|
71
|
+
% This runs after Pandoc's default \DefineVerbatimEnvironment{Highlighting}
|
|
72
|
+
% (header includes come later in the generated .tex). Prefer manual line
|
|
73
|
+
% breaks in Rmd sources; breaklines is a safety net for leftovers/output.
|
|
74
|
+
% Requires TinyTeX/TeX Live package: tlmgr install fvextra
|
|
75
|
+
\IfFileExists{fvextra.sty}{%
|
|
76
|
+
\usepackage{fvextra}%
|
|
77
|
+
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{%
|
|
78
|
+
breaklines=true,
|
|
79
|
+
breakanywhere=true,
|
|
80
|
+
breakindent=1.5em,
|
|
81
|
+
fontsize=\small,
|
|
82
|
+
commandchars=\\\{\}%
|
|
83
|
+
}%
|
|
84
|
+
}{%
|
|
85
|
+
% fancyvrb is already loaded by Pandoc; shrink code so more fits per line.
|
|
86
|
+
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{%
|
|
87
|
+
fontsize=\small,
|
|
88
|
+
commandchars=\\\{\}%
|
|
89
|
+
}%
|
|
90
|
+
}
|
|
91
|
+
|
|
70
92
|
%
|
|
71
93
|
%\newcommand{\atraso}[1]{\color{red} \textbf {Tempo desde a Assinatura do Contrato: #1 dias}}
|
data/version.rb
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
$gem_name = "galaaz"
|
|
2
|
-
$version="2.1.
|
|
2
|
+
$version="2.1.8"
|