240 Commits

Author SHA1 Message Date
f3b9e04edd Glacier v4 testing 2023-02-03 11:32:29 -05:00
927b02c0f3 ok 2023-02-01 16:43:14 -05:00
5b93cb7aba merge conflict moment 2023-02-01 16:39:28 -05:00
87b85db1ce hi 2023-02-01 16:33:21 -05:00
66611d0b70 Glacier v3.3.0 2023-02-01 16:16:55 -05:00
9c59513859 Glacier v3.3.0 - Improvements to downloads 2023-02-01 12:47:08 -05:00
bd07427378 fix integrity check not being installed correctly 2023-01-27 10:27:23 -05:00
b0d28489e9 add progress bar to tar 2023-01-27 09:03:47 -05:00
Liam Waldron
8a9641be67 glacier-mkimg 0.0.1-rc2 2023-01-10 10:35:49 -05:00
Liam Waldron
9381aecd34 glacier-mkimg v0.0.1-rc1 2023-01-06 16:54:26 -05:00
lw-everestlinux
0da359f81b Clarify licensing 2023-01-03 08:48:10 -05:00
lw-everestlinux
1b94d281a6 Fix integrity checking 2022-12-12 19:30:53 -05:00
lw-everestlinux
974fe1f618 Fix build system 2022-12-09 10:51:47 -05:00
lw-everestlinux
fa1162a88c Remove python dependency 2022-12-09 10:41:22 -05:00
lw-everestlinux
a2b3ad34d4 Glacier v3.2.1 - Toggle integrity checking 2022-12-08 09:07:57 -05:00
lw-everestlinux
346b351ad0 Add tool for creating Everest images 2022-12-01 09:29:12 -05:00
lw-everestlinux
3b4c6f33cf Glacier v3.2.0 - Changes to package removal 2022-11-21 20:11:04 -05:00
lw-everestlinux
f09d6d45ea Minor bug fixes 2022-11-08 09:03:07 -05:00
lw-everestlinux
5531e98595 Minor fixes in output 2022-11-08 08:45:19 -05:00
lw-everestlinux
0c342167f8 Minor bug fixes 2022-11-04 14:08:55 -04:00
lw-everestlinux
657cbd5e78 Minor bug fixes 2022-11-04 14:06:32 -04:00
lw-everestlinux
96a1c55008 Minor bug fixes in cleanup 2022-11-04 14:03:31 -04:00
lw-everestlinux
64e58daf40 v3.1.1 - Improved error handling and new build system 2022-11-03 12:36:39 -04:00
lw-everestlinux
1c62bd5b19 v3.1.1 - Improved error handling 2022-11-03 12:29:31 -04:00
lw-everestlinux
d419e95f1c Update README 2022-11-03 08:52:55 -04:00
lw-everestlinux
bc7b8df2e5 Glacier v3.1.0 - Integrity checking 2022-11-02 10:44:23 -04:00
lw-everestlinux
7705ecfb8a Glacier v3.1.0 - Integrity checking 2022-11-02 10:43:35 -04:00
lw-everestlinux
677d414a28 minor changes to help message 2022-10-28 13:44:43 -04:00
lw-everestlinux
de2725a475 minor changes 2022-10-27 08:17:29 -04:00
lw-everestlinux
f6fce7323d Glacier v3.0.1 - Post-operation hooks added 2022-10-26 12:14:23 -04:00
lw-everestlinux
65c2ad8146 Glacier v3.0.0 2022-10-25 16:38:18 -04:00
lw-everestlinux
2be842a411 Temporarily rolled back integrity checking 2022-09-06 13:57:54 -04:00
lw-everestlinux
5688b4753d v2.3.0 - package integrity checking 2022-09-06 13:54:31 -04:00
lw-everestlinux
b5c28dd802 v2.3.0 - Package integrity checking 2022-09-06 12:44:28 -04:00
lw-everestlinux
0807a13286 v2.3.0 - Package integrity checking 2022-09-06 12:34:32 -04:00
lw-everestlinux
22e368c5fa Glacier v2.2.3 - Improved help message output 2022-08-26 18:50:39 -04:00
lw-everestlinux
3c4919cf0c Glacier v2.2.3 - Made the help message look nice and pretty 2022-08-26 18:45:25 -04:00
lw-everestlinux
ebe5e3930e Add tarball for ELIF installation (actually fixed this time unlike last time) 2022-08-26 18:30:08 -04:00
9c529d1ab2 Add 'REPORTING.md' 2022-08-17 16:19:07 -04:00
lw-everestlinux
3b3d5ab369 Add tarball for ELIF installation (fixed version) 2022-08-17 16:03:18 -04:00
8c1f892e2c Add tarball for ELIF script 2022-08-17 15:50:09 -04:00
e117737527 Update 'install/INSTALL-GLACIER.sh' 2022-08-08 22:17:53 -04:00
69a5f0444a Update 'README.md' 2022-08-08 22:09:41 -04:00
lw-everestlinux
fd6e494314 Glacier v2.2.2 - minor bug fixes 2022-07-26 14:03:14 -04:00
4d65c0fb9e Update 'scripts/glacier' 2022-07-23 16:55:18 -04:00
57505be3a2 Update 'scripts/glacier' 2022-07-23 16:52:21 -04:00
0f94ed93b6 Update 'scripts/glacier' 2022-07-23 16:46:54 -04:00
eeac5ed390 Update 'scripts/glacier' 2022-07-23 16:46:28 -04:00
lw-everestlinux
b5faa209f2 v2.2.1 - Added new option: --showDebugInfo 2022-07-23 16:44:30 -04:00
1682faa871 Update 'scripts/glacier' 2022-07-23 13:00:43 -04:00
aa0c1ff1ac Update 'scripts/glacier' 2022-07-23 12:57:54 -04:00
863d361e98 Update 'README.md' 2022-07-14 14:42:49 -04:00
a09bbcaa6b Glacier v2.2 - Customizable download backend 2022-07-14 14:40:08 -04:00
1e2e514b49 Update 'install/INSTALL-GLACIER.sh' 2022-06-24 18:00:09 -04:00
d5122b918b Update 'README.md' 2022-06-21 18:15:51 -04:00
cfd90804fe Update 'README.md' 2022-06-21 18:15:28 -04:00
8749f46706 Update 'scripts/glacier.conf' 2022-06-21 18:14:13 -04:00
everest
5beabdbca4 Update README.md 2022-06-16 14:56:04 +00:00
everest
faf8fe7ec8 Update glacier 2022-06-16 14:52:38 +00:00
everest
efada985df Update glacier 2022-06-16 14:51:15 +00:00
everest
73daf1bfbb Update README.md 2022-06-13 17:24:11 +00:00
everest
d751e25f59 Update glacier 2022-06-10 14:07:03 +00:00
everest
343a7c1285 Update glacier 2022-06-10 14:06:21 +00:00
everest
a80d75b5ef Update glacier 2022-06-10 14:03:44 +00:00
everest
f123f98fd6 Update README.md 2022-06-10 13:00:53 +00:00
everest
0b645bd629 Update glacier 2022-06-10 12:58:44 +00:00
everest
17cdc140bb Update glacier.conf 2022-06-10 12:55:32 +00:00
everest
fdc4014672 Update README.md 2022-06-10 12:54:40 +00:00
everest
749b77dcd8 Update glacier 2022-06-09 14:05:35 +00:00
everest
b4749dc30b Update glacier 2022-06-08 16:37:32 +00:00
everest
975ad4fcd2 Update glacier 2022-06-08 16:36:52 +00:00
everest
de61a35eef Update glacier 2022-06-08 12:57:46 +00:00
everest
7caa78f3dd Update glacier 2022-06-08 12:54:50 +00:00
everest
089fe7d668 Update README.md 2022-06-08 12:54:36 +00:00
everest
2b062b9a3d Update glacier 2022-06-08 12:54:10 +00:00
everest
b6aa112bd1 Update glacier 2022-06-08 12:01:20 +00:00
everest
5fe0e37d68 Update glacier 2022-06-08 11:56:31 +00:00
everest
e7ae67d256 Update glacier 2022-06-07 14:43:25 +00:00
everest
34327f5d08 Update README.md 2022-06-06 17:13:26 +00:00
everest
014a8c82a9 Update hooks.sh 2022-06-06 14:59:08 +00:00
everest
983f98d1a0 Update glacier 2022-06-03 12:57:22 +00:00
everest
752ff88e76 Update glacier 2022-06-02 14:44:50 +00:00
everest
b53666a47d Update glacier 2022-06-01 15:34:41 +00:00
everest
49475014da Update glacier 2022-06-01 15:32:04 +00:00
everest
2df34b663d Update README.md 2022-06-01 14:03:43 +00:00
everest
16657923ad Update README.md 2022-05-31 17:54:00 +00:00
everest
5336379812 Add files via upload 2022-05-31 13:20:51 +00:00
everest
683626ed85 Delete hooks.sh 2022-05-31 13:20:35 +00:00
everest
88d836f4ec Delete glacier.conf 2022-05-31 13:20:29 +00:00
everest
b8dbfec436 Delete README.md 2022-05-31 13:20:22 +00:00
everest
91bd0a6806 Delete LICENSE 2022-05-31 13:20:14 +00:00
everest
8ef2dd8bf7 Delete scripts directory 2022-05-31 13:20:03 +00:00
everest
8118597e51 Delete install directory 2022-05-31 13:19:54 +00:00
everest
0c8862f7b0 Update README.md 2022-05-31 13:13:56 +00:00
everest
40ee42ce9b Update README.md 2022-05-27 18:20:06 +00:00
everest
b2e8ec0b9e Update glacier-help.sh 2022-05-27 18:18:40 +00:00
everest
de0f023009 Update README.md 2022-05-27 18:18:03 +00:00
everest
1af0eeccb1 Update glacier-remove.sh 2022-05-27 18:11:14 +00:00
everest
c14ef72f62 Update glacier-update.sh 2022-05-27 18:10:27 +00:00
everest
797f942301 Update glacier-remove.sh 2022-05-27 18:10:12 +00:00
everest
f5b99b1efe Update glacier-cache-clear.sh 2022-05-27 18:09:40 +00:00
everest
f9fe4831e5 Update glacier-cache-install.sh 2022-05-27 18:09:12 +00:00
everest
58ad767e30 Update glacier-cache.sh 2022-05-27 18:08:54 +00:00
everest
d38cf63cd1 Update glacier-install.sh 2022-05-27 18:07:04 +00:00
everest
f6742f5a3e Update INSTALL-GLACIER.sh 2022-05-27 18:06:39 +00:00
everest
33d1d962b7 Create hooks.sh 2022-05-27 18:05:41 +00:00
everest
7e505404a6 Update README.md 2022-05-17 18:07:26 +00:00
everest
12cfa49d20 Update README.md 2022-05-17 14:14:28 +00:00
everest
110c8fcd21 Update README.md 2022-05-10 12:23:59 +00:00
everest
f3778f7ea4 Update glacier-help.sh 2022-05-10 12:22:01 +00:00
everest
9e9f705fa3 Update glacier-cache.sh 2022-05-06 14:02:35 +00:00
everest
ed024fdab0 Update glacier-update.sh 2022-05-06 14:02:09 +00:00
everest
e0ce15a616 Update glacier-remove.sh 2022-05-06 14:01:47 +00:00
everest
bcf274a714 Update glacier-install.sh 2022-05-06 14:01:25 +00:00
everest
a82e25c980 Update glacier-help.sh 2022-05-06 11:51:19 +00:00
everest
2f21ad528f Update glacier-help.sh 2022-05-05 14:23:09 +00:00
everest
47f2dddd46 Update WGET-INSTALL.sh 2022-05-05 14:11:26 +00:00
everest
94154b0bf2 Delete multirepo-test 2022-05-04 14:50:52 +00:00
everest
09b3305b1b Update README.md 2022-05-03 21:25:48 +00:00
everest
0628947fcc Update glacier-cache-clear.sh 2022-05-03 21:25:04 +00:00
everest
637b4b50d1 Update glacier-cache.sh 2022-05-03 21:24:20 +00:00
everest
7deb3bbb60 Update glacier-update.sh 2022-05-03 21:23:53 +00:00
everest
114757443d Update glacier-remove.sh 2022-05-03 21:23:35 +00:00
everest
a4627aa1ed Update glacier-install.sh 2022-05-03 20:46:49 +00:00
everest
9c8c686bf3 Add files via upload 2022-05-03 20:41:48 +00:00
everest
c67ea416d3 Update glacier.conf 2022-05-03 20:41:17 +00:00
everest
167bfce674 Update glacier.conf 2022-05-03 17:30:23 +00:00
everest
1188467cd0 Update glacier-cache.sh 2022-05-03 16:54:09 +00:00
everest
6048a99fb2 Update glacier-update.sh 2022-05-03 15:40:50 +00:00
everest
bdf412eab6 Update glacier-remove.sh 2022-05-03 15:39:18 +00:00
everest
0e616b6771 Update glacier-install.sh 2022-05-03 15:37:28 +00:00
everest
12bb41baae Update README.md 2022-05-03 15:33:27 +00:00
everest
37b2d829e3 Update glacier-help.sh 2022-05-02 16:53:21 +00:00
everest
dd017d57d1 Update glacier-help.sh 2022-05-02 16:51:51 +00:00
everest
c83c6a6cbc Update glacier-cache-clear.sh 2022-05-02 16:43:14 +00:00
everest
81b2247840 Update glacier-cache-install.sh 2022-05-02 16:42:39 +00:00
everest
3eaa78fc18 Update glacier-cache.sh 2022-05-02 16:42:08 +00:00
everest
9739ea56af Update glacier-query.sh 2022-05-02 16:41:49 +00:00
everest
b134177b9e Update glacier-remove.sh 2022-05-02 16:41:34 +00:00
everest
4085450712 Update glacier-update.sh 2022-05-02 16:41:19 +00:00
everest
b555f13f71 Update glacier-install.sh 2022-05-02 16:40:57 +00:00
everest
af551c95ee Update README.md 2022-04-29 14:33:56 +00:00
everest
41191edda5 Update glacier-install.sh 2022-04-26 13:57:10 +00:00
everest
489f11e718 Update INSTALL-GLACIER.sh 2022-04-20 19:47:13 +00:00
everest
3101ad6d6e Update README.md 2022-04-20 19:44:53 +00:00
everest
f65684c0fd Update glacier-query.sh 2022-04-20 19:44:06 +00:00
everest
143aa68687 Update glacier.conf 2022-04-20 19:41:19 +00:00
everest
1b446e7096 Update glacier-cache-clear.sh 2022-04-20 19:40:25 +00:00
everest
6b3ee3f6e5 Update glacier-cache-install.sh 2022-04-20 19:39:04 +00:00
everest
b1ba7830a7 Update glacier-cache.sh 2022-04-20 19:36:05 +00:00
everest
d64f208f1a Update glacier-update.sh 2022-04-20 19:31:16 +00:00
everest
61e3c1b9a3 Update glacier-update.sh 2022-04-20 19:30:40 +00:00
everest
4f92bbebcc Update glacier-remove.sh 2022-04-20 19:22:39 +00:00
everest
b70d0070d0 Update glacier-install.sh 2022-04-20 19:13:05 +00:00
everest
40c11082bf Update README.md 2022-04-20 19:11:47 +00:00
everest
3d5c4e0cf3 Update glacier-install.sh 2022-04-20 19:10:13 +00:00
everest
6f2576170e Update glacier-install.sh 2022-04-20 19:05:26 +00:00
everest
65662a51e7 Update glacier-install.sh 2022-04-20 19:03:59 +00:00
everest
37cccd709b Update glacier-install.sh 2022-04-20 19:00:52 +00:00
everest
6c0a7ded21 Update glacier-install.sh 2022-04-20 19:00:36 +00:00
everest
1ff803c044 Update glacier-install.sh 2022-04-19 17:44:36 -04:00
everest
18cd53cbce Update glacier-install.sh 2022-04-19 21:20:32 +00:00
everest
480e8fe243 Update README.md 2022-04-13 14:34:02 +00:00
everest
7384bb3126 Update glacier-cache.sh 2022-04-12 20:46:59 +00:00
everest
4a6010ac0e Update glacier-update.sh 2022-04-12 20:46:13 +00:00
everest
6b2e9c9167 Update glacier-remove.sh 2022-04-12 20:43:51 +00:00
everest
a9c50a2c69 Update glacier-install.sh 2022-04-12 20:41:35 +00:00
everest
c122f5c616 Update glacier-install.sh 2022-04-12 20:39:37 +00:00
everest
d3b7c2585a Update INSTALL-GLACIER.sh 2022-04-12 20:31:56 +00:00
everest
a720c23349 Update INSTALL-GLACIER.sh 2022-04-12 16:44:06 +00:00
everest-linux
11ac289950 0.7rc 2022-04-12 16:42:14 +00:00
everest-linux
e55679d379 0.7rc 2022-04-12 16:38:01 +00:00
everest
ecae5c90ad Create WGET-INSTALL.sh 2022-04-08 16:51:33 +00:00
everest
3fc83bc766 Update glacier-update.sh 2022-04-08 16:02:42 +00:00
everest
bac21d1925 Update glacier-remove.sh 2022-04-08 15:58:23 +00:00
everest
0b2d3e0e2f Update glacier-remove.sh 2022-04-05 15:08:08 +00:00
everest
cdfba90742 Update glacier-cache-install.sh 2022-04-05 15:06:40 +00:00
everest
de9dbf0918 Update glacier-query.sh 2022-04-05 15:05:07 +00:00
everest
66c7e0beb8 Update glacier-update.sh 2022-04-05 15:03:30 +00:00
everest
c2355528c4 Update glacier-install.sh 2022-04-05 15:02:18 +00:00
everest
ce6904a236 Update README.md 2022-04-05 15:00:49 +00:00
everest
241e1f543e Update UNINSTALL-GLACIER.sh 2022-04-05 13:49:32 +00:00
everest
dbfa201253 Update INSTALL-GLACIER.sh 2022-04-05 13:47:19 +00:00
everest
a8c1675e14 Update README.md 2022-03-31 13:10:53 +00:00
everest
d545cef36d Update README.md 2022-03-30 12:45:08 +00:00
everest
fea857a8e5 Update README.md 2022-03-30 12:34:29 +00:00
everest
afeddfdeda Update glacier-cache-clear.sh 2022-03-29 16:19:26 +00:00
everest
f27646242a Update glacier-cache-install.sh 2022-03-29 11:48:00 +00:00
everest
f8ef09df29 Update glacier-cache.sh 2022-03-28 21:25:24 +00:00
everest
1c498e9553 Update INSTALL-GLACIER.sh 2022-03-28 21:21:53 +00:00
everest
ea3ea66f2d Update glacier-help.sh 2022-03-28 21:18:44 +00:00
everest
dfc44a179a Update README.md 2022-03-28 21:12:37 +00:00
everest
b40e3e55cf Create glacier-cache-clear.sh 2022-03-28 21:11:21 +00:00
everest
0d6b9fcbc0 Create glacier-cache-install.sh 2022-03-28 21:09:56 +00:00
everest
85c3169139 Update glacier-update.sh 2022-03-28 21:04:33 +00:00
everest
5597383b6c Update glacier-install.sh 2022-03-28 21:03:37 +00:00
everest
1b7f0699e3 Create glacier-cache.sh 2022-03-28 21:03:16 +00:00
everest
3643b20cc1 Update UNINSTALL-GLACIER.sh 2022-03-28 20:53:09 +00:00
everest
5b451429ff Update INSTALL-GLACIER.sh 2022-03-28 20:50:37 +00:00
everest
99d6b8a9e4 Update README.md 2022-03-28 15:40:00 +00:00
everest
3dc076e7cd Update README.md 2022-03-28 15:39:34 +00:00
everest
89c8a66edf Update README.md 2022-03-28 15:28:14 +00:00
everest
5c3c31b70d Update glacier-remove.sh 2022-03-28 15:22:02 +00:00
everest
59cbc4c4b4 Update glacier-update.sh 2022-03-28 15:18:37 +00:00
everest
999da41b24 Update glacier-install.sh 2022-03-24 13:47:51 +00:00
everest
d13c54df8d Update glacier-install.sh 2022-03-24 13:46:14 +00:00
everest
3532e3c0cd Update glacier-install.sh 2022-03-24 13:41:39 +00:00
everest
4c742b675d Update glacier-install.sh 2022-03-24 13:40:21 +00:00
everest
2f0161baac Update INSTALL-GLACIER.sh 2022-03-24 13:38:32 +00:00
everest
8d61a9b07e Update glacier-install.sh 2022-03-24 13:37:45 +00:00
everest
ecfefffd87 Update README.md 2022-03-23 18:14:31 +00:00
everest
2c0dde990b Update README.md 2022-03-17 13:17:20 +00:00
everest
3668844cb6 Update README.md 2022-03-16 23:32:33 +00:00
everest
002ad51ee8 Update glacier-install.sh 2022-03-16 23:22:21 +00:00
everest
1f76be2199 Update glacier-install.sh 2022-03-16 23:20:22 +00:00
everest
544f1e00f1 Update glacier-install.sh 2022-03-16 23:18:09 +00:00
everest
aab61f1bde Update glacier-install.sh 2022-03-16 23:15:22 +00:00
everest
65dc8a31ef Update README.md 2022-03-11 15:15:53 -05:00
everest
0b3d502f37 Update README.md 2022-03-11 15:15:27 -05:00
everest
3d753bcec3 Update README.md 2022-03-10 17:36:20 +00:00
everest
1ffb79e849 Update glacier-query.sh 2022-03-10 17:29:47 +00:00
everest
d7bb7320a0 Update glacier-update.sh 2022-03-10 17:29:06 +00:00
everest
a9f125a2ab Update glacier-remove.sh 2022-03-10 17:27:51 +00:00
everest
8a21e53041 Update glacier-install.sh 2022-03-10 17:23:12 +00:00
everest
2d466f47cb Update glacier-install.sh 2022-03-10 17:19:01 +00:00
everest
0311d859c9 Update UNINSTALL-GLACIER.sh 2022-03-10 17:09:10 +00:00
everest
554bf6724f Update UNINSTALL-GLACIER.sh 2022-03-10 16:54:52 +00:00
everest
e3162699c0 Update UNINSTALL-GLACIER.sh 2022-03-09 22:42:58 +00:00
everest
5ab3b73ec0 Update UPDATE-GLACIER.sh 2022-03-09 22:42:35 +00:00
everest
25ae7889bb Update INSTALL-GLACIER.sh 2022-03-09 22:41:54 +00:00
everest
f76856aa1d Create UNINSTALL-GLACIER.sh 2022-03-09 22:40:37 +00:00
everest
f18c602dab Create UPDATE-GLACIER.sh 2022-03-09 22:39:53 +00:00
everest
a3cc13e0ef release 0.1rc 2022-03-09 22:01:26 +00:00
everest
41b095a399 Delete glacier-install.sh 2022-03-09 22:00:09 +00:00
everest
f49c641245 Add files via upload 2022-03-09 13:54:58 +00:00
everest
0c8967c637 Delete glacier-install.sh 2022-03-09 13:54:46 +00:00
everest
cc1e89bf51 Add files via upload 2022-03-09 13:52:14 +00:00
everest
98406ad3b5 Delete glacier-install.sh 2022-03-09 13:49:49 +00:00
everest
f23b755981 Add files via upload 2022-03-09 01:32:41 +00:00
everest
cc916a54ed Delete glacier-install.sh 2022-03-09 01:32:28 +00:00
24 changed files with 1571 additions and 20 deletions

View File

95
README Normal file
View File

@@ -0,0 +1,95 @@
+-----------------+
| [*] Glacier [*] |
+-----------------+
Manage packages on an Everest Linux system
+-----------------------+
| [?] About Glacier [?] |
+-----------------------+
Glacier's main goal is to combine the power of
source based packaging with the simplicity of
binary based packaging.
Glacier downloads source code from
https://git.everestlinux.org/EverestLinux/glacier-pkgs
and compiles it locally on your system.
+----------------------+
| [!] Dependencies [!] |
+----------------------+
Glacier requires the following programs to function:
- sh
- wget/curl (any program that can download files)
- tar
- make
- a c compiler (tested with gcc, although others should work)
- python (for integrity checking)
+----------------------------+
| [🠗] Installing Glacier [🠗] |
+----------------------------+
Obtain the source code:
$ git clone https://git.everestlinux.org/EverestLinux/glacier
$ cd glacier
Copy install.conf.def to install.conf
$ mv install.conf.def install.conf
Make necessary adjustments to install.conf, then run
build.sh as root.
# ./build.sh install # for first time installations
# ./build.sh update # for existing installations
+-----------------+
| [>_] Usage [>_] |
+-----------------+
# glacier install/-f
# glacier update/-u
# glacier remove/-x
$ glacier query/-q
# glacier cache/-c
# glacier cache-install/-ci
# glacier cache-clear/-cc
$ glacier --debuginfo
$ glacier -h/--help
$ glacier -v/--version
+------+
| News |
+------+
- 11/3/22 - Changing how packages are uninstalled
In Glacier's current state, it needs to download the package archive in order to remove it.
This is highly inefficient and presents its own risks.
In an upcoming update, the removal script will be retained on the system.
This method will be space efficient because:
a) Instruction scripts are mere kilobytes
b) For larger scripts, you will have the option of compressing them.
This feature is expected around 3.2.0.
+-----------+
| Licensing |
+-----------+
(C) 2021-2022 Everest Developers
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program.
If not, see <https://www.gnu.org/licenses/>.

View File

@@ -1,6 +0,0 @@
# Glacier
Glacier is the package manager developed for Everest Linux. It automatically fetches a tarball, unzips it, and compiles it.
For Glacier to work properly, it needs the following directories to be made:
`/usr/local/lib/glacier/packages`

View File

@@ -1,14 +0,0 @@
#!/bin/sh
# glacier-install
# Script used to fetch installation scripts and run them
echo "[ ? ] Enter package name:" && read input
echo "[ i ] Downloading source tarball for $input..."
wget https://github.com/everest-linux/glacier-pkgs/raw/main/pkgs/$input.tar.gz
echo "[ i ] Unpacking $input.tar.gz..."
tar -xvf $input.tar.gz
cd $input
chmod +x INSTALL.sh
./INSTALL.sh
rm $input.tar.gz
echo "Done."

72
install/build.sh Executable file
View File

@@ -0,0 +1,72 @@
#!/bin/sh
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "must be run as root\n"
exit 1
fi
WORKING_DIR=$(pwd)
SRC_DIR=$(pwd)/../src
printf "parsing install.conf\n"
source $WORKING_DIR/install.conf
if [ "$?" != 0 ]; then
printf "install.conf not found\n"
exit 1
fi
case $1 in
install)
printf "installing executable\n"
mv -v $SRC_DIR/glacier $PREFIX/bin
if [ "$?" != 0 ]; then
mv -v $SRC_DIR/glacier $PREFIX
printf "directory $PREFIX/bin does not exist, moving to $PREFIX instead\n"
fi
$CC $SRC_DIR/int-check/main.c -o glacier-integrity-check
mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX/bin
if [ "$?" != 0 ]; then
mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX
printf "directory $PREFIX/bin does not exist, moving to $PREFIX instead.\n"
fi
printf "installing configuration files\n"
mv -v $SRC_DIR/glacier.conf $CONFDIR
if [ "$?" != 0 ]; then
printf "$CONFDIR does not exist\n"
printf "this can be corrected by running:\n"
printf "# mkdir -v -pv $CONFDIR\n"
exit 1
fi
mkdir -v /opt/glacier
mkdir -v /opt/glacier/workspace
mkdir -v /var/log/glacier
mkdir -v /var/cache/glacier
mkdir -v /etc/glacier
mkdir -v /etc/glacier/pkginfo
mv -v $SRC_DIR/hooks $CONFDIR/glacier
mv -v $SRC_DIR/post-hooks $CONFDIR/glacier
mv -v $SRC_DIR/pre-hooks $CONFDIR/glacier
mv -v $SRC_DIR/hooks.sh $CONFDIR/glacier
mv -v $SRC_DIR/make.conf $CONFDIR
mv -v $SRC_DIR/glacier-integrity-check $PREFIX/bin
if [ "$?" != "0" ]; then
mv -v $SRC_DIR/glacier-integrity-check $PREFIX
printf "directory $PREFIX/bin does not exist, moving to $PREFIX instead\n"
fi
printf "finished installation\n"
exit 0
;;
update)
printf "updating executable\n"
rm -v $PREFIX/bin/glacier || rm -v $PREFIX/glacier
rm -v $PREFIX/bin/glacier-integrity-check || rm -v $PREFIX/glacier-integrity-check
mv -v $SRC_DIR/glacier $PREFIX/bin || mv -v $SRC_DIR/glacier $PREFIX
$CC $SRC_DIR/int-check/main.c -O2 -fstack-protector-strong -o $SRC_DIR/int-check/glacier-integrity-check
mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX/bin || mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX
printf "finished updating\n"
exit 0
esac

13
install/install.conf.def Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
# install.conf
# Installation prefix
# On Everest, this should be /usr, because /bin, /sbin, and /lib are all symlinks to /usr
PREFIX="/usr"
# System config directory
# On almost all systems, this should be /etc
CONFDIR="/etc"
# C Compiler to use
CC="gcc"

8
install/post-install-2-1-23.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
WORKING_DIR=$(pwd)
SRC_DIR=$(pwd)/../src
mv /etc/glacier.conf /etc/glacier.conf.old
echo "WARNING: /etc/glacier.conf saved as /etc/glacier.conf.old\n"
mv $SRC_DIR/glacier.conf /etc

490
src/glacier Executable file
View File

@@ -0,0 +1,490 @@
#!/bin/sh
# Glacier - manage installed packages on a Linux system
#
# This file is part of Glacier.
#
# Glacier is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# Glacier is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
. /etc/glacier/hooks
get_pkg() {
printf "$blue[ i ]$reset Downloading archive for package '$2'...\n"
for r in ${ALLOWED_REPOS[@]}; do
$GLACIER_DOWNLOAD_BACKEND $GREPO/${r}/$2.tar.gz
done
find $2.tar.gz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package '$2' not found.\n"
exit 1
fi
printf "$blue[ i ]$reset Downloading checksum for package '$2'...\n"
for r in ${ALLOWED_REPOS[@]}; do
$GLACIER_DOWNLOAD_BACKEND $GREPO/${r}/$2.checksum
done
find $2.checksum
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package checksum not found.\n"
exit 1
fi
}
int_check() {
if [ "$GLACIER_DO_INT_CHECK" = "true" ]; then
printf "$blue[ i ]$reset Checking package integrity...\n"
mv *.checksum local_sum
sha256sum *.tar.gz > pkg_sum
/usr/bin/glacier-integrity-check local_sum pkg_sum
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Integrity check failed.\n"
exit 1
fi
printf "$green[ $check ]$reset Integrity check passed.\n"
else
printf "$yellow[ ! ]$reset Skipping integrity check...\n"
fi
}
unpack_pkg() {
printf "$blue[ i ]$reset Unpacking $2.tar.gz...\n"
mkdir $2 && mv $2.tar.gz $2 && cd $2
pv $2.tar.gz | tar -xz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Could not unpack $2.tar.gz.\n"
cd .. && rm -rf $2
exit 1
fi
}
installpkg() {
printf "$blue[ i ]$reset Installing $2...\n"
sleep 1
chmod +x *
./INSTALL.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
mv $2-pkginfo.json /etc/glacier/pkginfo
}
updatepkg() {
printf "$blue[ i ]$reset Updating $2...\n"
sleep 1
chmod +x *
./UPDATE.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
}
removepkg() {
printf "$blue[ i ]$reset Removing $2...\n"
sleep 1
chmod +x *
/etc/glacier/pkginfo/$2.remove
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to remove $2.\n"
cd .. && rm -rf $2
exit 1
fi
rm /var/log/glacier/$2.timestamp
rm /etc/glacier/pkginfo/$2-pkginfo.json
}
installpkg_from_cache() {
printf "$blue[ i ]$reset Installing $2 from cache...\n"
sleep 1
cd /var/cache/glacier && cp $2.tar.gz /tmp && cd /tmp
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package does not exist in cache.\n"
exit 1
fi
unpack_pkg
install_pkg
}
clear_cache() {
printf "$blue[ i ]$reset Clearing cache...\n"
sleep 1
cd /var/cache/glacier && rm -rvf *
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Some items could not be cleared.\n"
exit 1
fi
}
#
# Show Glacier debugging info
#
debug_info() {
printf "$blue>> Glacier v3.3.0$reset\n"
printf ">> Checking for valid download backend...\n"
whereis wget
whereis curl
whereis aria2c
printf ">> Checking which download backend is in use...\n"
echo $GLACIER_DOWNLOAD_BACKEND
printf ">> Checking if all Glacier files are present...\n"
whereis glacier glacier.conf make.conf
ls /var/log | grep glacier
ls /var/cache | grep glacier
printf ">> If any files are missing, Glacier will not behave properly.\n"
printf ">> Checking if terminal can output unicode symbols...\n"
printf "$check\n"
printf "$error\n"
printf "$warning\n"
printf "$question\n"
printf "$red Red.$reset\n"
printf "$green Green.$reset\n"
printf "$yellow Yellow.$reset\n"
printf "$blue Blue.$reset\n"
printf "NOTE: If you use a custom colorscheme, colors will not match.\n"
printf ">> Checking if repositories are valid...\n"
echo $GREPO1
echo $GREPO2
echo $GREPO3
echo $GREPO4
echo $GREPO5
echo $GREPO6
echo $GREPO7
echo $GREPO8
printf ">> Checking which shell is in use...\n"
which $SHELL
printf "NOTE: If you use zsh, a percentage symbol may appear after some lines.\n"
printf ">> Gathered debug information.\n"
printf ">> To save this information to a file, run:\n"
printf ">> $ glacier --debuginfo > glacier.debug\n"
}
#
# Parses JSON from pkginfo files and outputs it
#
query() {
printf "$blue[ i ]$reset Showing information for package '$2'.\n"
printf "$blue>> Package name:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_name
printf "$blue>> Package version:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_version
printf "$blue>> Package description:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_description
printf "$blue>> Source tree size:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .src_tree_size
printf "$blue>> Size of installed files:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .exec_size
printf "$blue>> License:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .license
printf "$blue>> Installation date:$reset " && cat /var/log/glacier/$2.timestamp
}
#
# Will either keep removal script, update it with a new one, or delete it alltogether
#
cleanup_keep_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_update_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_del_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
#
# Execute pre and posr hooks from files
#
pre_hooks() {
source /etc/glacier/hooks
}
pre_op_hooks() {
printf "$blue[ i ]$reset Executing pre-operation hooks...\n"
/etc/glacier/pre-hooks
}
post_hooks() {
printf "$blue[ i ]$reset Executing post-operation hooks...\n"
/etc/glacier/post-hooks
}
search_for_local_pkg() {
printf "$blue[ i ]$reset Searching working directory for package $2...\n"
find $2.tar.gz
if [ "$?" != 0 ]; then
printf "$red[ $error ]$reset Package $2 not found.\n"
exit 1
fi
}
case $1 in
-h|--help)
printf "$blue[ * ] Glacier - Manage installed packages on the system$reset\n"
printf "usage: glacier [-f] [-u] [-x] [-q] [-c] [-ci] [-cc] [-li] [--debuginfo]\n"
printf "\n"
printf "$blue=== Information ===$reset\n"
printf "glacier {-h/--help} - Show this message and exit\n"
printf "glacier {-v/--version} - Show the version and exit\n"
printf "\n"
printf "$blue=== Operations ===$reset\n"
printf "glacier {-f/install} - Install a new package\n"
printf "glacier {-u/update} - Update an installed package\n"
printf "glacier {-x/remove} - Remove an installed package\n"
printf "glacier {-q/query} - Query an installed package\n"
printf "glacier {-c/cache} - Download a package to the cache\n"
printf "glacier {-ci/cache-install} - Install a package from the cache\n"
printf "glacier {-cc/cache-clear} - Clear the cache\n"
printf "glacier {-li/local-install} - Install a package from a local directory\n"
printf "\n"
printf "$blue=== Debugging ===$reset\n"
printf "glacier {--debuginfo} - Show debugging information\n"
printf "\n"
printf "$blue=== Licensing ===$reset\n"
printf "This program is free software: you can redistribute it and/or modify it\n"
printf "under the terms of the GNU General Public License as published by the\n"
printf "Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n"
exit 0
;;
-v|--version)
printf "${blue}Glacier v3.3.0${reset}\n"
exit 0
;;
-f|install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-u|update)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Updating package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
updatepkg "$@"
post_hooks "$@"
cleanup_update_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-x|remove)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Removing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
removepkg "$@"
post_hooks "$@"
cleanup_del_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-q|query)
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
query "$@"
exit 0
;;
-c|cache)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Caching package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
printf "\n"
get_pkg "$@"
int_check "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-ci|cache-install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2' from cache.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
mv $2.tar.gz /opt/glacier/workspace
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-cc|cache-clear)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
clear_cache "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
;;
-li|local-install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
search_for_local_pkg "$@"
printf "$blue[ i ]$reset Installing package '$2' from local file.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cp $2.tar.gz /opt/glacier/workspace
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "$red[ $error ]$reset Aborting.\n"
exit 1
fi
;;
--debuginfo)
debug_info "$@"
exit 0
;;
-*|--*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
esac
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1

185
src/glacier-mkimg/glacier-mkimg Executable file
View File

@@ -0,0 +1,185 @@
#!/bin/sh
# glacier-mkimg - Generate a root filesystem image
#
# This file is part of Glacier.
#
# Glacier is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# Glacier is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
am_i_root() {
printf ">> Checking if user is root...\n"
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf ">> glacier-mkimg must be run as root.\n"
exit 1
fi
}
info() {
printf ">> Building root filesystem image with the following settings:\n"
printf "Image build location: /opt/everest\n"
printf "Packages to be installed:\n"
printf " - system-toolchain-bin\n"
printf " - busybox-base-bin\n"
printf " - glacier-base-bin\n"
printf " - make-base-bin\n"
}
init-env() {
mkdir -v /opt/everest
mkdir -v /opt/everest/{sources,toolchain,targetfs}
cd /opt/everest
}
get_skel() {
printf ">> Creating directory layout in /opt/everest...\n"
ROOT=/opt/everest/targetfs
mkdir -v $ROOT/{boot,dev,etc,home,mnt,opt,proc,root,srv,sys,tmp,var}
mkdir -v $ROOT/usr
mkdir -v $ROOT/usr/{bin,sbin,include,lib,lib64,libexec,local,sbin,share,src}
mkdir -v $ROOT/var/{cache,lib,local,lock,log,opt,run,spool,tmp,www}
mkdir -v $ROOT/var/cache/glacier
mkdir -v $ROOT/var/log/glacier
mkdir -v $ROOT/etc/glacier
mkdir -v $ROOT/etc/glacier/pkginfo
ln -sv $ROOT/usr/bin $ROOT/bin
ln -sv $ROOT/usr/lib $ROOT/lib
lv -sv $ROOT/usr/sbin $ROOT/sbin
ln -sv $ROOT/usr/lib64 $ROOT/lib64
printf ">> Finished.\n"
exit 0
}
prepare_for_pkg() {
printf ">> Preparing for package installation...\n"
glacier -c system-toolchain-bin
glacier -c busybox-base-bin
glacier -c glacier-base-bin
glacier -c make-base-bin
printf ">> Done.\n"
exit 0
}
install_pkg() {
printf ">> Installing packages...\n"
glacier -ci system-toolchain-bin
if [ "$?" != "0" ]; then
exit 1
fi
glacier -ci busybox-base-bin
if [ "$?" != "0" ]; then
exit 1
fi
glacier -ci glacier-base-bin
if [ "$?" != "0" ]; then
exit 1
fi
glacier -ci make-base-bin
if [ "$?" != "0" ]; then
exit 1
fi
}
warn_about_cache() {
printf ">> WARNING: The cache was used for installing packages to the target.\n"
printf ">> It is recommended to run the following command to clean the cache:\n"
printf ">> glacier -cc\n"
exit 0
}
change_ownership() {
printf ">> Ensuring file ownership is correct...\n"
chown -Rv root:root /opt/everest/targetfs
chgrp -v 13 /opt/everest/targetfs/var/log/lastlog
printf ">> Done.\n"
}
create_img() {
printf ">> Creating filesystem image...\n"
install -dv /opt/everest/build
cd /opt/everest/targetfs
tar -cvf /opt/everest/build/everestlinux-RELEASE-img.tar *
zstd /opt/everest/build/everestlinux-RELEASE-img.tar
rm /opt/everest/build/everestlinux-${EVEREST_RELEASE}-img.tar
printf ">> Done.\n"
}
finish() {
printf ">> Build has finished.\n"
printf ">> Filesystem image is located in the following directory:\n"
printf ">> /opt/everest/build\n"
}
showhelp_big() {
printf "glacier-mkimg - easily compile an Everest Linux image\n"
printf "usage - glacier-mkimg [-h] [init] [-t] [-s] [-p] [-o] [-i]\n"
printf "\n"
printf "glacier-mkimg {init} initialize the environment\n"
printf "glacier-mkimg {-s} only download filesystem skeleton\n"
printf "glacier-mkimg {-p} only install packages to /opt/everest\n"
printf "glacier-mkimg {-o} only change ownership of /opt/everest\n"
printf "glacier-mkimg {-i} only create image\n"
printf "\n"
printf "If no option is passed, glacier-mkimg will perform all tasks\n"
printf "glacier-mkimg init must be run before anything else is done\n"
printf "\n"
printf "This program is free software.\n"
printf "See the GNU GPL version 3 for details.\n"
exit 0
}
case $1 in
-h|--help)
showhelp_big
;;
init)
am_i_root "$@"
init_env "$@"
exit 0
;;
-s)
get_skel "$@"
exit 0
;;
-p)
prepare_for_pkg "$@"
install_pkg "$@"
warn_about_cache "$@"
exit 0
;;
-o)
change_ownership "$@"
exit 0
;;
-i)
create_img "$@"
exit 0
;;
-*)
printf "usage: glacier-mkimg [-h] [init] [-s] [-p] [-o] [-i]\n"
exit 1
;;
*)
get_skel "$@"
prepare_for_pkg "$@"
install_pkg "$@"
warn_about_cache "$@"
change_ownership "$@"
create_img "$@"
finish
exit 0
;;
esac
printf "usage: glacier-mkimg [-h] [init] [-s] [-p] [-o] [-i]\n"
exit 1

5
src/glacier-v4/glacier4 Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
. /etc/glacier/hooks
get_pkg()

8
src/glacier-v4/input-test Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
. /etc/glacier/hooks
for r in ${ALLOWED_REPOS[@]}; do
DOWNLOAD_REPO(1 2 3 4 5 6 7 8)=$GREPO/$r
echo $DOWNLOAD_REPO
done

8
src/glacier-v4/input-test-2 Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
. /etc/glacier/hooks
for r in ${ALLOWED_REPOS[@]}; do
set REPO${ALLOWED_REPOS[@]}=$GREPO/${r}
echo ${REPO}${ALLOWED_REPOS[@]}
done

5
src/glacier-v4/input-test-3 Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
for i; do
echo $1
done

37
src/glacier.conf Executable file
View File

@@ -0,0 +1,37 @@
# /etc/glacier.conf
# The settings stored in this file will be loaded when Glacier is called
# For more information on each of these options, see https://git.everest
#
# Repository Glacier will download programs from
export GREPO="https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main"
export ALLOWED_REPOS=("world" "galaxy" "universe" "multiverse")
# Define colors and unicode symbols to be used
export red="\033[1;31m"
export green="\033[1;32m"
export yellow="\033[1;33m"
export blue="\033[1;34m"
export reset="\033[m"
export check="\xE2\x9C\x93"
export error="\xE2\x9C\x95"
export warning="\x21"
export question="\x3F"
# Which backend Glacier will use to download files
# Selecting more than one backend will cause breakage
export GLACIER_DOWNLOAD_BACKEND="wget --quiet --show-progress"
#export GLACIER_DOWNLOAD_BACKEND="curl --output $2.tar.gz"
#export GLACIER_DOWNLOAD_BACKEND="aria2c"
# Enable/disable package integrity checking
# WARNING: Keeping this enabled is strongly recommended.
# This option ensures all packages from the repositories are genuine.
export GLACIER_DO_INT_CHECK="true"
#
# end /etc/glacier.conf
#

5
src/hooks Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
# Glacier Preloading Hooks
source /etc/make.conf
source /etc/glacier.conf

10
src/hooks.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
# This file is meant to maintain legacy support.
printf "This package uses the legacy hooks file (/etc/glacier/hooks.sh).\n"
printf ">>> This is not an error. <<<\n"
printf "If you are not the maintainer of this package, there is no manual intervention required.\n"
printf "If you are the maintainer of this package, please update your usrbuild.sh, usrupdate.sh, and usrremove.sh accordingly.\n"
source /etc/glacier/hooks && /etc/glacier/hooks

72
src/int-check/main.c Normal file
View File

@@ -0,0 +1,72 @@
/* Copyright (C) 2022-2023 Everest Linux Developers
This file is part Glacier.
Glacier is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.
Glacier is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Glacier. If not, see <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include<string.h>
int main(int argc, char *argv[]) {
FILE *fp1;
FILE *fp2;
int cnt1 = 0;
int cnt2 = 0;
int flg = 0;
if (argc < 3) {
printf("not enough arguments\n");
return -1;
}
fp1 = fopen(argv[1],"r");
if (fp1 == NULL) {
printf("\n%s cannot open file \n",argv[1]);
return -1;
}
fseek(fp1,0,SEEK_END);
cnt1 = ftell(fp1);
fp2 = fopen(argv[2],"r");
if (fp2 == NULL) {
printf("\n%s cannot open file \n",argv[2]);
return -1;
}
fseek(fp2,0,SEEK_END);
cnt2 = ftell(fp2);
fseek(fp1,0,SEEK_SET);
fseek(fp2,0,SEEK_SET);
if (cnt1 != cnt2) {
return 1;
} else {
while ( ! feof(fp1)) {
if (fgetc(fp1) != fgetc(fp2)) {
flg = 1;
break;
}
}
if (flg) return 1;
else return 0;
}
fclose(fp1);
fclose(fp2);
return 0;
}

40
src/make.conf Executable file
View File

@@ -0,0 +1,40 @@
#
# make.conf - optimizations and flags for make
#
# Number of parallel makejobs. Change this number to your CPUs cores + threads.
# Example: 6 cores + 6 threads = 12
MAKEFLAGS="-j1"
# Build and compile flags for C and C++ programs.
# Disable these if packages are breaking.
# Using too many optimizations may break packages.
CFLAGS="-02"
CXXFLAGS="${CFLAGS}"
# Flag which treats all warnings as errors.
# Not recommended, as many packages with large codebases will refuse to compile.
#CFLAGS="-Werror"
# Prefix for installed packages. Most packages will follow this.
# Some packages may have their own prefix. For instance, appimages will install to /usr/share/appimages, and be symlinked to /bin.
PREFIX="/usr"
#PREFIX="/usr/local"
# CPU architecture. Most users will use x86_64.
# This setting should manually set itself. If it doesn't, set it manually.
# Note that some packages will not compile for other architectures.
# Example: ARCH="x86_64"
ARCH="${MACHTYPE}"
# Triplet for the target system.
# This should only be used if cross compiling.
# For reference, Everest's triplet is x86_64-linux-musl.
#TARGET="x86_64-linux-musl"
#TARGET="x86_64-pc-linux-gnu"
#TARGET="i386-linux-musl"
#TARGET="i386-pc-linux-gnu"
#
# end make.conf
#

5
src/post-hooks Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
# Glacier post-operation hooks
printf "No hooks to be executed.\n"
exit 1

5
src/pre-hooks Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
# Hooks to be executed before performing an operation on a package
printf "No hooks to be executed.\n"
exit 0

5
src/test/array-test.sh Normal file
View File

@@ -0,0 +1,5 @@
array=("world" "galaxy" "universe" "multiverse")
for i in "${array[@]}"; do
echo "$i"
done

37
src/test/glacier.conf Executable file
View File

@@ -0,0 +1,37 @@
# /etc/glacier.conf
# The settings stored in this file will be loaded when Glacier is called
# For more information on each of these options, see https://git.everest
#
# Repository Glacier will download programs from
export GREPO="https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main"
export ALLOWED_REPOS=("world" "galaxy" "universe" "multiverse")
# Define colors and unicode symbols to be used
export red="\033[1;31m"
export green="\033[1;32m"
export yellow="\033[1;33m"
export blue="\033[1;34m"
export reset="\033[m"
export check="\xE2\x9C\x93"
export error="\xE2\x9C\x95"
export warning="\x21"
export question="\x3F"
# Which backend Glacier will use to download files
# Selecting more than one backend will cause breakage
export GLACIER_DOWNLOAD_BACKEND="wget --quiet --show-progress"
#export GLACIER_DOWNLOAD_BACKEND="curl --output $2.tar.gz"
#export GLACIER_DOWNLOAD_BACKEND="aria2c"
# Enable/disable package integrity checking
# WARNING: Keeping this enabled is strongly recommended.
# This option ensures all packages from the repositories are genuine.
export GLACIER_DO_INT_CHECK="true"
#
# end /etc/glacier.conf
#

461
src/test/glacier.test Executable file
View File

@@ -0,0 +1,461 @@
#!/bin/sh
# Glacier - manage installed packages on a Linux system
#
# This file is part of Glacier.
#
# Glacier is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# Glacier is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
source $(pwd)/hooks-test
#get_pkg() {
# printf "$blue[ i ]$reset Downloading archive for package '$2'...\n"
# $GLACIER_DOWNLOAD_BACKEND $GREPO1/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO2/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO3/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO4/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO5/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO6/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO7/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO8/$2.tar.gz
# if [ "$?" != "0" ]; then
# printf "$red[ $error ]$reset Package '$2' not found.\n"
# exit 1
# fi
# $GLACIER_DOWNLOAD_BACKEND $GREPO1/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO2/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO3/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO4/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO5/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO6/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO7/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO8/$2.tar.gz
# if [ "$?" != "0" ]; then
# printf "$red[ $error ]$reset Package checksum not found.\n"
# exit 1
# fi
#}
get_pkg() {
printf "$blue[ i ]$reset Downloading archive for package '$2'...\n"
for r in ${ALLOWED_REPOS[@]}; do
$GLACIER_DOWNLOAD_BACKEND $GREPO/${r}/$2.tar.gz
done
find $2.tar.gz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package '$2' not found.\n"
exit 1
fi
printf "$blue[ i ]$reset Downloading checksum for package '$2'...\n"
for r in ${ALLOWED_REPOS[@]}; do
$GLACIER_DOWNLOAD_BACKEND $GREPO/${r}/$2.checksum
done
find $2.checksum
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package checksum not found.\n"
exit 1
fi
}
int_check() {
if [ "$GLACIER_DO_INT_CHECK" = "true" ]; then
printf "$blue[ i ]$reset Checking package integrity...\n"
mv *.checksum local_sum
sha256sum *.tar.gz > pkg_sum
/usr/bin/glacier-integrity-check local_sum pkg_sum
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Integrity check failed.\n"
exit 1
fi
printf "$green[ $check ]$reset Integrity check passed.\n"
else
printf "$yellow[ ! ]$reset Skipping integrity check...\n"
fi
}
unpack_pkg() {
printf "$blue[ i ]$reset Unpacking $2.tar.gz...\n"
mkdir $2 && mv $2.tar.gz $2 && cd $2
pv $2.tar.gz | tar -xz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Could not unpack $2.tar.gz.\n"
cd .. && rm -rf $2
exit 1
fi
}
installpkg() {
printf "$blue[ i ]$reset Installing $2...\n"
sleep 1
chmod +x *
./INSTALL.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
mv $2-pkginfo.json /etc/glacier/pkginfo
}
updatepkg() {
printf "$blue[ i ]$reset Updating $2...\n"
sleep 1
chmod +x *
./UPDATE.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
}
removepkg() {
printf "$blue[ i ]$reset Removing $2...\n"
sleep 1
chmod +x *
/etc/glacier/pkginfo/$2.remove
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to remove $2.\n"
cd .. && rm -rf $2
exit 1
fi
rm /var/log/glacier/$2.timestamp
rm /etc/glacier/pkginfo/$2-pkginfo.json
}
installpkg_from_cache() {
printf "$blue[ i ]$reset Installing $2 from cache...\n"
sleep 1
cd /var/cache/glacier && cp $2.tar.gz /tmp && cd /tmp
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package does not exist in cache.\n"
exit 1
fi
unpack_pkg
install_pkg
}
clear_cache() {
printf "$blue[ i ]$reset Clearing cache...\n"
sleep 1
cd /var/cache/glacier && rm -rvf *
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Some items could not be cleared.\n"
exit 1
fi
}
#
# Show Glacier debugging info
#
debug_info() {
printf "$blue>> Glacier v3.3.0$reset\n"
printf ">> Checking for valid download backend...\n"
whereis wget
whereis curl
whereis aria2c
printf ">> Checking which download backend is in use...\n"
echo $GLACIER_DOWNLOAD_BACKEND
printf ">> Checking if all Glacier files are present...\n"
whereis glacier glacier.conf make.conf
ls /var/log | grep glacier
ls /var/cache | grep glacier
printf ">> If any files are missing, Glacier will not behave properly.\n"
printf ">> Checking if terminal can output unicode symbols...\n"
printf "$check\n"
printf "$error\n"
printf "$warning\n"
printf "$question\n"
printf "$red Red.$reset\n"
printf "$green Green.$reset\n"
printf "$yellow Yellow.$reset\n"
printf "$blue Blue.$reset\n"
printf "NOTE: If you use a custom colorscheme, colors will not match.\n"
printf ">> Checking if repositories are valid...\n"
echo $GREPO1
echo $GREPO2
echo $GREPO3
echo $GREPO4
echo $GREPO5
echo $GREPO6
echo $GREPO7
echo $GREPO8
printf ">> Checking which shell is in use...\n"
which $SHELL
printf "NOTE: If you use zsh, a percentage symbol may appear after some lines.\n"
printf ">> Gathered debug information.\n"
printf ">> To save this information to a file, run:\n"
printf ">> $ glacier --debuginfo > glacier.debug\n"
}
#
# Parses JSON from pkginfo files and outputs it
#
query() {
printf "$blue[ i ]$reset Showing information for package '$2'.\n"
printf "$blue>> Package name:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_name
printf "$blue>> Package version:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_version
printf "$blue>> Package description:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_description
printf "$blue>> Source tree size:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .src_tree_size
printf "$blue>> Size of installed files:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .exec_size
printf "$blue>> License:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .license
printf "$blue>> Installation date:$reset " && cat /var/log/glacier/$2.timestamp
}
#
# Will either keep removal script, update it with a new one, or delete it alltogether
#
cleanup_keep_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_update_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_del_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
#
# Execute pre and posr hooks from files
#
pre_hooks() {
source /etc/glacier/hooks
}
pre_op_hooks() {
printf "$blue[ i ]$reset Executing pre-operation hooks...\n"
/etc/glacier/pre-hooks
}
post_hooks () {
printf "$blue[ i ]$reset Executing post-operation hooks...\n"
/etc/glacier/post-hooks
}
case $1 in
-h|--help)
printf "$blue[ * ] Glacier - Manage installed packages on the system$reset\n"
printf "usage: glacier [-f] [-u] [-x] [-q] [-c] [-ci] [-cc] [--debuginfo]\n"
printf "\n"
printf "$blue=== Information ===$reset\n"
printf "glacier {-h/--help} - Show this message and exit\n"
printf "glacier {-v/--version} - Show the version and exit\n"
printf "\n"
printf "$blue=== Operations ===$reset\n"
printf "glacier {-f/install} - Install a new package\n"
printf "glacier {-u/update} - Update an installed package\n"
printf "glacier {-x/remove} - Remove an installed package\n"
printf "glacier {-q/query} - Query an installed package\n"
printf "glacier {-c/cache} - Download a package to the cache\n"
printf "glacier {-ci/cache-install} - Install a package from the cache\n"
printf "glacier {-cc/cache-clear} - Clear the cache\n"
printf "\n"
printf "$blue=== Debugging ===$reset\n"
printf "glacier {--debuginfo} - Show debugging information\n"
printf "\n"
printf "$blue=== Licensing ===$reset\n"
printf "This program is free software: you can redistribute it and/or modify it\n"
printf "under the terms of the GNU General Public License as published by the\n"
printf "Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n"
exit 0
;;
-v|--version)
printf "${blue}Glacier v3.3.0${reset}\n"
exit 0
;;
-f|install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-u|update)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Updating package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
updatepkg "$@"
post_hooks "$@"
cleanup_update_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-x|remove)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Removing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
removepkg "$@"
post_hooks "$@"
cleanup_del_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-q|query)
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
query "$@"
exit 0
;;
-c|cache)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Caching package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
printf "\n"
get_pkg "$@"
int_check "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-ci|cache-install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2' from cache.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
mv $2.tar.gz /opt/glacier/workspace
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-cc|cache-clear)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
clear_cache "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
;;
--debuginfo)
debug_info "$@"
exit 0
;;
-*|--*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
esac
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1

5
src/test/hooks-test Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
# Glacier Preloading Hooks
source /etc/make.conf
source $(pwd)/glacier.conf