-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathraku-modules.sh
More file actions
executable file
·92 lines (80 loc) · 2.38 KB
/
Copy pathraku-modules.sh
File metadata and controls
executable file
·92 lines (80 loc) · 2.38 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
#!/usr/bin/env bash
#
# Copyright (C) 2016-2024 Joelle Maslak
# All Rights Reserved - See License
#
doit() {
# Defensive umask
if [ "$(umask)" == '0000' ] ; then
umask 0002
fi
# Workaround Solaris which that doesn't return a useful value (grrr!)
ZEF="$( command -v zef )"
RAKU="$( command -v raku )"
if [ -x "$ZEF" ] && [ -x "$RAKU" ] ; then
install_modules
else
echo ""
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "You should install Rakudo (Raku) and zef."
echo ""
echo "Use the raku-install.sh script in this directory to do"
echo "that."
echo ""
echo "Not installing Perl 6 modules."
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
fi
}
install_modules() {
install_module_force LWP::Simple # Does network tests
install_module App::Mi6
install_module App::Heater
install_module App::Tasks
install_module BusyIndicator
install_module cro Cro
install_module DateTime::Monotonic
install_module Digest::SHA1::Native
install_module JSON::Fast
install_module Linenoise # For REPL
install_module IO::Socket::SSL # p6doc ends up failing without this
install_module NativeHelpers::Blob
install_module Net::Netmask
install_module OO::Monitors
install_module P5getpriority # For getppid
install_module_force P5localtime
install_module StrictClass
# install_module StrictNamedArguments # Doesn't work in 6.d
install_module Sys::Domainname
install_module TCP::LowLevel
install_module Terminal::ANSIColor
install_module Term::ReadKey
install_module Term::termios
install_module YAMLish
install_module if
install_module rakudoc Pod::Cache
}
install_module_force() {
MODULE="$1"
if [ "$MODULE_NAME" == "" ] ; then
MODULE_NAME="$MODULE"
fi
if ! raku -M "$MODULE_NAME" -e exit 2>/dev/null >/dev/null ; then
zef install --force-test "$MODULE"
else
echo "$MODULE already installed."
fi
}
install_module() {
MODULE="$1"
MODULE_NAME="$2"
if [ "$MODULE_NAME" == "" ] ; then
MODULE_NAME="$MODULE"
fi
if ! raku -M "$MODULE_NAME" -e exit 2>/dev/null >/dev/null ; then
zef install "$MODULE"
else
echo "$MODULE already installed."
fi
}
doit