Compare commits

534 Commits

Author SHA1 Message Date
PrincessPi e2a1abc717 balzac release 1.0 2026-06-13 04:50:59 -06:00
PrincessPi 8f0d7a38cf rc.348 2026-06-13 04:28:21 -06:00
PrincessPi 6ae34e9d29 rc.347 2026-06-13 04:25:04 -06:00
PrincessPi 77e69f0621 rc.344 2026-06-13 04:12:12 -06:00
PrincessPi f75fabdbba rc.7 2026-06-13 04:09:57 -06:00
PrincessPi 60473dfc52 rc.7 2026-06-13 03:58:59 -06:00
PrincessPi 70e0ef540b rc.12 2026-06-13 03:40:59 -06:00
PrincessPi df38cb6950 rc.11 2026-06-13 03:37:50 -06:00
PrincessPi 458030236e rc.10 2026-06-13 03:36:51 -06:00
PrincessPi 39cf36d5c4 rc.10 2026-06-13 03:34:10 -06:00
PrincessPi 770d1767fd rc.9 2026-06-13 03:29:49 -06:00
PrincessPi ea06b789fb rc.7 2026-06-13 03:28:55 -06:00
PrincessPi 919b49e442 rc.6 2026-06-13 03:27:09 -06:00
PrincessPi 3a1ca1348f rc.5 2026-06-13 03:26:20 -06:00
PrincessPi a1c1023875 rc.5 2026-06-13 03:20:27 -06:00
PrincessPi 1bb6b58ef4 rc.5 2026-06-13 03:19:03 -06:00
PrincessPi e9a22feb25 rc.5 2026-06-13 03:18:50 -06:00
PrincessPi 36f32f26dc rc.5 2026-06-13 03:17:46 -06:00
PrincessPi 7d8600c7b0 rc.4 2026-06-13 03:16:52 -06:00
PrincessPi ef5439dd32 balzac 2026-06-13 03:05:46 -06:00
PrincessPi 7d31e44970 rc.2 2026-06-13 03:03:38 -06:00
PrincessPi 592937843c rc.1 2026-06-13 02:43:47 -06:00
PrincessPi 1dd41d7d89 rc.1 2026-06-13 02:38:39 -06:00
PrincessPi e56c36506a rc.1 2026-06-13 02:36:49 -06:00
PrincessPi 174cc6b277 rc.1 2026-06-13 02:22:18 -06:00
PrincessPi d7c55d9883 rc 2026-06-13 02:19:17 -06:00
PrincessPi 055ed246a2 rc 2026-06-13 02:18:32 -06:00
PrincessPi 30db4c1848 rc 2026-06-13 02:03:55 -06:00
PrincessPi b7488cf680 rc 2026-06-13 02:03:13 -06:00
PrincessPi a6496241a6 rc 2026-06-13 01:54:55 -06:00
PrincessPi 680f3a08c2 rc 2026-06-13 01:12:04 -06:00
PrincessPi 46007f48a7 rc 2026-06-13 01:02:37 -06:00
PrincessPi a290980d66 rc 2026-06-13 00:58:20 -06:00
PrincessPi 2ff2413a8f close to final rev 2026-06-13 00:56:38 -06:00
PrincessPi 643586e7a5 close to final rev 2026-06-13 00:37:16 -06:00
PrincessPi a3db5e79b7 rc 2026-06-13 00:32:15 -06:00
PrincessPi c16f90b5fe close to final rev 2026-06-13 00:28:11 -06:00
PrincessPi d4d735cc94 close to final rev 2026-06-13 00:26:42 -06:00
PrincessPi 531de3b15b close to final rev 2026-06-13 00:14:04 -06:00
PrincessPi 0da9952f74 close to final rev 2026-06-13 00:09:25 -06:00
PrincessPi c1c809204d close to final rev 2026-06-13 00:04:33 -06:00
PrincessPi c13e5450fc close to final rev 2026-06-13 00:01:42 -06:00
PrincessPi 162bbe9cfa close to final rev 2026-06-12 23:57:33 -06:00
PrincessPi e202cb6be2 close to final rev 2026-06-12 23:54:36 -06:00
PrincessPi 2f32d7447f close to final rev 2026-06-12 23:51:51 -06:00
PrincessPi 499ff7ed75 close to final rev 2026-06-12 23:50:55 -06:00
PrincessPi 7e587c3c7c close to final rev 2026-06-12 23:47:07 -06:00
PrincessPi aa0ab287ca balzac 2026-06-12 23:37:51 -06:00
PrincessPi aafd05c9f3 close to final rev 2026-06-12 23:25:15 -06:00
PrincessPi 5c60d42b41 close to final rev 2026-06-12 23:20:50 -06:00
PrincessPi a515b9c765 close to final rev 2026-06-12 23:15:57 -06:00
PrincessPi 30a81a23ca close to final rev 2026-06-12 23:10:17 -06:00
PrincessPi 205aa2b7a8 close to final rev 2026-06-12 23:06:22 -06:00
PrincessPi 9c7c7037c5 close to final rev 2026-06-12 22:43:49 -06:00
PrincessPi 7dfeec2898 close to final rev 2026-06-12 22:39:16 -06:00
PrincessPi ddec60146b testan weindows fizz 2026-06-12 19:25:44 -06:00
PrincessPi 0ce174f0f7 testan weindows fizz 2026-06-12 18:58:24 -06:00
PrincessPi ef9644e885 testan weindows fizz 2026-06-12 18:22:25 -06:00
PrincessPi f2769dbd3e 1781310113 2026-06-12 18:21:53 -06:00
PrincessPi 23527db27f 1781309997 2026-06-12 18:19:56 -06:00
PrincessPi 9553e2c7d2 1781309592 2026-06-12 18:13:12 -06:00
PrincessPi bfa7a67142 1781309557 2026-06-12 18:12:37 -06:00
PrincessPi 96b5747ad9 1781309393 2026-06-12 18:09:53 -06:00
PrincessPi 2b1dba5abe 1781309164 2026-06-12 18:06:04 -06:00
PrincessPi feff418c9f 1781308768 2026-06-12 17:59:28 -06:00
PrincessPi 2a626092e9 1781308677 2026-06-12 17:57:57 -06:00
PrincessPi f3b9253fa6 1781305842 2026-06-12 17:10:42 -06:00
PrincessPi 2ba84c8273 1781304529 2026-06-12 16:48:49 -06:00
PrincessPi 98d3f30802 1781300257 2026-06-12 15:37:37 -06:00
PrincessPi af813e4fd1 1781299558 2026-06-12 15:25:58 -06:00
PrincessPi c31270636f 1781297531 2026-06-12 14:52:10 -06:00
PrincessPi cc84238b99 kms now 2026-05-28 10:06:40 -06:00
PrincessPi 1fb1a48209 idk fuckin virustotal submitter 2026-05-28 01:56:39 -06:00
PrincessPi 6c6d08386f dildozer 2026-05-28 01:27:06 -06:00
PrincessPi 073488eb94 1779896788 2026-05-27 09:46:28 -06:00
PrincessPi 79325ab166 flaky microservice hotfix removed 2026-05-27 07:06:19 -06:00
PrincessPi b89b6c5a0c mutable function incident concatanated 2026-05-27 06:59:20 -06:00
PrincessPi 0d93e432e8 1779886185 2026-05-27 06:49:45 -06:00
PrincessPi d47e568981 brittle runtime regression simplified 2026-05-26 21:58:39 -06:00
PrincessPi 23328875cc nuked tea-cli 2026-05-26 19:58:54 -06:00
PrincessPi 764590c350 hmmm 2026-05-26 19:36:35 -06:00
PrincessPi 657b53c8fb this is my life now. infinite frustration cast upon me by an evil curse 2026-05-23 00:53:33 -06:00
PrincessPi 2cf11eadc7 1779518879 2026-05-23 00:47:59 -06:00
PrincessPi 30b6c00cd5 1779518802 2026-05-23 00:46:41 -06:00
PrincessPi 89b919cc45 1779517396 2026-05-23 00:23:16 -06:00
PrincessPi eda9d5ffbe 1779513677 2026-05-22 23:21:17 -06:00
PrincessPi c5af35e35e 1779505678 2026-05-22 21:07:58 -06:00
PrincessPi c8d0979360 1779503816 2026-05-22 20:36:56 -06:00
PrincessPi 07aaf17ce1 1779491965 2026-05-22 17:19:24 -06:00
PrincessPi e5eebaeca6 1779161309 2026-05-18 21:28:28 -06:00
PrincessPi 8d1e80e3e4 help me goddess this is livingh hell 2026-05-18 21:18:34 -06:00
PrincessPi 6c9aa7252f this is my life now. infinite frustration cast upon me by an evil curse 2026-05-18 21:00:50 -06:00
PrincessPi 509294babd help me 2026-05-18 20:45:34 -06:00
PrincessPi 9fd820b955 help me 2026-05-18 20:38:32 -06:00
PrincessPi 7602cb5949 wooo 2026-05-18 16:15:26 -06:00
PrincessPi 2c766aa001 wooo 2026-05-18 15:47:20 -06:00
PrincessPi 5710f98224 wooo 2026-05-18 15:45:06 -06:00
PrincessPi 5a15d4173c wooo 2026-05-18 15:40:55 -06:00
PrincessPi 3b8c806148 now to harass users HARDER 2026-05-18 11:49:09 -06:00
PrincessPi cb5ed31fd6 notify message donesies 2026-05-18 11:41:02 -06:00
PrincessPi b2a21ab1b2 notify message donesies 2026-05-18 11:38:51 -06:00
PrincessPi 001abfffef i thiiink da img_dump be workan ok nao.. maybe idk 2026-05-18 11:24:37 -06:00
PrincessPi 0197ba4c64 i thiiink da img_dump be workan ok nao.. maybe idk 2026-05-18 09:17:40 -06:00
PrincessPi d9616f7f32 i thiiink da img_dump be workan ok nao.. maybe idk 2026-05-18 09:10:48 -06:00
PrincessPi 5c3c632a77 i thiiink da img_dump be workan ok nao.. maybe idk 2026-05-18 08:38:31 -06:00
PrincessPi bca726405e workan on ps script for gettin fuckin usb to fuckin work on wsl 2026-05-18 06:47:05 -06:00
PrincessPi 2935718499 workan on ps script for gettin fuckin usb to fuckin work on wsl 2026-05-18 06:23:01 -06:00
PrincessPi 7b50366039 LFGGGGGGG ITS FUCKIN WORKANSSSS 2026-05-18 06:02:35 -06:00
PrincessPi 50a79de9b8 workan on ps script for gettin fuckin usb to fuckin work on wsl 2026-05-18 05:19:41 -06:00
PrincessPi db53c49439 workan on image dump tools and xrdp a desktop over windows 2026-05-18 03:40:50 -06:00
PrincessPi 04febcad68 how do i look? do i look alright? did they like it? god i hope they liked me 2026-05-13 11:30:56 -06:00
PrincessPi 8df4bf4bee how do i look? do i look alright? did they like it? god i hope they liked me 2026-05-13 10:49:15 -06:00
PrincessPi b423b341c9 m0ar disk handling shit 2026-05-13 06:52:31 -06:00
PrincessPi 224e953e68 m0ar disk handling shit 2026-05-13 04:32:15 -06:00
PrincessPi 3f0dd7cddf sumshit 2026-05-13 04:30:53 -06:00
PrincessPi 17ade43f03 sumshit 2026-05-13 04:24:12 -06:00
PrincessPi bbb66f591c workann on some sntiforensics shit 2026-05-12 23:47:38 -06:00
PrincessPi c36ea4f36b even bettar 2026-05-12 14:39:31 -06:00
PrincessPi 3eb07d6e15 even bettar 2026-05-12 13:28:11 -06:00
PrincessPi 1050ce2062 evezsz 2026-05-12 05:11:14 -06:00
PrincessPi 809163760e even bettar 2026-05-12 04:58:38 -06:00
PrincessPi 8e81b4b29e even bettar 2026-05-12 04:43:25 -06:00
PrincessPi 7719c92b89 even bettar 2026-05-12 03:34:44 -06:00
PrincessPi 372b12d452 new contender for mass file management script 2026-05-12 03:08:10 -06:00
PrincessPi 0b49161a5b making it there 2026-05-11 22:21:35 -06:00
PrincessPi 3402e5fe67 making it there 2026-05-11 21:55:50 -06:00
PrincessPi 8633f4e008 Makin a hardcore data protector/archiver/version controller/verifier that will monitor a dir of files and on each change or new file, (after archiving the old versions) a new sha256 checksum is generated, git version control done, and redundant backup archives via restic 2026-05-11 20:54:00 -06:00
PrincessPi 4bd558fb69 gfixxasn installerrr 2026-04-23 01:27:56 -06:00
PrincessPi d0b64fbcc5 hnigh aS a pi 2026-04-22 19:14:08 -06:00
PrincessPi 02e7f24037 hnigh aS a pi 2026-04-22 18:51:10 -06:00
PrincessPi 92eaa8b0c8 hnigh aS a pi 2026-04-22 18:42:51 -06:00
PrincessPi 67f7132223 hnigh aS a pi 2026-04-22 18:41:22 -06:00
PrincessPi 06b3c0dc27 hnigh aS a pi 2026-04-22 18:35:48 -06:00
PrincessPi a7e54bb42e hnigh aS a pi 2026-04-22 18:34:28 -06:00
PrincessPi 99222fa659 added secvfurity and antiforensics to passcheck 2026-03-27 19:54:46 -06:00
PrincessPi b8a4645545 ADDED CL;ENUP TO PASSCHECK 2026-03-27 19:48:44 -06:00
PrincessPi 482107a260 sum crypto shit and poasscheck 2026-03-27 19:27:28 -06:00
PrincessPi 3ded621b0f 1773883299 2026-03-18 19:21:39 -06:00
PrincessPi d2424a14da cutting bloat from linux installer 2026-02-07 03:48:59 -07:00
PrincessPi f29dadb3f4 cutting bloat from linux installer 2026-02-06 22:05:39 -07:00
PrincessPi b80a894cf5 sum shitz for da windowz repaire scripptytyt 2026-01-28 11:22:01 -07:00
PrincessPi cc5be8a900 1769624158 2026-01-28 11:15:58 -07:00
PrincessPi 651a2732e6 1769622172 2026-01-28 10:42:52 -07:00
PrincessPi 7c4b791a03 1769621519 2026-01-28 10:31:59 -07:00
PrincessPi a5b0d43d2b more silly progrrersss 2026-01-28 09:50:03 -07:00
PrincessPi 7994a6779a more silly progrrersss 2026-01-28 09:30:42 -07:00
PrincessPi 5bc9c551e9 more silly progrrersss 2026-01-28 09:16:53 -07:00
PrincessPi f68f8c0953 moar todos on ssh_create_sign_verify 2026-01-28 08:09:58 -07:00
PrincessPi 0e25c08cb7 moar todos on ssh_create_sign_verify 2026-01-28 07:59:35 -07:00
PrincessPi 108717a486 moar todos on ssh_create_sign_verify 2026-01-28 07:55:49 -07:00
PrincessPi 942ae67cc3 moar todos on ssh_create_sign_verify 2026-01-28 07:50:36 -07:00
PrincessPi 9a829b47bc silly anon ssh key generate/sign/verify dealeo kinda workan :3 2026-01-28 06:28:07 -07:00
PrincessPi ff5ec25bbf 1769606459 2026-01-28 06:20:59 -07:00
PrincessPi d183e3873e workan on tool to generate/sign/verify/prepare files signed with anonymous ssh keyz 2026-01-28 06:14:20 -07:00
PrincessPi c089b9499c HII HII 2026-01-28 03:00:12 -07:00
PrincessPi 8fa6dc8cf5 HII HII 2026-01-28 02:59:51 -07:00
PrincessPi 851baa1291 1766881388 2025-12-27 17:23:07 -07:00
PrincessPi 6dcee72d30 1766852063 2025-12-27 09:14:22 -07:00
PrincessPi 0c51ae5d5f 1766850174 2025-12-27 08:42:54 -07:00
PrincessPi 5f95b8dddc 1766823474 2025-12-27 01:17:54 -07:00
PrincessPi 5eba548af5 1766822145 2025-12-27 00:55:45 -07:00
PrincessPi 49e8b4cbb7 1766818506 2025-12-26 23:55:06 -07:00
PrincessPi 0c3fe251d3 DILDO DEPLOYED 2025-12-23 15:28:21 -07:00
PrincessPi 2222e092b5 DILDO DEPLOYED 2025-12-23 15:09:12 -07:00
PrincessPi 8d4e5491fa there is absolutely no reason to remain rational 2025-12-21 15:44:18 -07:00
PrincessPi ffce4d7cac im smokin these drugs like i smoke your dads gock 2025-12-21 15:23:57 -07:00
PrincessPi dba0f98844 1766339402 2025-12-21 10:50:02 -07:00
PrincessPi 4d2de52d68 meat 2025-12-21 07:11:47 -07:00
PrincessPi 7caa3d155a concurrent scheduler incident reverted 2025-12-20 20:24:52 -07:00
PrincessPi fb28e9089c 1766287467 2025-12-20 20:24:27 -07:00
PrincessPi 9168cfb48d redundant queue segfault fixed 2025-12-20 20:22:35 -07:00
PrincessPi 0ee536b258 makiin a problem of myself lmao 2025-12-20 20:19:53 -07:00
PrincessPi afbd0b2b6f sum random bullshit lmfao 2025-12-20 19:42:42 -07:00
PrincessPi 6705777956 1766275776 2025-12-20 17:09:36 -07:00
PrincessPi b661dc3efb added raw list download fixed sum shit too 2025-12-20 12:08:02 -07:00
PrincessPi bf05377670 1766003508 2025-12-17 13:31:48 -07:00
PrincessPi 4a0c92e351 1765993998 2025-12-17 10:53:17 -07:00
PrincessPi 3058126e72 1765990435 2025-12-17 09:53:54 -07:00
PrincessPi 5daeaac2b8 verbose and sudo on xz and shit 2025-12-17 09:02:48 -07:00
PrincessPi 340bb7d705 no moe spamming the fuckin bashrc 2025-12-17 09:00:35 -07:00
PrincessPi ba12d01c26 tryin oniux from normie install 2025-12-17 04:53:35 -07:00
PrincessPi 86e441917b tryin oniux from normie install 2025-12-17 04:52:15 -07:00
PrincessPi 2ffe86ea3d tryin oniux from normie install 2025-12-17 04:51:40 -07:00
PrincessPi 12b710a249 tryin oniux from normie install 2025-12-17 04:50:26 -07:00
PrincessPi cdd7421c2f updooted packages 2025-12-17 04:49:07 -07:00
PrincessPi 1285f2c0c8 updooted packages 2025-12-17 04:26:00 -07:00
PrincessPi 391caefcb3 updooted packages 2025-12-17 04:17:16 -07:00
PrincessPi e8c24259f3 updooted packages 2025-12-17 04:15:09 -07:00
PrincessPi 7193c02b5b updooted packages 2025-12-17 04:10:16 -07:00
PrincessPi ddf4545fd1 1765968180 2025-12-17 03:42:59 -07:00
PrincessPi e867f599ab updooted packages 2025-12-17 03:30:34 -07:00
PrincessPi c7736f0d59 updooted readme 2025-12-17 01:47:47 -07:00
PrincessPi ddedfea791 UPDOOTIN pi_create_from_img 2025-12-17 01:45:45 -07:00
PrincessPi 3d520237a5 added pi_create_from_img 2025-12-17 01:33:44 -07:00
PrincessPi a87b3f6488 added pi_create_from_img 2025-12-17 01:33:15 -07:00
PrincessPi de04926a66 added pi_create_from_img 2025-12-17 01:31:41 -07:00
PrincessPi 4c57a1722a 1765959331 2025-12-17 01:15:30 -07:00
PrincessPi 5861df13a9 1765952237 2025-12-16 23:17:17 -07:00
PrincessPi 827ba92ce6 1765944721 2025-12-16 21:12:01 -07:00
PrincessPi 835dc517ac 1765942009 2025-12-16 20:26:49 -07:00
PrincessPi 1686aa6f16 1765939604 2025-12-16 19:46:44 -07:00
PrincessPi a106473cde 1765939292 2025-12-16 19:41:31 -07:00
PrincessPi b9774652de 1765939233 2025-12-16 19:40:32 -07:00
PrincessPi 15feabcd6a 1765937954 2025-12-16 19:19:14 -07:00
PrincessPi 4604e0b5fb workan on install scripp 2025-12-16 18:09:09 -07:00
PrincessPi 0dfda2dc2e workan on install scripp 2025-12-16 17:26:46 -07:00
PrincessPi 389b33ce26 workan on install scripp 2025-12-16 17:18:51 -07:00
PrincessPi c5eb1f659f IM_SO_TIRED_BOSS.ps1 finally working clean 2025-12-13 06:02:41 -07:00
PrincessPi bb2137c5d1 workan on addin da chkdsk equiv \ 2025-12-12 22:08:24 -07:00
PrincessPi ec63219d1c workan on addin da chkdsk equiv 2025-12-12 22:05:51 -07:00
PrincessPi 46dc7e10b0 okie now its proper ig lmao 2025-12-12 21:52:25 -07:00
PrincessPi 4e6ec7338d good nuff improvement to IM_SO_TIRED_BOSS\ 2025-12-12 21:51:27 -07:00
PrincessPi fc19333cf5 good nuff improvement to IM_SO_TIRED_BOSS\ 2025-12-12 21:49:28 -07:00
PrincessPi 99de64b10b removan da source statements to preven errors? 2025-12-10 10:35:01 -07:00
PrincessPi fdfa7dbce5 removan da source statements to preven errors? 2025-12-10 10:32:48 -07:00
PrincessPi 19e705734d added argon2 to package lsitiem 2025-12-03 08:41:57 -07:00
PrincessPi 2e57a2f67e fixed fix_permissions abd added sync media 2025-11-30 17:17:51 -07:00
PrincessPi 5c32b7d26d make fix_permissions do it right 2025-11-30 05:50:00 -07:00
PrincessPi ef2bdd7096 make fix_permissions do it right 2025-11-30 05:43:59 -07:00
PrincessPi 6cb611282d more minor layout changes to checkbadge 2025-11-17 21:14:56 -07:00
PrincessPi e687e92653 more minor layout changes to checkbadge 2025-11-17 21:13:07 -07:00
PrincessPi ce8f4263c0 more minor layout changes to checkbadge 2025-11-17 21:10:14 -07:00
PrincessPi b3ded5e44d more minor layout changes to checkbadge 2025-11-17 21:08:40 -07:00
PrincessPi 3ed2f90f38 1763438789 2025-11-17 21:06:28 -07:00
PrincessPi b73e5651c2 add jq to install script and improved cxheckbadge with profile name 2025-11-17 21:01:03 -07:00
PrincessPi 9c9b930aa3 add jq to install script and improved cxheckbadge with profile name 2025-11-17 20:52:59 -07:00
PrincessPi cfb220483d add jq to install script and improved cxheckbadge with profile name 2025-11-17 20:50:38 -07:00
PrincessPi 613b18a182 add jq to install script and improved cxheckbadge with profile name 2025-11-17 20:42:58 -07:00
PrincessPi e3b59401f8 add jq to install script and improved cxheckbadge with profile name 2025-11-17 20:33:51 -07:00
PrincessPi 45a810fa95 add jq to install script and improved cxheckbadge with profile name 2025-11-17 20:21:27 -07:00
PrincessPi 0298b613f6 added checkbadge 2025-11-17 20:12:40 -07:00
PrincessPi 3467a82edb cleanupa 2025-11-15 10:00:27 -07:00
PrincessPi 806b4ffea9 cleanupa 2025-11-15 08:29:00 -07:00
PrincessPi 0085f49694 cleanupa 2025-11-15 03:38:27 -07:00
PrincessPi 8ea9c3c93a 1763199464 2025-11-15 02:37:43 -07:00
PrincessPi baee1e4117 1763193304 2025-11-15 00:55:03 -07:00
PrincessPi 7da67ea379 1763193140 2025-11-15 00:52:20 -07:00
PrincessPi d32f9d86a0 1762578114 2025-11-07 22:01:53 -07:00
PrincessPi f621b35077 1762573788 2025-11-07 20:49:48 -07:00
PrincessPi 4151421cf7 1762573733 2025-11-07 20:48:52 -07:00
PrincessPi 4003915782 1762563397 2025-11-07 17:56:36 -07:00
PrincessPi 1770ca54a2 ffmpreg gif loopy changed to apng for quality and transparency 2025-11-07 17:41:54 -07:00
PrincessPi 2278b2a0f0 ffmpreg gif loopy changed to apng for quality and transparency 2025-11-07 17:36:49 -07:00
PrincessPi 663829c68a fixies 2025-11-07 07:05:58 -07:00
PrincessPi d16fcc794e fixies 2025-11-07 06:55:50 -07:00
PrincessPi 950e9547c8 fixies 2025-11-07 06:28:36 -07:00
PrincessPi c269d17ab0 fixies 2025-11-07 06:17:21 -07:00
PrincessPi 497978bf94 fixies 2025-11-07 06:11:46 -07:00
PrincessPi 92827106e2 fixies 2025-11-07 05:39:08 -07:00
PrincessPi 4f84694119 fixies 2025-11-07 05:36:40 -07:00
PrincessPi d187dfd8ba exec 2025-11-07 05:31:05 -07:00
PrincessPi f35b496e41 1762518469 2025-11-07 05:27:48 -07:00
PrincessPi 6cf4b0030d 1762518351 2025-11-07 05:25:51 -07:00
PrincessPi 4496c6192c 1762518060 2025-11-07 05:21:00 -07:00
PrincessPi 6c4240fdb6 1762515584 2025-11-07 04:39:43 -07:00
PrincessPi 453f16e91e 1762513590 2025-11-07 04:06:30 -07:00
PrincessPi d7a95af9cf 1762293327 2025-11-04 14:55:27 -07:00
PrincessPi 13b5b358d4 1762293168 2025-11-04 14:52:48 -07:00
PrincessPi b7ad6c6771 waypoint 2025-11-04 14:47:09 -07:00
PrincessPi c7503a28cc waypoint 2025-11-04 14:32:25 -07:00
PrincessPi eae4837202 waypoint 2025-11-04 14:30:58 -07:00
PrincessPi 5ef51abb2b waypoint 2025-11-04 14:26:10 -07:00
PrincessPi d401b6b36f 1762290436 2025-11-04 14:07:15 -07:00
PrincessPi be2761e69b 1762290045 2025-11-04 14:00:44 -07:00
PrincessPi dd4d32ee2a 1762289793 2025-11-04 13:56:32 -07:00
PrincessPi 8544c4fab4 1762283597 2025-11-04 12:13:17 -07:00
PrincessPi 2742a987c8 1762283160 2025-11-04 12:05:59 -07:00
PrincessPi 5a9a9a2f7b 1762283097 2025-11-04 12:04:57 -07:00
PrincessPi 1cbb68715b 1762282465 2025-11-04 11:54:24 -07:00
PrincessPi cb39702063 waypoint 2025-11-04 11:50:14 -07:00
PrincessPi cf1453e3b7 waypoint 2025-11-04 11:40:19 -07:00
PrincessPi 2d307cadc4 waypoint 2025-11-04 11:37:16 -07:00
PrincessPi e1b4dcec9d bimplebl 2025-11-04 10:47:39 -07:00
PrincessPi 2dd270b9b0 dat silly measure_performance command almost workan 2025-11-04 09:53:45 -07:00
PrincessPi 48266b3287 1762268611 2025-11-04 08:03:31 -07:00
PrincessPi fead1ad279 1762264884 2025-11-04 07:01:23 -07:00
PrincessPi d65878ff93 1762264845 2025-11-04 07:00:45 -07:00
PrincessPi 4c3289bd2f waypoint 2025-11-04 06:49:27 -07:00
PrincessPi af5882d3e6 waypoint 2025-11-04 06:20:23 -07:00
PrincessPi 6a599668b8 waypoint 2025-11-04 06:20:00 -07:00
PrincessPi 694d7d06c4 ADDED polygen and polygen-data to packages 2025-11-02 19:35:04 -07:00
PrincessPi bc3ffa79ad ADDED polygen and polygen-data to packages 2025-11-02 19:32:27 -07:00
PrincessPi aeeab5f638 ADDED polygen and polygen-data to packages 2025-11-02 19:24:28 -07:00
PrincessPi d8696dcad1 powershell to turn video files into looping apng files at high quality with ffmpeg, and friendlyfriend :3 2025-11-02 19:11:40 -07:00
PrincessPi ae96a64b01 ffmpreg gif loopy changed to apng for quality and transparency 2025-11-02 14:50:32 -07:00
PrincessPi cbac96edaa 1762116201 2025-11-02 13:43:20 -07:00
PrincessPi 7cced7f610 added seclists to packages 2025-11-02 10:40:57 -07:00
PrincessPi bdff4e1de5 added seclists to packages 2025-11-02 10:35:20 -07:00
PrincessPi 20217ef231 :poopin: 2025-11-02 10:27:11 -07:00
PrincessPi 6478f9e373 faster git downdoots 2025-11-02 10:07:58 -07:00
PrincessPi e8bc4719d7 faster git downdoots 2025-11-02 10:02:06 -07:00
PrincessPi 877ba97f72 dinglebrrs 2025-11-02 07:47:46 -07:00
PrincessPi ef8122e401 rifle buss 2025-11-02 07:38:05 -07:00
PrincessPi aa0f009924 rifle buss 2025-11-02 07:26:00 -07:00
PrincessPi ef0b0760cb rifle buss 2025-11-02 07:15:26 -07:00
PrincessPi 49b882fffa rifle buss 2025-11-02 07:01:13 -07:00
PrincessPi c52f15cbf8 rifle buss 2025-11-02 06:57:31 -07:00
PrincessPi 80a3fe7928 rifle buss 2025-11-02 06:33:40 -07:00
PrincessPi 306c8d2543 1762088095 2025-11-02 05:54:55 -07:00
PrincessPi 0772b9348d 1762087209 2025-11-02 05:40:08 -07:00
PrincessPi 0ce9576e52 1762086562 2025-11-02 05:29:22 -07:00
PrincessPi a25a307e06 1762086434 2025-11-02 05:27:14 -07:00
PrincessPi 0f3d31887f 1762073297 2025-11-02 01:48:17 -07:00
PrincessPi 37ca62cd8c 1762073226 2025-11-02 01:47:06 -07:00
PrincessPi b63b2831fb 1762072268 2025-11-02 01:31:08 -07:00
PrincessPi 5d7d8d05ae weeewoooo 2025-11-02 01:49:52 -06:00
PrincessPi de836dae72 weeewoooo 2025-11-01 22:46:58 -06:00
PrincessPi 523d8998e0 weeewoooo 2025-11-01 22:38:39 -06:00
PrincessPi e14d9023cd weeewoooo 2025-11-01 22:23:06 -06:00
PrincessPi 9a147eb4c9 weeewoooo 2025-11-01 22:08:10 -06:00
PrincessPi 37d372043c weeewoooo 2025-11-01 22:05:24 -06:00
PrincessPi 2c8681f380 weeewoooo 2025-11-01 21:18:16 -06:00
PrincessPi afc3ec8419 weeewoooo 2025-11-01 21:15:33 -06:00
PrincessPi 475b81c38e ibnstaller;'.';l, 2025-11-01 19:44:25 -06:00
PrincessPi d2a3a2d996 ibnstaller;'.';l, 2025-11-01 19:21:35 -06:00
PrincessPi 56dfa5549c ibnstallededd 2025-11-01 19:16:03 -06:00
PrincessPi 26aed9a9ff ibnstaller 2025-11-01 19:04:16 -06:00
PrincessPi 36e15e04e7 ibnstaller 2025-11-01 18:52:15 -06:00
PrincessPi d86711ec06 ibnstaller 2025-11-01 18:44:32 -06:00
PrincessPi 651306f386 ibnstaller 2025-11-01 18:42:49 -06:00
PrincessPi 72503bb395 ibnstaller 2025-11-01 18:40:03 -06:00
PrincessPi bd5d2218e7 ibnstaller 2025-11-01 18:38:46 -06:00
PrincessPi 446e2d3e58 ibnstaller 2025-11-01 18:31:01 -06:00
PrincessPi bfa09ade00 ibnstaller 2025-11-01 18:21:24 -06:00
PrincessPi b0ff66a271 ibnstaller 2025-11-01 18:18:54 -06:00
PrincessPi 3bd88ec5a2 ibnstaller 2025-11-01 18:18:19 -06:00
PrincessPi a7a3ba38fa ibnstaller 2025-11-01 18:15:38 -06:00
PrincessPi 02427d401d ibnstaller 2025-11-01 18:09:38 -06:00
PrincessPi 237dca5484 ibnstaller 2025-11-01 18:02:59 -06:00
PrincessPi 0c4465a17b ibnstaller 2025-11-01 17:59:44 -06:00
PrincessPi 380d4fee7d ibnstaller 2025-11-01 17:59:19 -06:00
PrincessPi 8877f84261 1762034203 2025-11-01 15:56:42 -06:00
PrincessPi 2808608cf8 1761841632 2025-10-30 10:27:12 -06:00
PrincessPi 2bcf0e2837 1761841202 2025-10-30 10:20:01 -06:00
PrincessPi 81ea0eaa0e 1761838968 2025-10-30 09:42:48 -06:00
PrincessPi 16b42e5a31 1761838366 2025-10-30 09:32:46 -06:00
PrincessPi 500e541647 1761829583 2025-10-30 07:06:23 -06:00
PrincessPi 5f5c271714 docs 2025-10-11 05:57:28 -06:00
PrincessPi f9beed3091 added shutdown delay selector 2025-10-11 05:52:22 -06:00
PrincessPi 5785328dca 1760174590 2025-10-11 03:23:10 -06:00
PrincessPi 5ab58529cd 1760174383 2025-10-11 03:19:43 -06:00
PrincessPi f918f602dc 1760174224 2025-10-11 03:17:04 -06:00
PrincessPi 7b951b98ec 1759374083 2025-10-01 21:01:22 -06:00
PrincessPi 4f55c179b1 doper name for force me off 2025-09-27 15:19:01 -06:00
PrincessPi bb9b36d163 almost got FORCE_ME_OFF workan rghtssssss \ 2025-09-27 08:08:50 -06:00
PrincessPi 071931ef75 1758982059 2025-09-27 08:07:39 -06:00
PrincessPi 19abb3cabb almost got FORCE_ME_OFF workan rghtssssss \ 2025-09-27 08:05:09 -06:00
PrincessPi 4fe88562a7 almost got FORCE_ME_OFF workan rghtssssss 2025-09-27 07:59:23 -06:00
PrincessPi 8915e2de25 almost got FORCE_ME_OFF workan rght 2025-09-27 07:51:21 -06:00
PrincessPi 690d6557ff 1758978935 2025-09-27 07:15:34 -06:00
PrincessPi e41d4a4bfa 1758978811 2025-09-27 07:13:31 -06:00
PrincessPi 944b058b64 workans 2025-09-27 00:09:50 -06:00
PrincessPi 82da572abe workans 2025-09-26 23:01:41 -06:00
PrincessPi 33d34b4163 workans 2025-09-26 22:33:20 -06:00
PrincessPi 531ccbfec0 workans 2025-09-26 22:32:39 -06:00
PrincessPi c566a1a79b workans 2025-09-26 22:31:23 -06:00
PrincessPi aa65a8b9d0 workans 2025-09-26 22:30:27 -06:00
PrincessPi 3438825907 workans 2025-09-26 22:26:37 -06:00
PrincessPi 63ab013ba4 workans 2025-09-26 22:25:08 -06:00
PrincessPi 2a4d6e124c workans 2025-09-26 22:23:14 -06:00
PrincessPi 07ec0f941e workans 2025-09-26 22:10:04 -06:00
PrincessPi d73bcc5f1a workans 2025-09-26 22:05:51 -06:00
PrincessPi 4e72b62c73 1758945132 2025-09-26 21:52:11 -06:00
PrincessPi a56f7888b0 1758944792 2025-09-26 21:46:32 -06:00
PrincessPi 7725ba6905 made new version of windos-repair in powershell with adnin perms, and upgraded force_me_off 2025-09-26 20:40:17 -06:00
PrincessPi b22bcb7bf8 wooo2 2025-09-01 18:43:11 -06:00
PrincessPi 5e75b61dc1 wooo2 2025-09-01 18:42:35 -06:00
PrincessPi f8d9328c67 wooo 2025-09-01 18:40:50 -06:00
PrincessPi d27935f8ba wooo 2025-09-01 18:38:28 -06:00
PrincessPi 7df34bd7ed 1756068522 2025-08-24 14:48:42 -06:00
PrincessPi d1b2239b95 1756027285 2025-08-24 03:21:24 -06:00
PrincessPi 80d922f4ad better webhoo echo -e \nExisting Webhook and Tag found. Using those values unless you enter new ones.\n 2025-08-23 18:34:20 -06:00
PrincessPi 8d5a270cf3 better webhoo echo -e \nExisting Webhook and Tag found. Using those values unless you enter new ones.\n 2025-08-23 18:32:18 -06:00
PrincessPi 6178611e97 better webhoo echo -e \nExisting Webhook and Tag found. Using those values unless you enter new ones.\n 2025-08-23 18:31:32 -06:00
PrincessPi 33164a852c workan on installer and configure_webhook.sh 2025-08-23 18:23:18 -06:00
PrincessPi cbd2427f65 more setuppp 3 2025-08-23 18:19:39 -06:00
PrincessPi 115baf29cb more setuppp 3 2025-08-23 18:07:31 -06:00
PrincessPi 4dad8c57c0 i thiiiiink download_file_list be workan-ish 2025-08-19 22:54:33 -06:00
PrincessPi 810a6cda86 download file list coming along nicely :3 2025-08-19 22:44:12 -06:00
PrincessPi ea87d0f133 1755653155 2025-08-19 19:25:55 -06:00
PrincessPi 61e347db7d 1755653068 2025-08-19 19:24:28 -06:00
PrincessPi 6d423f4806 1755652822 2025-08-19 19:20:22 -06:00
PrincessPi c16152b000 1755652743 2025-08-19 19:19:02 -06:00
PrincessPi 17f340d3a5 1755642578 2025-08-19 16:29:37 -06:00
PrincessPi b4c6e77ab9 1755642550 2025-08-19 16:29:09 -06:00
PrincessPi df16630a5c 1755642013 2025-08-19 16:20:13 -06:00
PrincessPi 328cb50cc4 new scripp maybe' 2025-08-19 00:12:11 -06:00
PrincessPi de7e67a678 niar wzxwkkwbb' 2025-08-15 13:13:24 -06:00
PrincessPi b845900136 workan on pyenvasaaaa 2025-08-15 00:41:53 -06:00
PrincessPi 6682313646 workan on pyenvasaaaa 2025-08-15 00:40:40 -06:00
PrincessPi 356c79958e workan on pyenvasaaaa 2025-08-15 00:39:45 -06:00
PrincessPi 40d9cf3937 workan on pyenvasaaaa 2025-08-15 00:38:07 -06:00
PrincessPi d7520268f9 worakn on setup git 2025-08-15 00:37:33 -06:00
PrincessPi cfe26d9946 workan on pyenvasaaaa 2025-08-15 00:36:51 -06:00
PrincessPi 4fc319d7bc workan on pyenvasaaaa 2025-08-15 00:02:35 -06:00
PrincessPi 6ab887c808 workan on pyenv 2025-08-15 00:00:44 -06:00
PrincessPi dbda2648ed workan on pyenv 2025-08-14 23:54:18 -06:00
PrincessPi 6368e62c65 workan on pyenv 2025-08-14 23:46:54 -06:00
PrincessPi 70dbbfcf78 workan on pyenv 2025-08-14 23:46:02 -06:00
PrincessPi b9acf08524 workan on pyenv 2025-08-14 23:44:45 -06:00
PrincessPi c8a099c804 1755213926 2025-08-14 17:25:25 -06:00
PrincessPi 0666378809 1755213493 2025-08-14 17:18:12 -06:00
PrincessPi d8d34bd893 1755212894 2025-08-14 17:08:13 -06:00
PrincessPi 468853cc37 1755212091 2025-08-14 16:54:50 -06:00
PrincessPi 9cc626be82 1755212065 2025-08-14 16:54:24 -06:00
PrincessPi 502eb8f71c 1755211149 2025-08-14 16:39:09 -06:00
PrincessPi f93f208e50 upgrades to FIND_THE_FUCKING_PI 2025-08-09 19:31:46 -06:00
PrincessPi 7dd1c87f59 upgrades to FIND_THE_FUCKING_PI 2025-08-09 19:16:39 -06:00
PrincessPi 18e4623239 upgrades to FIND_THE_FUCKING_PI 2025-08-09 19:14:47 -06:00
PrincessPi 91411b4b79 upgrades to FIND_THE_FUCKING_PI 2025-08-09 19:13:17 -06:00
PrincessPi ffb4ff4822 upgrades to FIND_THE_FUCKING_PI 2025-08-09 18:53:54 -06:00
PrincessPi 4c1d9a48d8 1754777641 2025-08-09 16:14:02 -06:00
PrincessPi a5df689ce1 1754777620 2025-08-09 16:13:41 -06:00
PrincessPi 01bf230cc7 1754769829 2025-08-09 14:03:49 -06:00
PrincessPi 5b9cee0c3c 1754769331 2025-08-09 13:55:33 -06:00
PrincessPi c02e3dc430 1754768239 2025-08-09 13:37:19 -06:00
PrincessPi c5d554d883 1754768176 2025-08-09 13:36:15 -06:00
PrincessPi 3377f3326b 1754767465 2025-08-09 13:24:24 -06:00
PrincessPi a1e41fd639 1754767134 2025-08-09 13:18:54 -06:00
PrincessPi bcbed6b96e 1754767093 2025-08-09 13:18:13 -06:00
PrincessPi 4ebc93400c 1754766972 2025-08-09 13:16:12 -06:00
PrincessPi 938b49edd3 1754766780 2025-08-09 13:12:59 -06:00
PrincessPi d05288bff5 1754766624 2025-08-09 13:10:24 -06:00
PrincessPi 6cf436e470 1754766583 2025-08-09 13:09:43 -06:00
PrincessPi 64f111981d 1754766562 2025-08-09 13:09:22 -06:00
PrincessPi 1d9ea8944a 1754766302 2025-08-09 13:05:02 -06:00
PrincessPi 201bf84ba3 1754766192 2025-08-09 13:03:12 -06:00
PrincessPi c807f960a2 1754765987 2025-08-09 12:59:46 -06:00
PrincessPi e95e2ea9ad 1754763795 2025-08-09 12:23:15 -06:00
PrincessPi 2eb777d748 1754763656 2025-08-09 12:20:56 -06:00
PrincessPi 82676a39da 1754762109 2025-08-09 11:55:08 -06:00
PrincessPi 0b47bcfdcd 1754761808 2025-08-09 11:50:08 -06:00
PrincessPi ac971e7c57 1754761242 2025-08-09 11:40:42 -06:00
PrincessPi 976ac732b6 1754760546 2025-08-09 11:29:05 -06:00
PrincessPi 418f3a471d 1754757732 2025-08-09 10:42:12 -06:00
PrincessPi e8e4e888b9 1754757518 2025-08-09 10:38:37 -06:00
PrincessPi d0cc75a6ac 1754757341 2025-08-09 10:35:41 -06:00
PrincessPi 8a0c476a8b 1754756936 2025-08-09 10:28:56 -06:00
PrincessPi 1b18a9456f 1754756282 2025-08-09 10:18:01 -06:00
PrincessPi a089244386 1754756090 2025-08-09 10:14:50 -06:00
PrincessPi d345060939 1754756035 2025-08-09 10:13:55 -06:00
PrincessPi e5b31d81a2 1754755581 2025-08-09 10:06:20 -06:00
PrincessPi 54a4f766c4 1754755562 2025-08-09 10:06:02 -06:00
PrincessPi 3930b1dbc4 1754755512 2025-08-09 10:05:12 -06:00
PrincessPi a5b19e0198 1754755343 2025-08-09 10:02:22 -06:00
PrincessPi ad4a53ec43 1754755268 2025-08-09 10:01:07 -06:00
PrincessPi 8826635209 1754755112 2025-08-09 09:58:32 -06:00
PrincessPi fead50f9f6 1754754925 2025-08-09 09:55:24 -06:00
PrincessPi 47db2a1b44 1754754663 2025-08-09 09:51:02 -06:00
PrincessPi 26eb320eee 1754754336 2025-08-09 09:45:36 -06:00
PrincessPi 5f7e206501 1754753167 2025-08-09 09:26:06 -06:00
PrincessPi a99ec33f13 1754753137 2025-08-09 09:25:37 -06:00
PrincessPi 6d256bb2f6 1754753057 2025-08-09 09:24:17 -06:00
PrincessPi 13e0c7887e 1754752896 2025-08-09 09:21:36 -06:00
PrincessPi ea3b878cbc 1754751578 2025-08-09 08:59:38 -06:00
PrincessPi c9e344fe2d 1754751252 2025-08-09 08:54:11 -06:00
PrincessPi 3ce7feb2af 1754751213 2025-08-09 08:53:32 -06:00
PrincessPi 26c5597107 1754751105 2025-08-09 08:51:44 -06:00
PrincessPi f083ff39b6 1754746963 2025-08-09 07:42:43 -06:00
PrincessPi b37f2643be 1754746336 2025-08-09 07:32:16 -06:00
PrincessPi c7822e4145 1754746247 2025-08-09 07:30:46 -06:00
PrincessPi 1440d78ead 1754746184 2025-08-09 07:29:43 -06:00
PrincessPi 803eec5560 1754746126 2025-08-09 07:28:46 -06:00
PrincessPi 9d1bf30ace 1754746023 2025-08-09 07:27:03 -06:00
PrincessPi d50aa0530e 1754745745 2025-08-09 07:22:24 -06:00
PrincessPi 91c516a563 1754745628 2025-08-09 07:20:27 -06:00
PrincessPi 107101c69f 1754745536 2025-08-09 07:18:55 -06:00
PrincessPi b3c4ce32fe 1754745413 2025-08-09 07:16:52 -06:00
PrincessPi e93abac372 1754745289 2025-08-09 07:14:49 -06:00
PrincessPi a73e960869 got sick as fuck looking for my pis 2025-08-09 06:11:00 -06:00
PrincessPi 2d6c2a73a5 1754739431 2025-08-09 05:37:10 -06:00
PrincessPi 50a79cbe95 1754737908 2025-08-09 05:11:48 -06:00
PrincessPi 1847b249be 1754737799 2025-08-09 05:09:58 -06:00
PrincessPi b2d7ce9312 1754737589 2025-08-09 05:06:29 -06:00
PrincessPi 9a0de00ccf 1754736091 2025-08-09 04:41:30 -06:00
PrincessPi 210e28fefa waypoint 2025-08-09 03:32:32 -06:00
PrincessPi 1158131d7b waypoint 2025-08-09 03:30:23 -06:00
PrincessPi 2584e94e51 1754731431 2025-08-09 03:23:51 -06:00
PrincessPi 7f7f7d66a0 waypoint 2025-08-09 03:19:10 -06:00
PrincessPi 1a5457db17 1754723023 2025-08-09 01:03:43 -06:00
PrincessPi ab4d2c529b 1754722570 2025-08-09 00:56:09 -06:00
PrincessPi c01ee08ef0 1754722556 2025-08-09 00:55:56 -06:00
PrincessPi 99e3e62195 made force_me_off.ps1 fuckin work lol 2025-08-09 00:20:47 -06:00
PrincessPi 7569c7b09b made force_me_off.ps1 fuckin work lol 2025-08-09 00:16:49 -06:00
PrincessPi 8786bf3470 1754717723 2025-08-08 23:35:23 -06:00
PrincessPi 5d32a98379 1754717361 2025-08-08 23:29:21 -06:00
PrincessPi eadaf54eff FORCE ME OFF POWERSHELL SCRIPT ADDED 2025-08-08 22:55:01 -06:00
PrincessPi d88874ab9c 1754708313 2025-08-08 20:58:33 -06:00
PrincessPi 477e3deb4a 1754707712 2025-08-08 20:48:32 -06:00
PrincessPi d5f93d5196 1754707529 2025-08-08 20:45:28 -06:00
PrincessPi dfb807be92 1754707459 2025-08-08 20:44:19 -06:00
PrincessPi ad95d42028 fix ifnet 2025-08-08 20:24:34 -06:00
PrincessPi 87ac2a6d5d 1754698889 2025-08-08 18:21:28 -06:00
PrincessPi 0ee8e011c3 1754698259 2025-08-08 18:10:59 -06:00
PrincessPi 675255f72e 1754697949 2025-08-08 18:05:48 -06:00
PrincessPi 1356bc955f fixed ifnet and also DELETED THE LEAKED WEBHOOK LOL 2025-08-08 18:03:04 -06:00
PrincessPi 43fa528f81 fixed ifnet and also DELETED THE LEAKED WEBHOOK LOL 2025-08-08 18:02:08 -06:00
PrincessPi 70c033ac39 fixed ifnet and also DELETED THE LEAKED WEBHOOK LOL 2025-08-08 17:57:57 -06:00
PrincessPi 52b91af97c powershell webhook, pyenv nistaller, changes to install_script.sh 2025-08-08 17:43:26 -06:00
PrincessPi d3d58a71a3 powershell webhook, pyenv nistaller, changes to install_script.sh 2025-08-08 17:38:09 -06:00
PrincessPi cdd4462cd8 wooo 2025-08-08 17:27:16 -06:00
PrincessPi a2c1887348 wooo 2025-08-08 17:26:53 -06:00
PrincessPi 480933c208 wooo 2025-08-08 17:25:52 -06:00
PrincessPi ba9a36eff9 fppo 2025-08-08 16:16:56 -06:00
PrincessPi 9865847aa9 1754691071 2025-08-08 16:11:11 -06:00
PrincessPi 5de20f1115 1754683124 2025-08-08 13:58:43 -06:00
PrincessPi 0b061ddbdd 1754681473 2025-08-08 13:31:12 -06:00
PrincessPi 3fe5783140 1754681353 2025-08-08 13:29:13 -06:00
PrincessPi 7b3fbb4100 1754680973 2025-08-08 13:22:52 -06:00
PrincessPi f2bd04c011 1754680947 2025-08-08 13:22:27 -06:00
PrincessPi 26b382bcd3 1754680866 2025-08-08 13:21:05 -06:00
PrincessPi 7b05b629f8 UNFUCKEDR 2025-08-02 19:11:49 -06:00
PrincessPi 3a876480b1 1754175996 2025-08-02 17:06:37 -06:00
PrincessPi 237a03fb26 stupidfuckinscriopp 2025-08-02 15:58:46 -06:00
PrincessPi f0344ecb15 stupidfuckinscriopp 2025-08-02 15:57:19 -06:00
PrincessPi 5b53a764c0 help 2025-08-02 14:12:35 -06:00
PrincessPi b98cc940ed help 2025-08-02 14:11:21 -06:00
PrincessPi f69e4bbbfd help 2025-08-02 14:05:56 -06:00
PrincessPi 2898030a6e help 2025-08-02 14:05:12 -06:00
PrincessPi b4e4f5a0f8 help 2025-08-02 14:00:39 -06:00
PrincessPi 9a74f9bdfa help 2025-08-02 13:59:30 -06:00
PrincessPi e10ab86b08 makan find_bytes and recursive-analysis fuckin works 2025-08-02 13:54:20 -06:00
PrincessPi 7a32531210 makan find_bytes and recursive-analysis fuckin works 2025-08-02 13:43:43 -06:00
PrincessPi 2b9a2201b6 makan find_bytes fuckin works 2025-08-02 13:41:28 -06:00
PrincessPi 7752edfb2e derpybhoovbvse 2025-08-02 13:26:48 -06:00
PrincessPi 0ee00bb07f dongle 2025-08-02 13:22:53 -06:00
PrincessPi babf421512 1754162526 2025-08-02 13:22:07 -06:00
PrincessPi d74dde1884 more eol bs 2025-08-02 13:18:27 -06:00
PrincessPi e46bc66481 1754161809 2025-08-02 13:10:10 -06:00
PrincessPi 8eb2f297df 1754161790 2025-08-02 13:09:50 -06:00
PrincessPi c4241f147a 1754161352 2025-08-02 13:02:32 -06:00
PrincessPi d36dfd551c 1754161307 2025-08-02 13:01:48 -06:00
PrincessPi 8b056c3071 1754161261 2025-08-02 13:01:01 -06:00
PrincessPi f3b8d793a7 initial commit via gitinitshit 2025-08-02 12:42:31 -06:00
144 changed files with 6773 additions and 123 deletions
+13
View File
@@ -0,0 +1,13 @@
{
"version": 1,
"isRoot": true,
"tools": {
"haveibeenpwned-downloader": {
"version": "0.5.25",
"commands": [
"haveibeenpwned-downloader"
],
"rollForward": false
}
}
}
+11
View File
@@ -0,0 +1,11 @@
* text eol=lf
*.txt text eol=lf
*.sh text eol=lf
*.ini text eol=lf
*.yml text eol=lf
*.md text eol=lf
.env text eol=lf
*.ps1 text eol=crlf
*.bat text eol=
*.pdf binary
*.doc binary
+4
View File
@@ -0,0 +1,4 @@
webhook.txt
tag.txt
*.tmp
*.csv
+218
View File
@@ -0,0 +1,218 @@
---
- name: 'Configure Remote Servers'
hosts: remoteservers
vars_files:
- './variables.yml'
tasks:
# packages
- name: 'Updating apt cache'
apt:
force_apt_get: True
update_cache: True
- name: 'Upgrading all apt packages'
apt:
force_apt_get: True
upgrade: full
become: yes
- name: 'Selected packages to install:'
debug:
msg: "{{ item }}"
loop: "{{ list_of_packages }}"
- name: "Installing packages"
apt:
force_apt_get: True
name: "{{ list_of_packages }}"
state: present
- name: 'Remove useless packages from the cache'
apt:
force_apt_get: True
autoclean: yes
- name: 'Run the equivalent of apt-get clean'
apt:
force_apt_get: True
clean: yes
# add and configure the user
- name: "Add the user {{ new_username }}"
user:
name: "{{ new_username }}"
shell: "{{ login_shell }}"
# password: "{{ user_password }}"
groups: 'sudo,www-data'
append: yes
- name: "Set authorized key for {{ new_username }}"
ansible.posix.authorized_key:
user: "{{ new_username }}"
key: "{{ ssh_key_auth }}"
state: present
# zsh
- name: 'Setting up zsh'
blockinfile:
path: "/home/{{ new_username }}/.zshrc"
block: |
# Set up the prompt
autoload -Uz promptinit
promptinit
prompt adam1
setopt histignorealldups sharehistory
# Use emacs keybindings even if our EDITOR is set to vi
bindkey -e
# Keep 1000 lines of history within the shell and save it to ~/.zsh_history:
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.zsh_history
# Use modern completion system
autoload -Uz compinit
compinit
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
eval $(thefuck --alias fuck)
PATH=~/.local/bin/:$PATH
mode: '0744'
owner: "{{ new_username }}"
group: "{{ new_username }}"
state: present
create: True
# ufw
- name: 'UFW default allow everything outgoing'
community.general.ufw:
default: allow
direction: 'outgoing'
- name: 'UFW default deny everything incoming'
community.general.ufw:
default: deny # reject to throw error instead of drop quietly
direction: 'incoming'
- name: 'UFW enable logging'
community.general.ufw:
logging: 'on'
- name: 'UFW selected rules:'
debug:
msg: "{{item.name}}/{{item.proto}}"
loop: "{{ open_services }}"
- name: 'UFW setting rules'
community.general.ufw:
rule: allow
port: "{{ item.name }}"
proto: "{{ item.proto }}"
loop: "{{ open_services }}"
- name: 'UFW enable'
community.general.ufw:
state: enabled
become: yes
# unattended upgrades
- name: 'Unattended upgrades initial dpkg reconfigure'
command:
cmd: 'dpkg-reconfigure -f noninteractive unattended-upgrades'
become: yes
- name: 'Unattended upgrades configure 20auto-upgrades'
blockinfile:
dest: '/etc/apt/apt.conf.d/20auto-upgrades'
block: |
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
mode: '0644'
owner: 'root'
group: 'root'
state: present
insertafter: EOF
become: yes
- name: 'Unattended upgrades configure 50unattended-upgrades'
blockinfile:
dest: '/etc/apt/apt.conf.d/50unattended-upgrades'
block: |
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "{{ reboot_time }}";
create: True
insertafter: EOF
mode: '0644'
owner: 'root'
group: 'root'
become: yes
- name: 'Unattended upgrades configure daily timer'
lineinfile:
path: '/lib/systemd/system/apt-daily-upgrade.timer'
regexp: '^OnCalendar'
line: "OnCalendar=*-*-* {{ install_time }}"
state: present
become: yes
- name: 'Unattended upgrades configure reboot offset'
lineinfile:
path: '/lib/systemd/system/apt-daily-upgrade.timer'
regexp: '^RandomizedDelaySec'
line: "RandomizedDelaySec={{ reboot_offset }}"
state: present
become: yes
- name: 'Unattended upgrades last dpkg reconfigure'
command:
cmd: 'dpkg-reconfigure -f noninteractive unattended-upgrades'
become: yes
# customscripts
- name: 'Customscripts download'
git:
repo: "{{ custom_scripts_repo }}"
dest: '/tmp/cscripts'
- name: "Create directory {{ custom_scripts_dir }}"
file:
path: "{{ custom_scripts_dir }}"
state: directory
mode: '0755'
owner: 'root'
group: 'root'
become: yes
- name: 'Customscripts installing'
command:
cmd: "cp /tmp/cscripts/customscripts/{{ item }} {{ custom_scripts_dir }}"
loop: "{{ custom_scripts }}"
become: yes
- name: 'Customscripts activating'
command:
cmd: "chmod 755 {{ custom_scripts_dir }}/{{ item }}"
loop: "{{ custom_scripts }}"
become: yes
# crontabs
- name: 'Crontab chkrootkit'
cron:
name: 'chkrootkit'
minute: '0'
hour: '8'
user: 'root'
job: 'chkrootkit -q'
state: present
become: yes
- name: 'Crontab lynis'
cron:
name: 'lynis'
minute: '0'
hour: '11'
user: 'root'
job: 'lynis -q'
state: present
become: yes
# enable services
- name: 'enable/restart nginx'
service:
name: 'nginx'
enabled: True
state: 'restarted'
become: yes
- name: 'enable/restart ssh'
service:
name: 'ssh'
enabled: True
state: 'restarted'
become: yes
+2
View File
@@ -0,0 +1,2 @@
[remoteservers]
someserver ansible_user=root ansible_host=1.1.1.1
+10
View File
@@ -0,0 +1,10 @@
cd ~ && mkdir ansible-playbook && cd ansible-playbook
ansible-playbook ansible-playbook.yml -i inventory.ini
ansible remoteservers -m ping
# errata
ssh root@ip
passwd princesspi
sudo nano /etc/ssh/sshd_config
sudo ufw allow 8888
sudo bash /usr/share/customscripts/crowdsec.sh
+230
View File
@@ -0,0 +1,230 @@
- name: "Install python3"
apt:
name: python3
state: present
- name: "Install python3-pip"
apt:
name: python3-pip
state: present
- name: "Install python3-virtualenv"
apt:
name: python3-virtualenv
state: present
- name: "Install thefuck"
apt:
name: thefuck
state: present
- name: "Install python3-setuptools"
apt:
name: python3-setuptools
state: present
- name: "Install nginx"
apt:
name: nginx
state: present
- name: "Install wget"
apt:
name: wget
state: present
- name: "Install htop"
apt:
name: htop
state: present
- name: "Install btop"
apt:
name: btop
state: present
- name: "Install lynx"
apt:
name: lynx
state: present
- name: "Install neovim"
apt:
name: neovim
state: present
- name: "Install docker.io"
apt:
name: docker.io
state: present
- name: "Install docker-compose"
apt:
name: docker-compose
state: present
- name: "Install screen"
apt:
name: screen
state: present
- name: "Install byobu"
apt:
name: byobu
state: present
- name: "Install zsh"
apt:
name: zsh
state: present
- name: "Install nmap"
apt:
name: nmap
state: present
- name: "Install iptraf"
apt:
name: iptraf
state: present
- name: "Install iotop"
apt:
name: iotop
state: present
- name: "Install zip"
apt:
name: zip
state: present
- name: "Install unzip"
apt:
name: unzip
state: present
- name: "Install net-tools"
apt:
name: net-tools
state: present
- name: "Install git"
apt:
name: git
state: present
- name: "Install chkrootkit"
apt:
name: chkrootkit
state: present
- name: "Install fail2ban"
apt:
name: fail2ban
state: present
- name: "Install lynis"
apt:
name: lynis
state: present
# thefuck
- name: "thefuck append to .zshrc"
lineinfile:
path: "/home/{{ username }}/.zshrc"
line: 'eval $(thefuck --alias fuck)'
insertafter: EOF
mode: '0744'
owner: "{{ username }}"
group: "{{ username }}"
state: present
create: True
# PATH
- name: ".zshrc PATH adding ~/.local/bin"
lineinfile:
path: "/home/{{ username }}/.zshrc"
line: 'PATH=~/.local/bin/:$PATH'
state: present
insertafter: EOF
mode: "0744"
owner: "{{ username }}"
group: "{{ username }}"
create: True
become: True
become_method: su
become_user: "{{ username }}"
# ssh
- name: "SSH allow {{ username }} only"
lineinfile:
path: '/etc/ssh/sshd_config'
line: "AllowUsers {{ username }}"
state: present
insertafter: EOF
mode: "0644"
owner: root
group: root
- name: 'SSH disable password auth'
lineinfile:
path: '/etc/ssh/sshd_config'
regexp: '^PermitRootLogin'
line: 'PermitRootLogin no'
state: present
insertafter: EOF
mode: "0644"
owner: root
group: root
- name: "UFW allow ssh"
community.general.ufw:
rule: allow
port: ssh
proto: tcp
delete: true
- name: "UFW allow http"
community.general.ufw:
rule: allow
port: http
proto: any
delete: true
- name: "UFW allow https"
community.general.ufw:
rule: allow
port: https
proto: any
delete: true
- name: 'Customscripts download'
command:
cmd: 'git clone https://gitlab.com/princesspi/general-scripts-and-system-ssssssetup.git /tmp/cscripts'
become: yes
- name: "Create directory {{ custom_scripts_dir }}"
file:
path: "{{ custom_scripts_dir }}"
state: directory
mode: '0755'
owner: 'root'
group: 'root'
become: yes
- name: 'Customscripts copy add_user_ssh.sh'
copy:
remote_src: False
src: '/tmp/cscripts/customscripts/add_user_ssh.sh'
dest: "{{ custom_scripts_dir }}/add_user_ssh.sh"
mode: '0744'
owner: 'root'
group: 'root'
become: yes
- name: "Customscripts copy crowdsec.sh"
copy:
remote_src: False
src: '/tmp/cscripts/customscripts/crowdsec.sh'
dest: "{{ custom_scripts_dir }}/crowdsec.sh"
mode: '0744'
owner: 'root'
group: 'root'
become: yes
- name: "Customscripts copy fix_permissions.sh"
copy:
remote_src: False
src: '/tmp/cscripts/customscripts/fix_permissions.sh'
dest: "{{ custom_scripts_dir }}/fix_permissions.sh"
mode: '0744'
owner: 'root'
group: 'root'
become: yes
# crowdsec
- name: 'Crowdsec'
command:
cmd: "bash {{ custom_scripts_dir }}/crowdsec.sh"
become: yes
- name: 'enable/restart crowdsec'
service:
name: 'crowdsec'
enabled: True
state: 'restarted'
+48
View File
@@ -0,0 +1,48 @@
new_username: 'princesspi'
install_time: '02:00'
reboot_time: '03:00'
reboot_offset: '20m'
login_shell: '/usr/bin/zsh' # which zsh
custom_scripts_dir: '/usr/share/customscripts'
custom_scripts_repo: 'https://github.com/PrincessPi3/general-scripts-and-system-ssssssetup.git'
# password is precalculated hash
# mkpasswd --method=sha-512
# defaultpassword###
# user_password: '$6$n3ybB6uVX.BwKiR4$vjENClERci2hmAkn9d9a8EUFAfnUlsH.R6/8EIXx1bu.k.bC7l/aE//s9ONw/PcbSQ2.hRdUgjxFrJ54/NhBm0'
ssh_key_auth: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP2D+9oYQlTnu1zeVi2gHfTKE7+DDWiu1EibXNwB9g72'
list_of_packages:
- 'unattended-upgrades'
- 'python3'
- 'python3-pip'
- 'python3-virtualenv'
- 'python3-setuptools'
- 'thefuck'
- 'nginx'
- 'wget'
- 'htop'
- 'btop'
- 'lynx'
- 'neovim'
- 'docker.io'
- 'docker-compose'
- 'screen'
- 'byobu'
- 'zsh'
- 'nmap'
- 'iptraf'
- 'iotop'
- 'zip'
- 'unzip'
- 'net-tools'
- 'git'
- 'chkrootkit'
- 'fail2ban'
- 'lynis'
open_services:
- { name: 'ssh', proto: 'tcp' }
- { name: 'http', proto: 'tcp' }
- { name: 'https', proto: 'tcp' }
custom_scripts:
- 'crowdsec.sh'
- 'add_user_ssh.sh'
- 'fix_permissions.sh'
+87
View File
@@ -0,0 +1,87 @@
0) Anything inside < and > for example <service name> is a bit of text you provide so if I say "<password>" you would replace with something like "password123"
1) acquire btc
spot app
coinmama
2) tumble btc deep web
3) put btc in deep web wallet
4) launch host on bithost
https://bithost.io
// Ubuntu 20.04 LTS with minimum 1gb RAM
5) lock down bitohst jump box to VPN IP
6) generate keys on bithost
5) get key from sporehost and launch server
http://spore64i5sofqlfz5gq2ju4msgzojjwifls7rok2cti624zyq3fcelad.onion/
6) log in from bithost on VPN
sudo -i
apt update
apt upgrade
ufw allow ssh
ufw enable
apt install apache2 tor mysql-server php libapache2-mod-php php-mysql php-curl php-gd screen iotop zip unzip lynx htop chkrootkit lynis certbot fail2ban python3 python3-pip curl nmap
a2enmod ssl
systemctl restart apache2
mysql_secure_installation
password validation: 2
// update phpmyadmin repo/install from git pull
// this is a workaround for an old phpmyadmin repo on the 20.04 LTS
// mysql -h localhost -u root -p
// UNINSTALL COMPONENT 'file://component_validate_password';
// CREATE USER 'rootuser'@'localhost' IDENTIFIED BY '<Secure Password>'; // REMEMBER THIS PASSWORD
// GRANT ALL PRIVILEGES ON *.* TO 'rootuser'@'localhost';
// FLUSH PRIVILEGES;
// quit;
apt install phpmyadmin //change to git pull OR updated manual repo
[x] apache2
[x] YES
[Secure Password] // REMEMBER THIS PASSWORD
cd /var/www/html
ln -s /usr/share/phpmyadmin
mv phpmyadmin pma
//to access phpmyadmin, go to http://<ip address>/pma //log in with user rootuser and your password from before
systemctl enable tor
systemctl start tor
mkdir /var/www/<servicename>
nano /etc/tor/torrc
Ctrl+W "hidden"
>uncomment hidden service 127.0.0.1:80
>uncomment hidden service dir, name /var/lib/tor/<servicename>
Ctrl+X
Y
systemctl restart tor
comment out logging
nano /etc/apache2/sites-available/<service name>.conf
<VirtualHost localhost:80>
DocumentRoot /var/www/<servicename>
</VirtualHost>
Ctrl+X
Y
a2ensite <service name>
systemctl restart apache2
cat /var/lib/tor/<service name>/hostname
save onion address, its your hostname!
// scallion
mkdir /usr/share/scripts
nano /usr/share/scripts/perms.sh
```
#!/bin/bash
chown -R www-data:www-data /var/www/*
find /var/www/* -type d -exec chmod g=rwx "{}" \;
find /var/www/* -type f -exec chmod g=rw "{}" \;
```
Ctrl+X
Y
chmod +x /usr/share/scripts/perms.sh
sh /usr/share/scripts/perms.sh
crontab -e
1
at bottom add
```
0 8 * * * chkrootkit -q
0 11 * * 0 lynis -q
0 */6 * * * apt update; apt -y upgrade;
```
Ctrl+X
Y
+84
View File
@@ -0,0 +1,84 @@
1) acquire btc
spot app
coinmama
2) tumble btc deep web
3) put btc in deep web wallet
4) launch host on bithost
https://bithost.io
// Ubuntu 20.04 LTS with minimum 1gb RAM
5) lock down bitohst jump box to VPN IP
6) generate keys on bithost
5) get key from sporehost and launch server
http://spore64i5sofqlfz5gq2ju4msgzojjwifls7rok2cti624zyq3fcelad.onion/
6) log in from bithost on VPN
sudo -i
apt update
apt upgrade
ufw allow ssh
ufw enable
apt install apache2 tor mysql-server php libapache2-mod-php php-mysql php-curl php-gd screen iotop zip unzip lynx htop chkrootkit lynis certbot fail2ban python3 python3-pip curl nmap
a2enmod sslsystemctl restart apache2
mysql_secure_installation
password validation: 2
// this is a workaround for an old phpmyadmin repo on the 20.04 LTS
// mysql -h localhost -u root -p
// UNINSTALL COMPONENT 'file://component_validate_password';
// CREATE USER 'rootuser'@'localhost' IDENTIFIED BY '<Secure Password>'; // REMEMBER THIS PASSWORD
// GRANT ALL PRIVILEGES ON *.* TO 'rootuser'@'localhost';
// FLUSH PRIVILEGES;
// quit;
apt install phpmyadmin //change to git pull OR updated manual repo
[x] apache2
[x] YES
[Secure Password] // REMEMBER THIS PASSWORD
cd /var/www/html
ln -s /usr/share/phpmyadmin
mv phpmyadmin pma
//to access phpmyadmin, go to http://<ip address>/pma //log in with user rootuser and your password from before
systemctl enable tor
systemctl start tor
mkdir /var/www/<servicename>
nano /etc/tor/torrc
Ctrl+W "hidden"
>uncomment hidden service 127.0.0.1:80
>uncomment hidden service dir, name /var/lib/tor/<servicename>
Ctrl+X
Y
systemctl restart tor
comment out logging
nano /etc/apache2/sites-available/<service name>.conf
<VirtualHost localhost:80>
DocumentRoot /var/www/<servicename>
</VirtualHost>
Ctrl+X
Y
a2ensite <service name>
systemctl restart apache2
cat /var/lib/tor/<service name>/hostname
save onion address, its your hostname!
// scallion
mkdir /usr/share/scripts
nano /usr/share/scripts/perms.sh
```
#!/bin/bash
chown -R www-data:www-data /var/www/*
find /var/www/* -type d -exec chmod g=rwx "{}" \;
find /var/www/* -type f -exec chmod g=rw "{}" \;
```
Ctrl+X
Y
chmod +x /usr/share/scripts/perms.sh
sh /usr/share/scripts/perms.sh
crontab -e
1
at bottom add
```
0 8 * * * chkrootkit -q
0 11 * * 0 lynis -q
0 */6 * * * apt update; apt -y upgrade;
```
Ctrl+X
Y
-121
View File
@@ -1,121 +0,0 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.
+123
View File
@@ -0,0 +1,123 @@
#IPTABLES RULES
iptables -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/second --limit-burst 2 -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP
iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP
iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP
iptables -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP
iptables -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP
iptables -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP
iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP
iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP
iptables -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP
iptables -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP
iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP
iptables -t mangle -A PREROUTING -p icmp -j DROP
iptables -A INPUT -p tcp -m connlimit --connlimit-above 80 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP
iptables -t mangle -A PREROUTING -f -j DROP
iptables -A INPUT -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP
iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack
iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP
iptables -N port-scanning
iptables -A port-scanning -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 2 -j RETURN
iptables -A port-scanning -j DROP
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
iptables -A INPUT -m recent --name portscan --remove
iptables -A FORWARD -m recent --name portscan --remove
iptables -A INPUT -m recent --name portscan --rcheck --seconds 86400 -j DROP
iptables -A FORWARD -m recent --name portscan --rcheck --seconds 86400 -j DROP
#KERNEL RULES
kernel.printk = 4 4 1 7
kernel.panic = 10
kernel.sysrq = 0
kernel.shmmax = 4294967296
kernel.shmall = 4194304
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
vm.swappiness = 20
vm.dirty_ratio = 80
vm.dirty_background_ratio = 5
fs.file-max = 2097152
net.core.netdev_max_backlog = 262144
net.core.rmem_default = 31457280
net.core.rmem_max = 67108864
net.core.wmem_default = 31457280
net.core.wmem_max = 67108864
net.core.somaxconn = 65535
net.core.optmem_max = 25165824
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 8192
net.ipv4.neigh.default.gc_thresh3 = 16384
net.ipv4.neigh.default.gc_interval = 5
net.ipv4.neigh.default.gc_stale_time = 120
net.netfilter.nf_conntrack_max = 10000000
net.netfilter.nf_conntrack_tcp_loose = 0
net.netfilter.nf_conntrack_tcp_timeout_established = 1800
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 10
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 20
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 20
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 20
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 10
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_no_pmtu_disc = 1
net.ipv4.route.flush = 1
net.ipv4.route.max_size = 8048576
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.udp_rmem_min = 16384
net.ipv4.tcp_wmem = 4096 87380 33554432
net.ipv4.udp_wmem_min = 16384
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 400000
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 10
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.rp_filter = 1
@@ -0,0 +1,16 @@
<VirtualHost $IP:443>
DocumentRoot /var/www/$DOMAIN
ServerName $DOMAIN
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/$DOMAIN/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/$DOMAIN/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "HIGH:!aNULL:!MD5:!3DES:!CAMELLIA:!AES128"
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
</VirtualHost>
<VirtualHost $IP:80>
ServerName $DOMAIN
Redirect permanent / https://$DOMAIN/
</VirtualHost>
+3
View File
@@ -0,0 +1,3 @@
0 8 * * * chkrootkit -q
0 11 * * 0 lynis -q
0 0 * * * apt update; apt upgrade -y
+148
View File
@@ -0,0 +1,148 @@
Ubuntu 24.04.3LTS
PHP-default
Apache2
MySQL+phpmyadmin
# Step 1
sudo -i
apt update
apt -y upgrade
reboot
# Step 2
nano /etc/ssh/sshd_config
Change `#PasswordAuthentication yes` to `PasswordAuthentication no`
Add line
`AllowUsers <username>`
# Step 3
ON WINDOWS:
Via PowerShell
enable OpenSSH in PowerShell: https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
ssh-keygen -t ed25519 -C "<your email address>"
use a STRONG PASSPHRASE
Hit [Enter] to save keys at DEFAULT location
to get your rsa PUBLIC key, do:
Press [Windows Logo Key/Start]+R
Put in `notepad %USERPROFILE%/.ssh/id_ed25519.pub`
hit Enter
copy all the text in that file
# Technical details: it saves private key at %USERPROFILE%/.ssh/id_ed25519
# private key example: C:\Users\potatouser\.ssh\id_ed25519
# public key example: C:\Users\potatouser\.ssh\id_ed25519.pub
ON UBUNTU
mkdir ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
<paste rsa PUBLIC key>
chmod 600 ~/.ssh/authorized_keys
sudo systemctl reload sshd
TO CONNECT
SSH with Windows PowerShell
Powershell is installed by default on Windows 10/11
ssh <username>@<ipaddress>
Manage Files with WinSCP:
install winscp https://winscp.net/eng/download.php
install puttygen https://www.puttygen.com/download.php?val=4
run puttygen
Click Load
Select private key at %USERPROFILE%/.ssh/id_ed25519
copy and paste the string of text beginning in ssh-ed25519 and paste
save public and private key to %USERPROFILE%/.ssh/ under a %USERPROFILE%/.ssh/id_ed25519.ppk (private)
and %USERPROFILE%/.ssh/id_ed25519.ppk.pub (public)
run winscp
click new site
protocol: SFTP
host name: <server/ip>
username: <username>
port number: 22
click Advanced
on left panel under SSH click Authentication
Browse for private key at %USERPROFILE%/.ssh/id_ed25519.ppk
ok
save
# Step 4
sudo apt install -y git
# download and install scripts and tools
cd ~
git clone https://github.com/PrincessPi3/general-scripts-and-system-ssssssetup.git
sudo -i
apt install -y apache2 snapd mysql-server byobu nmap screen iotop zip unzip lynx htop php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath unattended-upgrades net-tools python3 python3-pip unison
snap install btop
# secure mysql
mysql_secure_installation
# follow directions, defaults are fine just remember what you set as the root password
# install and config phpmyadmin
apt install -y phpmyadmin
ln -s /usr/share/phpmyadmin /var/www/html/pma
# phpmyadmin will be accessable from the public internet at http://<your server ip>/pma
# ensure your passwords are up to snuff
// TODO: prolly should do some other security shit to protect phpmyadmin
systemctl restart apache2
systemctl restart mysql
# add user to web server group
usermod -a -G www-data <username>
# unattended upgrades
dpkg-reconfigure unattended-upgrades
nano /etc/apt/apt.conf.d/50unattended-upgrades
change `//Unattended-Upgrade::Automatic-Reboot "false";` to `Unattended-Upgrade::Automatic-Reboot "true";`
change `//Unattended-Upgrade::Remove-Unused-Dependencies "false";` to `Unattended-Upgrade::Remove-Unused-Dependencies "true";`
change `//Unattended-Upgrade::Mail "root@localhost";` to Unattended-Upgrade::Mail "<your admin email>";`
systemctl start unattended-upgrades && systemctl enable unattended-upgrades
unattended-upgrade -d -v //test unattended upgrades
# uncomplicated firewall setup
ufw allow http
ufw allow https
ufw allow ssh
ufw enable
reboot
// TODO: backups setup needs more work, not working at current
// make unison script pls
// SKIP backups section for now
# backups
sudo -i
mkdir -p /backups/log
mkdir /backups/backups
ln -s /var/backups /backups/system
cp -r /home/<user>/general-scripts-and-system-ssssssetup/customscripts /usr/share
chmod +x /usr/share/customscripts/*sh
nano /usr/share/customscripts/backup.sh //edit to add dirs to back up
sh /usr/share/customscripts/crowdsec.sh
screen -R backups
sh /usr/share/customscripts/backup.sh
Ctrl+A+D
sh /usr/share/customscripts/fix_permissions.sh
# Step 5
# install some cool securiy tools
apt install -y chkrootkit lynis certbot fail2ban
crontab -e //instal crons from /home/<user>/general-scripts-and-system-ssssssetup/crontab.txt
apt install -y tripwire
Follow directions and utilize secure passphrase DO NOT LOSE PASSPHRASE
# as primary user (NOT root or sudo, run `exit` if in doubt)
pip3 install thefuck
echo "# user addons" >> ~/.bashrc
echo "PATH=~/.local/bin/:$PATH" >> ~/.bashrc
echo 'eval "$(thefuck --alias)"' >> ~/.bashrc
echo 'HISTTIMEFORMAT="%Y-%m-%d %T "' >> ~/.bashrc
source ~/.bashrc
Step 6: # optional
IF you want to use sudo without password check:
sudo visudo
for ONE user:
select editor of your choice
add `<username> ALL=(ALL) NOPASSWD: ALL`
OR for all users in the sudo group
comment out the line beginning with %sudo soi it looks like #%sudo
add `%sudo ALL=(ALL) NOPASSWD: ALL` on any new line
save and exit
sudo reboot
+107 -2
View File
@@ -1,3 +1,108 @@
# general-scripts-and-system-ssssssetup * General Guides and Scripts for:
* Ubuntu Server LAMP (20.04 LTS)
* Dark Web Hosting (LAMP on 20.04 LTS)
* General Windows 10 and mobile security guide
general scripts and shit Install customscripts on linux
with full upgrade and package install
```bash
script=/tmp/install_script.sh && curl -s https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup/raw/branch/main/customscripts/install_script.sh > $script && chmod +x $script && $SHELL -c "$script full" && $SHELL /usr/share/customscripts/configure_webhook.sh full && exec $SHELL
```
without full upgrade and package install
```bash
script=/tmp/install_script.sh && curl -s https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup/raw/branch/main/customscripts/install_script.sh > $script && chmod +x $script && $SHELL -c "$script" && $SHELL /usr/share/customscripts/configure_webhook.sh && exec $SHELL
```
## Usage
### Linux
#### git helpers
* `gitinitshit`
* `gitshit`
* `gitsync`
* `syncstatus`
* `waypoint`
* `setup_git.sh`
#### security helpers
* `add_user_ssh`
* `backup.sh`
* `binwalk-tool`
* `configuree_webhook.sh`
* `connect-wifi`
* `crowdsec.sh`
* `find_bytes`
* `fix-wifi`
* `add_user_ssh`
* `wifi_monitor`
* `wifi-monitor-airX`
* `recursive-analysis`
* `large_file_search_for_hash`
* `randomtoken`
* `alfa_install_kali.sh`
#### monitoring
* `mon-watch`
* `monitor_pid`
* `ifnet`
* `webhook`
* `FIND_THE_FUCKING_PI`
* `dirstatt`
#### hosting
* `add_apache2_site`
#### setup and general scripts
* `ifnet`
* `install_script.sh`
* `pyenv_setup`
* `python_pyenv_setup.sh`
* `xrdp-start`
* `add_apache2_site`
* `download_file_list`
* `download_file_list_raw`
* `message_users`
* `UNFUCK_HOMEDIR_PERMS.sh`
* `pi_create_image`
* `pi_create_image_from_img`
* `ramdisk_gimme`
#### for fun
* `donut`
* `friendlyfriend`
* `annoy_the_fuck_out_of_commit_message_nerds`
#### media
* `easylistdownload`
* `download_file_list`
### Windowwz
#### git helpers
* `gitshit.ps1`
* `gitsync.ps1`
* `syncstatus.ps1`
* `waypoint.ps1`
#### linux-like hashing helpers
* `winhash.ps1`
* `md5sum.ps1`
* `sha256sum.ps1`
* `sha384sum.ps1`
* `sha512sum.ps1`
#### remote host tools
* `ssh-wait-loop.ps1`
* `wait-on-host.ps1`
* `testtime.ps1`
#### Windows system
* `redundant-backup.ps1`
#### anti-productivity
* `IM_SO_TIRED_BOSS.ps1`
### Clean up Windows!
```powershell
iwr https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup/raw/branch/main/Windows-Scripts/windows-repair.ps1?nocache=$(Get-Random) -OutFile $env:TEMP\windows-repair-temp.ps1; powershell -NoProfile -ep Bypass -File $env:TEMP\windows-repair-temp.ps1
```
todo:
1. windwows gitinitshit
2. convert windows-repair.bat to powershell and add more features and checks
1. automatic elevation request
2. update and improve security scan via windows defender
+115
View File
@@ -0,0 +1,115 @@
# Quick and Dirty Methods (Bash)
colors
```bash
# Define color variables
PINK='\e[35m'
BRIGHT_PINK='\e[95m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
RESET='\033[0m' # No Color (RESET)
# usage echo -e "$PINKpinktext here$RESET"
```
standard peak safety with error handling for shell scripts
shell script header to exit on error, failed piping, or unset variable while allowing err trap and custom trapping for error
```bash
#!/bin/bash
# set safety optinonz
set -o errexit # fail on error
set -o errtrace # run trace on error
set -o pipefail # fail on pipe fail
set -o nounset # fail on unset var
# save here to use in error_handle function
num_of_args="$#"
all_args="$@"
# Define the cleanup function
error_handle() {
# CRITICAL: Capture the exit status code before ANY other command runs
local exit_code=$?
local script_path="$(realpath $0)"
local hr='===================================================='
echo
echo $hr
echo -e "🚨 \033[0;31m FATAL ERROR DETECTED \033[0m"
echo $hr
echo "-> Script : $0"
echo "-> Num Script Args : $num_of_args"
echo "-> Script Args : $all_args"
echo "-> Shell : $SHELL"
echo "-> Script Path : $script_path"
echo "-> Script (full) : $SHELL $script_path $all_args"
echo "-> User : $USER"
echo "-> Working Directory : $PWD"
echo "-> Failed Command : $BASH_COMMAND"
echo "-> Line Number : $LINENO"
echo "-> Exit Status : $exit_code"
echo "-> Seconds Elapsed : $SECONDS"
echo "-> Date Failed : $(date)"
# Generate a professional, clean stack traceback
echo "-> Stack Trace"
printf "\t" # to intent da stack trace
local frame=0
# Loop backwards through the function execution stack array
while caller $frame; do
printf "\t" # to indenet da stack trace
frame=$((frame + 1))
done
# closing niceties
echo
echo $hr
echo
# exit with last failcode
exit "$exit_code"
}
trap error_handle ERR
```
show every set variale and its value (one liner)
```bash
for v in $(compgen -v); do echo "$v:$$v"; done
```
run command and display error or success
```bash
<command>; ret=$? && if [ $ret -ne 0 ]; then echo -e "\n\033[0;31mERRROR! Code: $ret\033[0m"; else echo -e "\033[0;32mOK!\033[0m"; fi
```
# Function to Display succ/err based on error code
```bash
checkcode () {
if [ -z "$1" ]; then
echo -e "\n\e[31mERROR!\033[0m chkcode missing return code paramater\n"
exit 1
else
retcode=$1
fi
if [ $retcode -ne 0 ]; then
echo -e "\t\e[31mERROR!\033[0m Response Code: $retcode"
else
echo -e "\t\e[1;32mOK!\e[0m"
fi
}
```
Test a list of commands if they are present
```bash
cmds_to_check=(sha256sum sha1sum md5sum openssl scrypt)
for cmd in ${cmds_to_check[@]}; do
if command -v $cmd &>/dev/null; then
# echo -e "\033[0;32mOK!\033[0m $cmd is present"
continue
else
echo -e "\n\n\033[0;31mERROR!\033[0m $cmd not found! please intall! Exiting!\n\n" >&2
exit 1
fi
done
echo -e "\033[0;32mOK!\033[0m All Needed Commands Available!"
```
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

+5
View File
@@ -0,0 +1,5 @@
# Windows-Repair.ps1 Usage:
1. Open PowerShell terminal
```powershell
iwr -UseBasicParsing -Uri "https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup/raw/branch/main/Windows-Scripts/windows-repair.ps1?nocache=$(Get-Random)" -OutFile "$env:TEMP\windows-repair3.ps1"; &"$env:TEMP\windows-repair3.ps1"
```
+3
View File
@@ -0,0 +1,3 @@
while($True) {
nmap -p22 -sV --open 10.0.0.0/24 -oG -
}
+61
View File
@@ -0,0 +1,61 @@
# usage:
## All paramaters are optional
## All paramaters are compatible with each other
## Default behavior is to restart immediately after zero time
## IM_SO_TIRED_BOSS -Seconds <int seconds> -Minutes <int minutes> -Hours <int hours> -ChkDsk $True
## Examples:
### IM_SO_TIRED_BOSS -Minutes 90
### IM_SO_TIRED_BOSS -Minutes 30 -Hours 1
### IM_SO_TIRED_BOSS -Minutes 30 -ChkDsk $True
Param(
[int]$Seconds = 0,
[int]$Minutes = 0,
[int]$Hours = 0,
[bool]$ChkDsk = $false
)
# Force off for longer by doing offline modern chkdsk to tie up your computer to be unusable for a while
# pipes y to it so its noninteractive
# auto elevates to admin when run with -ChkDsk $True
if ($ChkDsk) {
# elevate to admin
# set for offline chkdsk noninteractively by piping y to it lmao
# runs a cmd window as admin running "echo y | chkdsk C: /f /r" which then closes
Start-Process cmd.exe -Verb RunAs -ArgumentList "/c echo y | chkdsk C: /f /r"
}
# Current date object
$CurrentTime = Get-Date
# the .AddX() are in sequence to get the date object plus seconds, minutes, and hours
$RebootTime = $CurrentTime.AddSeconds($Seconds).AddMinutes($Minutes).AddHours($Hours).ToString("dddd hh:mm:ss tt")
# Calculate the number of seconds in total selected time
$WaitDuration = New-TimeSpan -Seconds $Seconds -Minutes $Minutes -Hours $Hours
$WaitSeconds = $WaitDuration.TotalSeconds
# Print to terminal too for nicess
Write-Host "`nREBOOTING AT $RebootTime`n"
# Start-Job to fork the script block to background so it can proceed with the timer/shutdown even if no interaction with alert box
Start-Job -ScriptBlock {
# the $using: method lets me adjusst the scope of $RebootTime and get it in this script block
$RebootTime = $using:RebootTime
# add the presentation framework in
Add-Type -AssemblyName PresentationFramework
# Show an Error/Stop alert box with just an OK button and the message
[System.Windows.MessageBox]::Show("REBOOTING AT $RebootTime", "FORCE REBOOTING MINUTES AT $RebootTime", 'OK', 'Error')
}
# do the wait
Start-Sleep -Seconds $WaitSeconds
# Add-Type -AssemblyName PresentationFramework
# [System.Windows.MessageBox]::Show("PING WORKING", "$RebootTime", 'OK', 'Error')
# x Force reboot with no warning
# Disabled -Force to let apps close gracefully
Restart-Computer # -Force
@@ -0,0 +1 @@
donkeydicks:pope:
+7
View File
@@ -0,0 +1,7 @@
param(
# powershell is factually gay idkl why its such a shit
[Parameter(Mandatory=$True, Position=0)]
[string]$Filename
)
# apng is far hjigher quality and also preserves transparancy :activated:
ffmpeg -i "$Filename" -plays 0 -f apng "$Filename.apng"
+150
View File
@@ -0,0 +1,150 @@
# todo: sanity checks for if x wsl is installed and x v2, if x usbipd is installed, if the user is running powershell >-7
# x if wsl is not installed, install it
# x if usbipd is not installed, install it
# if wsl is not version 2, upgrade it
# :pope: may work
#Requires -RunAsAdministrator
# llm cancer string that amkes it run as admin
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
exit
}
# detach and unbind all devices and exit
if($args[0] -eq "detach") {
Write-Host "Detaching and Unbinding all USB devices from WSL"
usbipd detach --all
usbipd unbind --all
Write-Host "All USB devices have been detached and unbound from WSL"
Write-Host "Press Any Key To Exit"
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
exit
}
# list devices and exit
if ($args[0] -eq "list") {
Write-Host "Listing USB devices attached to WSL"
usbipd list
Write-Host "Press Any Key To Exit"
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
exit
}
# help bs
if ($args[0] -eq "help") {
Write-Host "Usage: .\get_wsl_usb.ps1 [options]"
Write-Host "Options:"
Write-Host " attach Attach a USB device to WSL (default action if no options are provided)"
Write-Host " detach Detach and unbind all USB devices from WSL"
Write-Host " list List USB devices attached to WSL"
Write-Host " help Display this help message"
Write-Host "If no options are provided, the script will list USB devices and allow you to attach one to WSL."
Write-Host "Press Any Key To Exit"
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
exit
}
# now sanity/env checks
## check if wsl installed is version 2, if not upgrade it it
function Check-WSLVersion {
<#
.SYNOPSIS
Check if WSL is version 2 and upgrade if necessary.
.DESCRIPTION
This function checks the installed WSL version and upgrades to WSL 2 if needed.
#>
# Get WSL status
$wslStatus = wsl --status 2>&1
# Check if WSL 2 is available (look for WSL 2 in status output)
if ($wslStatus -match "WSL version:\s+\d") {
if ($wslStatus -match "Default distribution version:\s+2") {
Write-Host "WSL 2 is already installed and set as default."
return $true
}
else {
Write-Host "WSL 1 detected. Attempting to upgrade to WSL 2..."
try {
wsl --update
Write-Host "WSL has been updated. Please restart your computer and run this script again."
return $false
}
catch {
Write-Host "Error updating WSL: $_"
return $false
}
}
}
else {
# Fallback: try to get list of distributions
$wslList = wsl --list -v 2>&1
if ($wslList -match "VERSION\s+2") {
Write-Host "WSL 2 detected."
return $true
}
elseif ($wslList -match "VERSION\s+1") {
Write-Host "WSL 1 detected. Upgrading to WSL 2..."
try {
$distros = $wslList | Where-Object { $_ -match "^[^*]" } | ForEach-Object { ($_ -split '\s+')[0] } | Where-Object { $_ -and $_ -ne "NAME" }
foreach ($distro in $distros) {
Write-Host "Upgrading $distro to WSL 2..."
wsl --set-version $distro 2
}
Write-Host "Distros have been upgraded to WSL 2."
return $true
}
catch {
Write-Host "Error upgrading WSL: $_"
return $false
}
}
}
return $false
}
## if wsl not installed, install it
if (-not (Get-Command wsl -ErrorAction SilentlyContinue)) {
Write-Host "WSL is not installed. Installing WSL..."
wsl --install
Write-Host "WSL has been installed. Please restart your computer and run this script again."
exit
}
## Check WSL version and upgrade if needed
# if (-not (Check-WSLVersion)) {
# Write-Host "WSL upgrade required. Please restart your computer and run this script again."
# }
# do the wsl version check and upgrade if needed before we do anything else
if (-not (Get-Command usbipd -ErrorAction SilentlyContinue)) {
Write-Host "usbipd is not installed. Installing usbipd..."
winget install usbipd
Write-Host "usbipd has been installed."
}
# Your code goes here
Write-Host "Admin Perms Confirmed!"
Write-Host "Launching WSL"
# lanch in enew window so we can run usbipd commands in the current one
Start-Process pwsh.exe "-NoExit","-Command", "wsl", "-d", "kali-wsl"
# Write-Host "Press Any Key To Continue"
# Clear-Host
Write-Host "Listing usb devices, remember the busid (ex. 1-3) of the device you wish to attach to WSL"
usbipd list
# Write-Host "Press Any Key To Continue"
# $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
$BUSID = Read-Host "Enter The BUSID of the USB Device You Wish to Attach to WSL"
Clear-Host
Write-Host "Attaching USB Device with BUSID $BUSID"
usbipd bind --force --busid $BUSID
usbipd attach --wsl --busid $BUSID
Write-Host "USB Device With BUSID $BUSID Has Been Attached to WSL"
Write-Host "Press Any Key To Exit"
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
exit
+17
View File
@@ -0,0 +1,17 @@
if ($args) {
$message=$args -join ' '
} else {
if(test-path './version.txt') {
$message = $(get-content './version.txt')
} else {
$message = $(Get-Date -uformat "%s")
}
}
echo "git commit message: '$message'"
git add .
git commit -m "$message"
git push
echo "Done :3"
+20
View File
@@ -0,0 +1,20 @@
# todo, param and defaults these up
$remote_dir = "/var/www/html/Media-Viewer"
$remote_host = "pi3"
$remote_cmd = "echo REMOTE pull $remote_dir; git -C $remote_dir pull; echo REMOTE add $remote_diradding; git -C $remote_dir add .; echo REMOTE commit $remote_dir; git -C $remote_dir commit -m `$(date +%s); echo REMOTE push $remote_dir; git -C $remote_dir push; echo -e `"\nREMOTE status $remote_dir\n`"; git -C $remote_dir status;"
echo "`nLOCAL pulling`n"
git pull
echo "`nLOCAL adding, comitting and pushing`n"
gitshit # usin gitshit here lmfao maybe make message a param
echo "`nLOCAL status`n"
git status
# run da REMOTE
echo "`nREMOTE running sync"
ssh $remote_host "/bin/bash -c $remote_cmd"
echo "`nLOCAL status`n"
git status
+6
View File
@@ -0,0 +1,6 @@
param (
[Parameter(Mandatory=$true)]
[string]$infile
)
Invoke-Expression "$PSScriptRoot\winhash.ps1 $infile MD5"
+25
View File
@@ -0,0 +1,25 @@
$counter = 1;
$paths_file = ".\paths.txt"
$destination_dir = ""
$sleep_seconds = 90
# infinite loop to run through to and loop every $sleep_seconds seconeds
while($true) {
Write-Host "`n`nNew Rotation!`n`tRotation $counter `n`tCopying...`n`n"
# loop through paths in $paths_file
foreach($line in Get-Content "$paths_file") {
Clear-Host
Write-Host "Handling $line on rotation $counter"
# copy the path
$path = $line
# split $line by \ and return last element
$dirname = $line -split "\\" | Select-Object -Last 1
# do the copy
robocopy /e /z $path $destination_dir\$dirname
}
Clear-Host
Write-Host "`n`nFinished Rotation $counter`n`tSleeping 90 Seconds...`n`n"
# sleep wont start until robopy loop is finished
Start-Sleep -Seconds $sleep_seconds # sleep $sleep_seconds seconds
$counter++;
}
+74
View File
@@ -0,0 +1,74 @@
# `pwsh.exe -c "`"C:\path\to\redundant-backup.ps1`" -logFile `"`" -simpleLogFile `"`""`
# `Start-Process -filepath "C:\path\to\redundant-backup.ps1" -logFile "" -simpleLogFile ""`
# `redundant-backup -logFile "" -simpleLogFile ""`
param([string] $logFile,
[string] $simpleLogFile
)
$startUnixSeconds = get-date -uformat "%s" # unix epoch seconds for duration
$startDateHuman = get-date # human readable begin date
$startDateFilename = get-date -format 'yyyy-MM-dd-hhmm' # filename friendly date format
$warningFile = "C:\Users\human\OneDrive\Desktop\backup_error_$startDateFilename.log" # file to create to notify of a failure
$jobName = "Weekly-Backup-$startDateFilename" # name for job in case wanna restart an interrupted one
$resticRunning = "E:\restic_backups_rolling" # from dir (restic)
$redundantLocal = "D:\restic_backups_redundancy_rolling" # to dir (local drive)
$redundantLocalNetwork = "R:\restics_backups_redundancy_rolling" # to dir (network mapped drive location)
$redundantAirGap = "S:\restic_backups_redundancy_rolling" # set backup usb to use S
$logGuideString = "Verb | Current Date and Time (Current Time Unix Seconds) | Start Date and Time (Start Time Unix Seconds) | Time Elapsed in Seconds | From Directory | To Directory | Job Name | Exit Status"
function appendToLog {
param([string]$verb="INFO", [string]$exitCode="NONE", [string]$log="$logFile", [string]$fromDir="NONE", [string]$toDir="NONE")
$timeCalc = $(Get-Date -uformat "%s")-$startUnixSeconds
# Verb | Current Date and Time (Current Time Unix Seconds) | Start Date and Time (Start Time Unix Seconds) | Time Elapsed in Seconds | From Directory | To Directory | Job Name | Exit Status
$logString = "$verb | $(Get-Date) ($(Get-Date -uformat "%s")) | $startDateHuman ($startUnixSeconds) | $timeCalc | $fromDir | $toDir | $jobName | $exitCode"
echo "$logString"
echo "$logString" >> "$log"
}
function appendToErrorLog {
param ( $exceptionMessage, $part )
$errorString = "`nFAIL on $part`nException: $exceptionMessage`nVars:`n`tstartDateHuman: $startDateHuman`n`tstart: $startUnixSecondsUnixSecons`n`tappendToErrorLog: $appendToErrorLog`n`tlogFile: $logFile`n`twarningFile: $warningFile`n`tresticRunning: $resticRunning`n`tredundantLocal: $redundantLocal`n`tredundantLocalNetwork: $redundantLocalNetwork`n`tjobName: $jobName"
echo "$errorString"
try { echo "$errorString" > "$warningFile" } catch { echo "Error: $warningFile Not Found" }
}
function doBackup {
param ( [string]$fromDir="NONE", [string]$toDir="NONE", [string]$tagString="INFO" )
echo "`n$tagString"
echo "`tFollow log with:`n`t`tGet-Content `"$logFile`" -Wait -Tail 10`n"
appendToLog -verb "START-$tagString" -log "$logFile" -toDir "$toDir" -fromDir "$fromDir"
robocopy "$fromDir" "$toDir" /E /Z /FP /NP /R:2 /W:1 /SAVE:"$jobString" /LOG+:"$logFile"
appendToLog -verb "FINISH-$tagString" -exitCode "$?" -log "$logFile" -toDir "$toDir" -fromDir "$fromDir"
}
echo "Initializing Logs"
touch "$runningFile"
echo "$logGuideString" > "$logFile"
appendToLog -verb "INITIALIZE-LOG-FILES" -exitCode "$?" -log "$logFile"
echo "`n$logGuideString`n"
# run da backupssss
doBackup -fromDir "$resticRunning" -toDir "$redundantLocal" -tagString "COPY-LOCAL" -jobString "$jobName" # local
appendToLog -verb "COPY-LOCAL" -exitCode "$?" -log "$logFile" -fromDir "$resticRunning" -toDir "$redundantLocal"
doBackup -fromDir "$resticRunning" -toDir "$redundantLocalNetwork" -tagString "COPY-LOCAL-NETWORK" -jobString "$jobName" # network
appendToLog -verb "COPY-LOCAL-NETWORK" -exitCode "$?" -log "$logFile" -fromDir "$resticRunning" -toDir "$redundantLocalNetwork"
doBackup -fromDir "$resticRunning" -toDir "$redundantAirGap" -tagString "COPY-AIRGAP" -jobString "$jobName" # airgap
appendToLog -verb "COPY-AIRGAP" -exitCode "$?" -log "$logFile" -fromDir "$resticRunning" -toDir "$redundantAirGap"
appendToLog -verb "DONE" -log "$logFile"
+20
View File
@@ -0,0 +1,20 @@
Param(
[string]$hosts_file = "subnets.txt",
[int]$delay_seconds = 120,
[int]$port = 5555,
[bool]$ChkDsk = $false
)
# infinitte looppsie
$counter = 1
while($True) {
Clear-Host # this ig iss the new clear/cls
Write-Host "Scanning $subnet for port $port loop count $counter`n"
# only show open ports, disable ping host check, output to stdout in greppable format on specified port for all subnets in hosts file
nmap --open -Pn -oG - -p $port -iL "$hosts_file"
$counter++
Write-Host "`nSleeping $delay_seconds Seconds`n"
Start-Sleep -Seconds $delay_seconds
}
+6
View File
@@ -0,0 +1,6 @@
param (
[Parameter(Mandatory=$true)]
[string]$infile
)
Invoke-Expression "$PSScriptRoot\winhash.ps1 $infile SHA1"
+6
View File
@@ -0,0 +1,6 @@
param (
[Parameter(Mandatory=$true)]
[string]$infile
)
Invoke-Expression "$PSScriptRoot\winhash.ps1 $infile SHA256"
+6
View File
@@ -0,0 +1,6 @@
param (
[Parameter(Mandatory=$true)]
[string]$infile
)
Invoke-Expression "$PSScriptRoot\winhash.ps1 $infile SHA384"
+6
View File
@@ -0,0 +1,6 @@
param (
[Parameter(Mandatory=$true)]
[string]$infile
)
Invoke-Expression "$PSScriptRoot\winhash.ps1 $infile SHA512"
+11
View File
@@ -0,0 +1,11 @@
param(
[string]
$session = 'pi3'
)
while($True) {
ssh $session
echo "Waiting 5 Seconds..."
sleep 5
wait-on-host -hostname $session
}
+5
View File
@@ -0,0 +1,5 @@
10.0.0.0/24
10.0.2.0/24
10.0.1.0/24
192.168.56.0/24
172.18.208.0/24
+39
View File
@@ -0,0 +1,39 @@
# usage
## sync_media [NUKE]
# $media_viewer_dir="C:\Users\human\OneDrive\Documents\Git\Media-Viewer"
$media_viewer_dir_wsl="/mnt/c/Users/human/OneDrive/Documents/Git/Media-Viewer"
# select for nuke mode
if($args[0] -eq "NUKE") {
Write-Host "`nNUKE MODE ACTIVATED`n"
$nuke = $True
} else {
Write-Host "`nNormal Mode Activated`n"
$nuke = $False
}
Write-Host "`nSillyfillyy synching media loleen`n"
# do da synchiedink
Write-Host "`n`bPERFORMING THE DILDOSYNC`n`n"
# wsl bash $media_viewer_dir_wsl/copy_local_wsl.sh
if($nuke) {
Write-Host "`nrunning sync with NUKE`n"
wsl bash $media_viewer_dir_wsl/dildo_new_full_sync_total.sh NUKE
} else {
Write-Host "`nNormal sync`n"
wsl bash $media_viewer_dir_wsl/dildo_new_full_sync_total.sh
}
# remote esp-idf
Write-Host "`nRunning esp-idf-tools update`n"
if($nuke) {
Write-Host "`nNUKE REBOOT esp-idf-tools `n"
ssh pi3 "bash /home/princesspi/esp/esp-idf-tools/esp-idf-tools-cmd.sh nr"
} else {
Write-Host "`nNormal esp-idf-tools update`n"
ssh pi3 "bash /home/princesspi/esp/esp-idf-tools/esp-idf-tools-cmd.sh"
}
Write-Host "`naahm done bein a sillyfilly fro noew`n"
+10
View File
@@ -0,0 +1,10 @@
$remote_host = "pi3"
$remote_dir = "/var/www/html/Media-Viewer"
echo "LOCAL: pulling"
git pull
echo "LOCAL: status"
git status
ssh $remote_host "echo 'REMOTE: pulling'; git -C $remote_dir pull; echo 'REMOTE: status'; git -C $remote_dir status"
Binary file not shown.
+7
View File
@@ -0,0 +1,7 @@
# usage:
# testtime "some powershell command string"
param([string] $cmd)
$start=$(get-date -uformat "%s")
invoke-expression "$cmd"
$end=$(get-date -uformat "%s")
echo "`n`ntime: $($end - $start)`n`n"
+80
View File
@@ -0,0 +1,80 @@
# usage:
# `.\wait-on-host.ps1 -hostname <DOMAIN_NAME_OR_IP> -sleep <SECONDS_TO_SLEEP_PER_CYCLE> -pingcount <NUMBER_OF_TIMES_TO_PING_PER_ITERATION> -max <MAX_NUMBER_OF_ITERATIONS> -hold <SECONDS_TO_WAIT_AFTER_FIRST_RESPONSE>`
#
# defaults:
# hostname: cable-wind.local
# sleep: 25
# pingcount: 1
# max: 500
# hold: 30
# ex. `.\wait-on-host.ps1 -hostname google.com -sleep 10 -pingcount 5`
param(
[string]
$hostname = "cable-wind.local",
[int]
$sleep = 25,
[int]
$pingcount = 1,
[int]
$max = 500,
[bool]
$loop = 0, # 1 to loop
[int]
$hold = 30
)
if($hostname -eq 'help') {
echo "usage:`n`twait-on-host [help] -hostname <DOMAIN_NAME_OR_IP> -sleep <SECONDS_TO_SLEEP_PER_CYCLE> -pingcount <NUMBER_OF_TIMES_TO_PING_PER_ITERATION> -max <MAX_NUMBER_OF_ITERATIONS> -hold <SECONDS_TO_WAIT_AFTER_FIRST_RESPONSE>`n`twait-on-host help`n`t`tthis help message`n`twait-on-host 8.8.8.8`n`t`twait on 8.8.8.8 with defaults`n`tdefaults:`n`t`thostname: cable-wind.local`n`t`tsleep: 25`n`t`tpingcount: 1`n`t`tmax: 500`n`t`thold: 30`n`tex. wait-on-host -hostname google.com -sleep 10 -pingcount 5`n";
exit;
}
$iterations = 0;
while(1 -eq 1) { # infinite loop
echo "`nHost: $hostname" # Iterations: $iterations Count: $pingcount Sleep: $sleep Max: $max`n`tFlushing dns..."
echo "`tFlushing DNS"
ipconfig /flushdns >NUL 2>&1 # redirects output nowhere
if($?) {
echo "`t`tDone."
} else {
echo "`t`tFAILED TO FLUSH DNS! EXITING!"
exit
}
echo "`tPinging..."
# $pingObj = Test-Connection -Count $pingcount -TargetName "$hostname" # powershell Test-Connection -Ping is default and redundant
$pingObj = Test-Connection -Count $pingcount -TargetName "$hostname" 2>&1
if($pingObj.Status -eq "Success") { # if return status of abopve (ping -n 1...) is True
# $pingObj = Test-Connection -Count $pingcount -TargetName "$hostname" # powershell Test-Connection -Ping is default and redundant
$ip = $pingObj.Address.IPAddressToString # get the bare ip out
echo "`t`tSuccess!`n`t`tIP: $ip`n`t`tHost: $hostname`n`t`tURL (host): http://$hostname`n`t`tURL (IP): http://$ip"
if($loop) {
echo "Sleeping $sleep Seconds..."
sleep $sleep # sleepy time
} else {
echo "`nWaiting $hold Seconds to Make Sure..."
sleep $hold
echo "`nReady!`n"
break
}
} else {
echo "`t`tNOT FOUND YET"
echo "`nSleeping $sleep Seconds..."
sleep $sleep # sleepy time
}
if($iterations -gt $max) {
echo "`nMAX ITERATIONS OF $max REACHED! EXITINTG`n"
exit
}
$iterations++
}
+9
View File
@@ -0,0 +1,9 @@
if ($args[0]) { $commit_message=($args -join " ") } # if arg0 exists, join all passed args with spaces
else { $commit_message="waypoint" } # or default to "waypoint"
Write-Host "WAYPOINT!`n`tCommit Message: $commit_message`n"
# add and commit
git add .
git commit -m "$commit_message"
Write-Host "`nDone :`"3"
+21
View File
@@ -0,0 +1,21 @@
param (
[string]$messageContent = "PING!"
)
# get the ping tag
# in discord: \@role_name
$tag = $(Get-Content -Path "$PSScriptRoot\tag.txt")
$messageContent += "`n$tag"
# get webhook url from .\webhook.txt
$webhookUrl = $(Get-Content -Path "$PSScriptRoot\webhook.txt")
$payload = [PSCustomObject]@{
content = $messageContent
}
# Convert the payload to JSON format
$jsonPayload = $payload | ConvertTo-Json
# Send the POST request to the Discord webhook
Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $jsonPayload -ContentType "Application/Json"
@@ -0,0 +1,143 @@
# Usage:
# Open PowerShell as Administrator
# win+x
# alt+a
# alt+y
# Run:
# In admin powershell Terminal:
# iwr -UseBasicParsing -Uri "https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup/raw/branch/main/Windows-Scripts/windows-repair.ps1?nocache=$(Get-Random)" -OutFile "$env:TEMP\windows-repair-temp.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\windows-repair-temp.ps1"
# or maybe
# iwr https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup/raw/branch/main/Windows-Scripts/windows-repair.ps1 | iex
# check if hasadmin rights, if notm run script in new terminal, clopsing old
## if not, carry on
if (-not ([Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544')) {
# launch tghis script int new window after promopting for admin
Start-Process -FilePath 'powershell' -Verb RunAs -ArgumentList "-ExecutionPolicy Bypass -File $PSCommandPath"
# CLOSE previous terminal
exit 0
} else {
clear # clear window
Write-Host -ForegroundColor Magenta @'
.. .....
....------..
..:--------.. .......
..----------.. ....---..
...---------=------::....:----:..
..-----=+**************=-----:...
.----+****************=-----...
.--=****************=-----=**+:::--:....
.-=#*********##**++=---====++**+-----:.
..:==********#=.+@%-==++===++===++*=----...
.:=::******%%+-::=++====+==++====+**=--...
.:+..+*****--@===-:-%--====-=+====+*#=:..
.-=.-****#=.#+===--=+===----======+*+..
.:=:+****#@#+=====-**-----*+====++**:.
.. .=****=--======-..%-----%+==++***+-..
..=++***+-.----======..*-----#+==+***#%#+..
.. .:-..---=====--------=-+==+**-@*. ............::::::....
..=:..--===+-:-------*%+==*+#%**=. .....:-------------------------:.
..............-:..--===+-..:-------+==+==.:... ...:----------------------------::.
......:----------::=:...--==+--:.:-------+==+=:.... ....--------------------------:.....
..:::----------------=-::.:--===---:.:------=--:.... ...:---------------------------...
..:------------------=--:..:--=+=--------::.:+-..... ...------------------------------..
...:-----------------:....----==-------:...=%*.......:::--------------------------------:..
...--------------:+......---------------:+%%#.----------------------------:.......-----:..
.:----===-------:-.. .:--------------*%%%%=--------------========------:.......-------:...
..-:.:------------....-.=---------=#%%%%##%------------=-----------------------------------..
.:--:....:--------:##*=:.-------=#%%%%%%#%+-----------=-------------------------------------:
..:-----------------::*%%#-------=###%%%%##=--------------------------------------:............
..:-------------------:.-#%%##+==+%%%%%%#%+------------------------...:::--------------::::::..
...:----------------------..-#%#%%%%%%%%*+#%=-------------------------=-:....:----------------:...
--------------------------:.-#%%%%%%%%+#@%%%--------------------------=++=-::---------------:...
---------------------------...+%%%%%%%#%%%%#---------------------------------------------:....
............------.....----:....-#%%%%%%%*=------------------------------::+=---------.......
..:-... ....-----.. ....-=-------------------------------------.=*+=.......
..---:....:-----:.......:--------------------------:-------------==+=-......
.:-------------..........:---------------------------..:-------------==..........
..-------------:... ...--------:...----------------....:-----------==-...........
..:----==------:..-.... ..--------:...:---------------.....:----------=+-.....
..------==+=++==-..+--:. .:--------.....-----------=*%=.. ..----------=+=......
....------------........:... ..:--------.....-------+#%%#@%.. ...----------=+=......
....---------===:............... .:----=+*#=. ..--+#**+%@@@#%+. ..:-:..=----=*=:.....
:............:=::+=:--:=.=-.::=... ..*@*-+%@@@:.....-@@#%@*#@@@#%:.. ..-:..---:-#**+-.........
.. ...::::....::-.:.::-.. ..*%:..*@@@*.. ..-%#%@@+%@@@@=.. ...::.=#=..-%*++=:... ...
...... .......... ..**...*#=*%:. .-*#@%+#%@@@@+... ..*%@%+...+%+=*+=-...
..*#:.-#+..+-. ..-*#**%%*%@@%=.. ..-%@@*:..+@%=:+**+=:..
..*@#*%%=..==. .-*%@#%@##@@@#-. ...#@@%*-=%@@#:..-=++=-
.:#@*-:++..==. .=#%@%*@@*%*=+*:....:.+@*::+%@@@%=......-*
.-%+...=%##%-. .+@*@%*%@##*-:*+..:-==*@=..:#@+:=*:.......
.:*#:..:*@@@%:. .-%@*%@#*%*#=..-%-....:+#=-.:#%-.:+-.......
.+@#=.-*@@@@*.. ....-%@@@@@@=..+%*.. .-%--=+#%-.:*-. ....
.-=++++++++=... .:***+++==::::... .-%#=-*#%#**#-.
..............
'@
Write-Host "`nFIXING WINDOWS FULL PRINCESS PI STYLE (THIS WILL TAKE MANY HOURS AND REBOOT MORE THAN ONCE, SLOWLY)`n" -ForegroundColor Magenta
Write-Host "ABORTING ANY SCHEDULED SHUTDOWN 1/17"
shutdown.exe /a > $null 2> $null # cmd abort scheduled shutdowns
Write-Host "GENERATING AND DISPLAYING COMPREHENSIVE STABILITY REPORT 2/17"
Start-Process "perfmon.exe" -ArgumentList "/report" -Wait
Write-Host "GENERATING AND DISPLAYING STABILITY HISTORY REPORT 3/17"
Start-Process "perfmon.exe" -ArgumentList "/rel" -Wait
Write-Host "CLEARING DNS 4/17"
ipconfig.exe /flushsdns > $null
Write-Host "CLEARING ARP CACHE 5/17"
Remove-NetNeighbor -Confirm:$false > $null 2> $null
Write-Host "CLEARING ALL SAMBA CREDENTIALS 6/17"
net.exe use * /delete /y > $null 2> $null # nuke all samba creds
Write-Host "RELEASING AND RENEWING DHCP 7/17"
# release and renew dhcp
ipconfig.exe /release > $null
ipconfig.exe /renew > $null
Write-Host "GETTING CONTROL OF WINDOWS UPDATE"
Install-Module -Name PSWindowsUpdate -Force > $null 2> $null
Import-Module PSWindowsUpdate
Write-Host "UPDATING MALWARE SIGNATURES 8/17"
Update-MpSignature # update windows defender malware siggs
Write-Host "RUNNING WINDOWS MALICIOUS SOFTWARE REMOVAL TOOL (MRT, MAY TAKE A LONG TIME, WONT SHOW STATUS) 9/17"
Start-Process -FilePath "MRT.exe" -ArgumentList "/F:Y /Q" -Wait # do full microsoft malicious software removal scan in background automatically removing anything found, wait to proceed
Write-Host "UPDATING MALWARE SIGNATURES (AGAIN) 10/17"
Update-MpSignature # update windows defender malware siggs
Write-Host "RUNNING FULL WINDOWS DEFENDER SCAN 11/17"
Start-MpScan -ScanType FullScan # full windows defender scan
Write-Host "RUNNING DISM ONLINE IMAGE CLEANUP 12/17"
DISM.exe /Online /Cleanup-Image /RestoreHealth # online check for bad files
Write-Host "RUNNING SYSTEM FILE CHECKER (SFC) 13/17"
SFC.exe /scannow # older check for bad files
Write-Host "SCHEDULING ESSENTIAL FILE CHECK ON NEXT BOOT 14/17"
SFC.exe /scanonce # check essential files on next boot
Write-Host "SCHEDULING OFFLINE CHECK DISK AND REPAIR OF C: (CHKDSK) 15/17"
echo y | chkdsk.exe /f /r C: # cmd checks C drive after reboot to waste time and fix errors (noninteractive via y ffuckery)
Write-Host "SCHEDULINMG OFFLINE MEMTEST 16/17"
mdsched.exe /s # schedule offline memtest (noninteractive)
Write-Host "SCHEDULING WINDOWS DEFENDER OFFLINE SCAN MAY REBOOT UNEXPECTEDLY 17/17"
Start-MpWDOScan # powershell starts Windows Defender Offline Scan after reboot
Write-Host "`nREBOOTING IN 5 MINUTES MAX PROVBABLY SOONER`n"
shutdown.exe /r /t (60*5) # shutdown in 5 minutes as failsafe
Write-Host "`nDONEsiez :3~`n"
}
+152
View File
@@ -0,0 +1,152 @@
# Usage:
# Open PowerShell as Administrator
# win+x
# alt+a
# alt+y
# Run:
# In admin powershell Terminal:
# iwr https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup/raw/branch/main/Windows-Scripts/windows-repair.ps1?nocache=$(Get-Random) -OutFile $env:TEMP\windows-repair-temp.ps1; powershell -nop -ep Bypass -File $env:TEMP\windows-repair-temp.ps1
# check if hasadmin rights, if notm run script in new terminal, clopsing old
## if not, carry on
if (-not ([Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544')) {
# launch tghis script int new window after promopting for admin
Start-Process -FilePath 'powershell' -Verb RunAs -ArgumentList "-ExecutionPolicy Bypass -File $PSCommandPath"
# CLOSE previous terminal with success
exit 0
} else {
Clear-Host # clear window
# ascii art
Write-Host -ForegroundColor Magenta @'
.. .....
....------..
..:--------.. .......
..----------.. ....---..
...---------=------::....:----:..
..-----=+**************=-----:...
.----+****************=-----...
.--=****************=-----=**+:::--:....
.-=#*********##**++=---====++**+-----:.
..:==********#=.+@%-==++===++===++*=----...
.:=::******%%+-::=++====+==++====+**=--...
.:+..+*****--@===-:-%--====-=+====+*#=:..
.-=.-****#=.#+===--=+===----======+*+..
.:=:+****#@#+=====-**-----*+====++**:.
.. .=****=--======-..%-----%+==++***+-..
..=++***+-.----======..*-----#+==+***#%#+..
.. .:-..---=====--------=-+==+**-@*. ............::::::....
..=:..--===+-:-------*%+==*+#%**=. .....:-------------------------:.
..............-:..--===+-..:-------+==+==.:... ...:----------------------------::.
......:----------::=:...--==+--:.:-------+==+=:.... ....--------------------------:.....
..:::----------------=-::.:--===---:.:------=--:.... ...:---------------------------...
..:------------------=--:..:--=+=--------::.:+-..... ...------------------------------..
...:-----------------:....----==-------:...=%*.......:::--------------------------------:..
...--------------:+......---------------:+%%#.----------------------------:.......-----:..
.:----===-------:-.. .:--------------*%%%%=--------------========------:.......-------:...
..-:.:------------....-.=---------=#%%%%##%------------=-----------------------------------..
.:--:....:--------:##*=:.-------=#%%%%%%#%+-----------=-------------------------------------:
..:-----------------::*%%#-------=###%%%%##=--------------------------------------:............
..:-------------------:.-#%%##+==+%%%%%%#%+------------------------...:::--------------::::::..
...:----------------------..-#%#%%%%%%%%*+#%=-------------------------=-:....:----------------:...
--------------------------:.-#%%%%%%%%+#@%%%--------------------------=++=-::---------------:...
---------------------------...+%%%%%%%#%%%%#---------------------------------------------:....
............------.....----:....-#%%%%%%%*=------------------------------::+=---------.......
..:-... ....-----.. ....-=-------------------------------------.=*+=.......
..---:....:-----:.......:--------------------------:-------------==+=-......
.:-------------..........:---------------------------..:-------------==..........
..-------------:... ...--------:...----------------....:-----------==-...........
..:----==------:..-.... ..--------:...:---------------.....:----------=+-.....
..------==+=++==-..+--:. .:--------.....-----------=*%=.. ..----------=+=......
....------------........:... ..:--------.....-------+#%%#@%.. ...----------=+=......
....---------===:............... .:----=+*#=. ..--+#**+%@@@#%+. ..:-:..=----=*=:.....
:............:=::+=:--:=.=-.::=... ..*@*-+%@@@:.....-@@#%@*#@@@#%:.. ..-:..---:-#**+-.........
.. ...::::....::-.:.::-.. ..*%:..*@@@*.. ..-%#%@@+%@@@@=.. ...::.=#=..-%*++=:... ...
...... .......... ..**...*#=*%:. .-*#@%+#%@@@@+... ..*%@%+...+%+=*+=-...
..*#:.-#+..+-. ..-*#**%%*%@@%=.. ..-%@@*:..+@%=:+**+=:..
..*@#*%%=..==. .-*%@#%@##@@@#-. ...#@@%*-=%@@#:..-=++=-
.:#@*-:++..==. .=#%@%*@@*%*=+*:....:.+@*::+%@@@%=......-*
.-%+...=%##%-. .+@*@%*%@##*-:*+..:-==*@=..:#@+:=*:.......
.:*#:..:*@@@%:. .-%@*%@#*%*#=..-%-....:+#=-.:#%-.:+-.......
.+@#=.-*@@@@*.. ....-%@@@@@@=..+%*.. .-%--=+#%-.:*-. ....
.-=++++++++=... .:***+++==::::... .-%#=-*#%#**#-.
..............
'@
# vars
$LogDir = "$env:USERPROFILE\Downloads\Repair-Log-$((Get-Date).ToString('yyyy-MM-dd-HHmm'))" # path to new log Dir
$MainLog = "$LogDir\main.log" # error log file
Write-Host "FIXING WINDOWS FULL PRINCESS PI STYLE (THIS WILL TAKE MANY HOURS AND REBOOT MORE THAN ONCE, SLOWLY)`n" -ForegroundColor Magenta
Write-Output "Creating Log Dir at $LogDir 1/21 at $((Get-Date).ToString('yyyy-MM-dd-HHmm'))"
mkdir "$LogDir" > $null 2> $null # create log dir
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm')) Initialize Log File $LogFile 3/21`n`tFollow Log File in Another Terminal With`n`t`t``Get-Content `"$MainLog`" -Wait -Tail 50``"
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))" >> "$MainLog"
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tOpening Log Dir 2/21" | Tee-Object -FilePath "$MainLog" -Append
explorer.exe "$LogDir"
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tAborting Any Scheduled Shutdowns 4/21" | Tee-Object -FilePath "$MainLog" -Append
shutdown.exe /a > $null 2>> "$MainLog" # cmd abort scheduled shutdowns
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`t`Creating Log Dir at $LogDir 5/21" | Tee-Object -FilePath "$MainLog" -Append
New-Item -Path "$LogDir" -ItemType Directory > $null 2>> "$MainLog" # create log dir
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tGenerating and Displaying Comprehensive Stability Report 6/21" | Tee-Object -FilePath "$MainLog" -Append
Start-Process "perfmon.exe" -ArgumentList "/report" -Wait # running report
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tGenerating and Displaying Stability History Report 7/21" | Tee-Object -FilePath "$MainLog" -Append
Start-Process "perfmon.exe" -ArgumentList "/rel" -Wait # historical report
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tClearning DNS Cache 8/21" | Tee-Object -FilePath "$MainLog" -Append
ipconfig.exe /flushsdns > $null 2>> "$MainLog" # flush dns cache
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tClearing ARP Table 9/21" | Tee-Object -FilePath "$MainLog" -Append
Remove-NetNeighbor -Confirm:$false > $null 2>> "$MainLog" # flush ARP Table
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tClearing ALL Samba Credentials 10/21" | Tee-Object -FilePath "$MainLog" -Append
net.exe use * /delete /y > $null 2>> "$MainLog" # nuke all samba creds automagically
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tReleasing and Renweing DHCP 11/21" | Tee-Object -FilePath "$MainLog" -Append
# release and renew dhcp
ipconfig.exe /release > $null 2>> "$MainLog"
ipconfig.exe /renew > $null 2>> "$MainLog"
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tGetting Control of Windows Update 12/21" | Tee-Object -FilePath "$MainLog" -Append
Install-Module -Name PSWindowsUpdate -Force > $null 2>> "$MainLog"
Import-Module PSWindowsUpdate
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tUpdating Windows 13/21" | Tee-Object -FilePath "$MainLog" -Append
Get-WindowsUpdate -AcceptAll -Install -IgnoreReboot > $null 2>> "$MainLog"
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tUpdating Malware Signatures 14/21" | Tee-Object -FilePath "$MainLog" -Append
Update-MpSignature 2>> "$MainLog" # update windows defender malware siggs
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tRunning FULL Windows Defender SCAN 15/21" | Tee-Object -FilePath "$MainLog" -Append
Start-MpScan -ScanType FullScan 2>> "$MainLog" # full windows defender scan
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tRunning DISM Online Image Cleanup 16/21" | Tee-Object -FilePath "$MainLog" -Append
DISM.exe /Online /Cleanup-Image /RestoreHealth 2>> "$MainLog" # online check for bad files
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tRunning System File Checker 17/21" | Tee-Object -FilePath "$MainLog" -Append
SFC.exe /scannow 2>> "$MainLog" # older check for bad files
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tScheduling Essential File Check on Next Boot 18/21" | Tee-Object -FilePath "$MainLog" -Append
SFC.exe /scanonce 2>> "$MainLog" # check essential files on next boot
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tScheduling Offline chkdsk and Repair of C: 19/21" | Tee-Object -FilePath "$MainLog" -Append
Write-Output y | chkdsk.exe /f /r C: > $null 2>> "$MainLog" # cmd checks C drive after reboot to waste time and fix errors (noninteractive via y ffuckery)
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tScheduling Offline Memory Test at Next Boot 20/21" | Tee-Object -FilePath "$MainLog" -Append
mdsched.exe /s 2>> "$MainLog" # schedule offline memtest (noninteractive)
Write-Output "$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`tScheduling Windows Defender Offline Scan 21/21`n`tMAY REBOOT UNEXPECTEDLY`n" | Tee-Object -FilePath "$MainLog" -Append
Start-MpWDOScan 2>> "$MainLog" # powershell starts Windows Defender Offline Scan after reboot
Write-Host "`nRebooting in 5 Minutes MAX Probably Sooner`n" -ForegroundColor Magenta
shutdown.exe /r /t (60*5) # shutdown in 5 minutes as failsafe
Write-Output "`n$((Get-Date).ToString('yyyy-MM-dd-HHmm'))`n`nDONEsiez :3~`n" | Tee-Object -FilePath "$MainLog" -Append
}
+38
View File
@@ -0,0 +1,38 @@
# Usage:
## .\winhash.ps1 <FILE> <ALGO>
## Algos Supported:
### MD5
### SHA1
### SHA256
### SHA384
### SHA512
## Example:
### .\winhash.ps1 sillyfilly.bin SHA256
## Outputs to terminal and to a text file
### Text file name format <input filepath>.<unix epoch microseconds>.<hashing algorithm>.txt
param (
[Parameter(Mandatory=$true)] # prompt for input if not specified via cli
[string]$infile,
[Parameter(Mandatory=$true)] # this 1 2 :pope:
[string]$algo
)
function Get-UnixMicroseconds {
$unixEpoch = [DateTimeOffset]'1970-01-01T00:00:00Z' # unix epoch constant
$currentTime = [DateTimeOffset]::UtcNow # current utc time
$timeDifferenceTicks = $currentTime.Ticks - $unixEpoch.Ticks # subtract current time from unix epoch constant in ticks
$microseconds = [Int64]($timeDifferenceTicks / 10) # use 64bit int, divide ticks by 10 to give microseconds
# I am literally using Unix microseconds because they are more fun than Unix seconds :pinkie:
return $microseconds
}
# jesus fuckin analbeads the selection of hash algos in powershell is weird and limited
# probably because Bill Gates and Satya Nadella get together with the other C-suite executives
# and hypergoon to leagelese in clickwrap agreements that absolves them of liability and
# lets them sell our private data and other assorted dickpics or sumtin idk man lmao
$hash = $(Get-FileHash -Path $infile -Algorithm $algo | Format-List) # do da fookin hashin right dafucc here
echo $hash # show user
echo $hash > "$infile.$(Get-UnixMicroseconds).$algo.txt" # make the txt file
View File
+18
View File
@@ -0,0 +1,18 @@
# CUSTOM STUFFS
# custom scripts https://github.com/PrincessPi3/general-scripts-and-system-ssssssetup
PATH="$PATH:/usr/share/customscripts"
# pico SDK https://github.com/raspberrypi/pico-sdk
export PICO_SDK_PATH='/home/kali/pico-sdk'
# esp-install-custom https://github.com/PrincessPi3/esp-install-custom
alias get_idf='. /home/princesspi/esp/esp-idf/export.sh'
alias run_esp_reinstall='git -C /home/princesspi/esp/esp-install-custom pull;echo -e "\nOld Version:";tail -1 /home/princesspi/esp/version-data.log;echo -e "\n";bash /home/princesspi/esp/esp-install-custom/reinstall-esp-idf.sh'
alias esp_monitor='tail -n 75 -f /home/princesspi/esp/install.log'
alias esp_logs='less /home/princesspi/esp/version-data.log;less /home/princesspi/esp/install.log'
export ESPIDF_INSTALLDIR="/home/princesspi/esp"
# pyenv https://github.com/pyenv/pyenv
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - zsh)"
View File
+19
View File
@@ -0,0 +1,19 @@
# Errata-Oneliners
leave self a warning not to fuck with shit
```bash
clear && echo -e "\n\n\n\n\n\n\n\n\n\n\n\n\n\e[32mFOOOKN 1TB DUMP IN PROGRESS DONT FUCK WITH ANYTHNG\e[0m\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
```
watch file growth based on partial names
```bash
file_tag=Kali-Pi5-Full-Configured-Working-1TB && dump_pid=1717053 && watch -n 300 "echo -e '\n\n\n\e[32mFOOOKN 1TB DUMP IN PROGRESS DONT FUCK WITH ANYTHNG\e[0m\n\n\n' && ls -lAh *${file_tag}* && echo && free -h && echo && uptime && echo && ps -p $dump_pid -o etime"
```
**submit sample to virustotal**
```bash
# in ~/.bashrc
export VIRUSTOTAL_API_KEY="<mah key>"
# in cli
sha256dsum SAMPLE.zip # get sha256 to look up on the site
curl -X POST -H "X-ApiKey: $VIRUSTOTAL_API_KEY" -F "file=@$PWD/SAMPLE.zip" https://www.virustotal.com/api/v3/files
# then look up file by sha256 checksum on the site
```
+18
View File
@@ -0,0 +1,18 @@
#!/bin/bash
subnet="10.0.0.0/24"
delay=60
count=1
start_time=$(date +%s)
while true; do
current_time=$(date +%s)
elapsed_time=$((current_time - start_time))
elapsed_minutes=$((elapsed_time / 60))
echo -e "\ndate $(date) elapsed_mins $elapsed_minutes count $count delay $delay subnet $subnet\n"
nmap -sV -O -p22 $subnet -oG - | grep -n '22/open/tcp' # fast on port 22 only with ping sweep
# nmap -sV -O -Pn -p22 $subnet -oG - | grep -n '22/open/tcp' # pingless search
# nmap -sV -O $subnet -oG - | grep -n '22/open/tcp' # lots of ports search
# nmap -sV -O -Pn $subnet -oG - | grep -n '22/open/tcp' # all ports search, pingless, slow
# sleep $delay
count=$((count + 1))
done
+56
View File
@@ -0,0 +1,56 @@
#!/bin/bash
checkcode () {
if [ -z "$1" ]; then
echo "Error! Use Checkcode like checkcode \$?" >&2
exit 1
fi
retcode=$1
if [ ! $retcode -eq 0 ]; then
printf " \033[0;31mError Code: $retcode\033[0m\n"
else
printf " \033[0;32mOK!\033[0m\n"
fi
}
echo -e "\n\033[0;31mCRASHING DOCKER AND EVERYTHING IN IT WITH NO SURVIVORS\033[0m\n"
echo -n "1/9: Stopping Docker... "
sudo docker stop $(sudo docker ps -a -q) >/dev/null 2>&1
checkcode $?
echo -n "2/9 Removing Docker Containers..."
sudo docker rm -v $(sudo docker ps -a -q) >/dev/null 2>&1
checkcode $?
echo -n "3/9 Removing Docker Images..."
sudo docker rmi $(sudo docker images -a -q) >/dev/null 2>&1
checkcode $?
echo -n "4/9 Removing Docker Volumes..."
sudo docker volume rm $(sudo docker volume ls -q) >/dev/null 2>&1
checkcode $?
echo -n "5/9 Removing Docker Networks..."
sudo docker network rm $(sudo docker network ls -q) >/dev/null 2>&1
checkcode $?
echo -n "6/9 Stopping Docker Daemon..."
sudo systemctl stop docker >/dev/null 2>&1
checkcode $?
echo -n "7/9 Disabling Docker Daemon Start At Boot..."
sudo systemctl disable docker >/dev/null 2>&1
checkcode $?
echo -n "8/9 Updating Package Repos..."
sudo apt update >/dev/null 2>&1
checkcode $?
echo -n "9/9 Removing and Purging docker.io and docker-compose"
sudo apt purge docker.io docker-compose -y >/dev/null 2>&1
checkcode $?
echo -e "\n\n\033[0;32mdonesies docker gone and purged\033[0m\n\n"
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
username=princesspi
echo "UNFUCK HOMEDIR PERMS"
sudo chown -R $username:$username /home/$username 2>/dev/null
sudo chmod 755 /home/$username 2>/dev/null
sudo chmod 700 /home/$username/.ssh 2>/dev/null
sudo chmod 600 /home/$username/.ssh/id_rsa 2>/dev/null
sudo chmod 644 /home/$username/.ssh/id_rsa.pub 2>/dev/null
sudo chmod 600 /home/$username/.ssh/authorized_keys 2>/dev/null
sudo chmod 600 /home/$username/.ssh/config 2>/dev/null
sudo chmod 644 /home/$username/.ssh/known_hosts 2>/dev/null
sudo chmod 644 /home/$username/.ssh/id_ed25519.pub 2>/dev/null
sudo chmod 600 /home/$username/.ssh/id_ed25519 2>/dev/null
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
[ "root" != "$USER" ] && exec sudo $0 "$@"
#usage sudo sh add_site_apache2.sh 192.168.1.1 example.com
#note: the web server will go down for the duration this script is running
#set needed A records to domain DNS before beginning
#bind IP desired before beginning
IP=$1
DOMAIN=$2
#stop apache
systemctl stop apache2
#cert get interface
certbot certonly
mkdir /var/www/$DOMAIN
echo "<h1>its live</h1>" > /var/www/$DOMAIN/index.html
#make and place config file
cat << EOF | echo > /etc/apache2/sites-available/{$DOMAIN}.config
<VirtualHost {$IP}:443>
DocumentRoot /var/www/{$DOMAIN}
ServerName $DOMAIN
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/{$DOMAIN}/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{$DOMAIN}/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "HIGH:!aNULL:!MD5:!3DES:!CAMELLIA:!AES128"
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
</VirtualHost>
<VirtualHost {$IP}:80>
ServerName $DOMAIN
Redirect permanent / https://{$DOMAIN}/
</VirtualHost>
EOF
a2ensite $DOMAIN
sh fix_permissions.sh
systemctl start apache2
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# usage:
# add_user_ssh.sh "$USER" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP2D+9oYQlTnu1zeVi2gHfTKE7+DDWiu1EibXNwB9g72 princesspi@proton.me"
[ "root" != "$USER" ] && exec sudo $0 "$@"
KEY="$2"
if [ -d "/home/$1/.ssh" ]; then
echo "$KEY" >> "/home/$1/.ssh/authorized_keys"
else
mkdir "/home/$1/.ssh"
echo "$KEY" >> "/home/$1/.ssh/authorized_keys"
fi
chmod 700 "/home/$1/.ssh"
chmod 600 "/home/$1/.ssh/authorized_keys"
chown -R $1:$1 "/home/$1/.ssh"
@@ -0,0 +1,2 @@
#!/bin/bash
polygen /usr/share/customscripts/annoy_the_fuck_out_of_commit_message_nerds.grm | tr -d '\n'
@@ -0,0 +1,17 @@
I ::= "title: Annoy the Fuck Out of Commit Message Nerds\n"
^ "author: Princess Pi <princesspi@proton.me>\n"
^ "language: english\n"
^ "topic: annoyances\n"
^ "audience: people who like to fuck off git purists :glimglamgrin:\n"
^ "created: 2025-12-20\n"
;
S ::= Adjective Noun Chaos Operation;
Adjective ::= "Async" | "Blocking" | "Brittle" | "Cached" | "Concurrent" | "Deprecated" | "Distributed" | "Flaky" | "Immutable" | "Leaky" | "Monolithic" | "Mutable" | "Racey" | "Recursive" | "Redundant" | "Sandboxed" | "Stale" | "Thread-Safe" | "Undefined" | "Unoptimized";
Noun ::= "api" | "build" | "cache" | "compiler" | "container" | "daemon" | "database" | "endpoint" | "function" | "heap" | "kernel" | "microservice" | "mutex" | "pipeline" | "process" | "queue" | "runtime" | "scheduler" | "stack" | "thread";
Chaos ::= "overflow" | "deadlock" | "panic" | "segfault" | "bottleneck" | "regression" | "refactor" | "hotfix" | "workaround" | "incident";
Operation ::= "added" | "removed" | "updated" | "fixed" | "corrected" | "tweaked" | "optimized" | "deleted" | "appended" | "concatanated" | "repaired" | "simplified" | "reverted" | "approved" | "rejected";
+61
View File
@@ -0,0 +1,61 @@
#!/bin/bash
# PACKAGES NEEDDED: argon2, cracklib-check, xxd?
time_cost=3 # time cost (iterations)
memory_cost=16 # 2^n KiB ex 16 = 64 MiB (mem usage)
paralellization_cost=1 # threads
salt_min_length=40
read -p "Input File to prove authorship of:" file
if [ ! -f "$file" ]; then
echo "$file not found!"
exit 1
else
echo "File: OK"
file=$(realpath $file)
fi
# gather salt
read -s -p "Input Secret Salt" salt1
read -s -p "Re-Enter Secret Salt" salt2
## Sanity check the salt
### not empty
if [ -z "$salt1" -o -z "$salt2" ]; then
echo "Input salts can NOT be blank!"
exit 1
else
echo "Salt Supplied: OK"
fi
### match
if [[ "$salt1" != "$salt2" ]]; then
echo "Salts DO NOT MATCH"
exit 1
else
echo "Salts match: OK"
fi
### length
salt_length=${#salt1} # salt len
if [[ $salt_length -le $salt_min_length ]]; then
echo "Salt MUST be $salt_min_length characters or longer!"
exit 1
else
echo "Salt Length: OK"
fi
### salt safety and complexity
complexity_check=$(echo -n "$salt1" | cracklib-check)
if grep -q 'OK' <<< "$complexity_check"; then
echo "Complexity: OK"
else
echo "Salt NOT Complex enough!"
exit 1
fi
argon2 "$salt1" -id -t $time_cost -m $memory_cost -p $paralellization_cost -e
< "$file"
## cleanup
unset $salt1
unset $salt2
unset $salt_length
echo "DONE"
exit 0
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
[ "root" != "$USER" ] && exec sudo $0 "$@"
LOCK=/var/lock/backups.lock
if [ ! -f $LOCK ]; then
echo "lock" > $LOCK
rsync -rzvvb --backup-dir=_old_ --suffix=$(date+_%F-%T) --update --times -e ssh /home/ <username>@<server>:~/backups/home
rm -f $LOCK
fi
+103
View File
@@ -0,0 +1,103 @@
#!/bin/bash
# todo:
## seperate out values
### x compression ratios
### x avg cpu and memory load (free and uptime?)
### x time to complete
### parse apart before and after mem values and display deltas
log_file="$(date +"%Y-%m-%d-%H%M-%S")_compressor_battle.log" # file safe sortable timestamp
# exec 2> >(tee -a "$log_file" >&2) # output all errs to terminal and log file
echo > "$log_file" # clean and initialize log file
# SUM TEXT COLORS
RED='\e[31m'
GREEN='\e[1;32m'
RESET='\033[0m'
echo -e "\n${GREEN}Battle of the img compressions${RESET}\n"
# first, delete any outstanding logs or compressed files
if [[ "$2" =~ nuke ]]; then
echo -e "${GREEN}Deleting old Files because NUKE was specified${RESET}"
rm -f *.log *.zip *.xz *.tar *.gz *.7z
echo -e "${GREEN}Done!${RESET}"
fi
if [ ! -f "$1" ]; then
echo -e "\n\n\n${RED}No image File Specified, exiting${RESET}"
exit 1
else
echo -e "${GREEN}OK!${RESET} $1 is a file and it exists"
img_file="$1"
fi
# xz
echo -e "\n${GREEN}Starting test with xz${RESET}\n"
xz_start=$(date +%s)
xz -k -v "$img_file"
xz_end=$(date +%s)
xz_time=$(($xz_end - $xz_start))
xz_img_size=$(du --bytes "$img_file" | awk '{print $1}')
xz_compressed_size=$(du --bytes "$img_file.xz" | awk '{print $1}')
xz_compression_ratio=$(($xz_compressed_size / $xz_img_size))
echo -e "\n\nxz_img_size: $xz_img_size xz_compressed_size: $xz_compressed_size xz_compression_ratio: $xz_compression_ratio seconds: $xz_time start: $xz_start end: $xz_end\n\n"
# echo -e "Size of file $img_file is: $(du -h $img_file | awk '{print $1}') or $(du --bytes $img_file | awk '{print $1}') bytes taking $xz_time seconds to complete" | tee -a "$log_file"
# echo -e "Size of the compressed file is $(du -h $img_file.xz | awk '{print $1}') or $(du --bytes $img_file.xz | awk '{print $1}') bytes" | tee -a "$log_file"
# gzip
echo -e "\n${GREEN}Starting test with gzip${RESET}"
gz_start=$(date +%s)
gzip -k -v "$img_file"
gz_retcode=$?
gz_end=$(date +%s)
gz_time=$(($gz_end - $gz_start))
gz_img_size=$(du --bytes "$img_file" | awk '{print $1}')
gz_compressed_size=$(du --bytes "$img_file.gz" | awk '{print $1}')
gz_compression_ratio=$(($gz_img_size / $gz_compressed_size))
echo -e "\n\n${GREEN}GZ Finished!\n\tgz_img_size: $gz_img_size\n\tgz_compressed_size: $gz_compressed_size\n\tgz_compression_ratio: $gz_compression_ratio\n\tseconds: $gz_time\n\tstart: $gz_start\n\tend: $gz_end \n\tretcode: $gz_retcode${RESET}\n\n"
# echo -e "Size of file $img_file is: $(du -h $img_file | awk '{print $1}') bytes taking $gz_time seconds to complete" | tee -a "$log_file"
# echo -e "Size of the compressed file is $(du -h $img_file.gz | awk '{print $1}') or $(du --bytes $img_file.xz | awk '{print $1}') bytes" | tee -a "$log_file"
# tar
echo -e "\n${GREEN}Starting test with tar${RESET}\n"
tar_start=$(date +%s)
tar -cvf "$img_file.tar" "$img_file"
tar_retcode=$?
tar_end=$(date +%s)
tar_time=$(($tar_end - $tar_start))
tar_img_size=$(du --bytes "$img_file" | awk '{print $1}')
tar_compressed_size=$(du --bytes "$img_file.tar" | awk '{print $1}')
tar_compression_ratio=$(($tar_img_size / $tar_compressed_size))
echo -e "\n\n${GREEN}TAR Finished!\n\ttar_img_size: $tar_img_size\n\ttar_compressed_size: $tar_compressed_size\n\ttar_compression_ratio: $tar_compression_ratio\n\tseconds: $tar_time\n\tstart: $tar_start\n\tend: $tar_end \n\tretcode: $tar_retcode${RESET}\n\n"
# echo -e "Size of file $img_file is: $(du -h $img_file | awk '{print $1}') or $(du --bytes $img_file | awk '{print $1}') bytes taking $tar_time seconds to complete" | tee -a "$log_file"
# echo -e "Size of the compressed file is $(du -h $img_file.tar | awk '{print $1}') or $(du --bytes $img_file.tar | awk '{print $1}') bytes" | tee -a "$log_file"
# 7z
echo -e "\n${GREEN}Starting test with 7z${RESET}"
sevenz_start="$(date +%s)"
7z a "$img_file.7z" "$img_file"
sevenz_end=$(date +%s)
sevevnz_time=$(($sevenz_end - $sevenz_start))
seven_img_size=$(du --bytes "$img_file" | awk '{print $1}')
seven_compressed_size=$(du --bytes "$img_file.7z" | awk '{print $1}')
seven_compression_ratio=$(($sevem_img_size / $seven_compressed_size))
echo -e "\n\n${GREEN}7ZIP Finished!\n\tseven_img_size: $sevem_img_size\n\tseven_compressed_size: $seven_compressed_size\n\tseven_compression_ratio: $seven_compression_ratio\n\tseconds: $tar_time\n\tstart: $tar_start\n\tend: $tar_end \n\tretcode: $tar_retcode${RESET}\n\n"
# echo -e "Size of file $img_file is: $(du -h "$img_file" | awk '{print $1}') or $(du --bytes "$img_file" | awk '{print $1}') bytes taking "$sevenz_time" seconds to complete" | tee -a "$log_file"
# echo -e "Size of the compressed file is $(du -h "$img_file.7z" | awk '{print $1}') or $(du --bytes "$img_file.7z" | awk '{print $1}') bytes" | tee -a "$log_file"
# zip
echo -e "\n${GREEN}Starting test with zip${RESET}\n"
zip_start=$(date +%s)
zip -v "$img_file.zip" "$img_file"
zip_retcode=$?
zip_end=$(date +%s)
zip_time=$(($zip_end - $zip_start))
zip_img_size=$(du --bytes "$img_file" | awk '{print $1}')
zip_compressed_size=$(du --bytes "$img_file.zip" | awk '{print $1}')
zip_compression_ratio=$(($zip_compressed_size / $zip_img_size))
echo -e "\n\n${GREEN}ZIP Finished!\n\tzip_img_size: $zip_img_size\n\tzip_compressed_size: $zip_compressed_size\n\tzip_compression_ratio: $zip_compression_ratio\n\tseconds elapssed: $zip_time\n\tstart: $zip_start\n\tend: $zip_end \n\tretcode: $zip_retcode${RESET}\n\n"
# echo -e "Size of file $img_file is: $(du -h $img_file | awk '{print $1}') or $(du --bytes $img_file | awk '{print $1}') bytes taking $zip_time seconds to complete" | tee -a "$log_file"
# echo -e "Size of the compressed file is $(du -h $img_file.zip | awk '{print $1}') or $(du --bytes $img_file.zip | awk '{print $1}') bytes" | tee -a "$log_file"
echo -e "\n\n\n${GREEN}DONE :3 nyaa~${RESET}\n\n"
+57
View File
@@ -0,0 +1,57 @@
#!/bin/bash
# usage
# binwalk.sh filename [default/opcodes/basicextract/compressionextract/opcodeextract
set -e
filename="$2"
unix_seconds=$(date +%s)
dir="binwalk-exracted-$filename-$unix_seconds"
log="binwalk-log-$filename-$unix_seconds.txt"
basic="Bf"
basicextract="Bef"
compressionextract="BeMXZCf"
opcodecompressextract="ABeMXZCf"
opcodeextract="ABeCf"
opcode="ABf"
basic_cmd="--signature"
basicextract_cmd="--signature --extract --directory=$dir"
compressionextract_cmd="--signature --extract --matryoshka --deflate --lzma --directory=$dir"
opcodecompressextract_cmd="--opcodes --signature --extract --matryoshka --deflate -lzma --directory=$dir"
opcodeextract_cmd="--opcodes --signature --extract --directory=$dir"
opcode_cmd="--opcodes --signature"
usage_string="Usage:\n\tbinwalk.sh <option> <file>\n\t\tb/d/basic/default\n\t\to/op/opcode/opcodes\n\t\tbe/eb/basicextract/extractbasic\n\t\tce/ec/compressionextract/extractcompression\n\t\tope/oce/oec/opcodecompressionextract\n\t\toe/eo/opcodeextract/extractopcode"
if [ "$1" == "o" -o "$1" == "opcode" -o "$1" == "opcodes" -o "$1" == "op" ]; then
tag="$opcode"
cmd="$opcode_cmd"
elif [ "$1" == "d" -o "$1" == "default" -o "$1" == "b" -o "$1" == "basic" ]; then
tag="$basic"
cmd="$basic_cmd"
elif [ "$1" == "be" -o "$1" == "basicextract" -o "$1" == "eb" -o "$1" == "extractbasic" ]; then
tag="$basicextract"
cmd="$basicextract_cmd"
elif [ "$1" == "ce" -o "$1" == "compressionextract" -o "$1" == "ec" -o "$1" == "extractcompression" ]; then
tag="$compressionextract"
cmd="$compressionextract_cmd"
elif [ "$1" == "oce" -o "$1" == "opcodecompressionextract" -o "$1" == "eoc" -o "$1" == "oec" ]; then
tag="$opcodecompressextract"
cmd="$opcodecompressextract_cmd"
elif [ "$1" == "oe" -o "$1" == "opcodeextract" -o "$1" == "eo" -o "$1" == "extractopcode" ]; then
tag="$opcodeextract_cmd"
cmd="$opcodeextract_cmd"
else
echo -e "$usage_string"
exit
fi
echo -e $cmd
if [ -z $2 ]; then
echo -e "$usage_string"
exit
fi
to_run="binwalk $cmd --log=$log"
eval($to_run)
+69
View File
@@ -0,0 +1,69 @@
#!/bin/bash
# set -e # die on any errpr because nmama didnt raise no bitch
# even includes error handling and sanity checks plus has help and even did tha retcodes :3
# happy naesms
provided_credential="$1"
openbadge_file="$2"
# halp string
halp_str="\nHelp:\n\tAbout:\n\t\tCheckBadge for verifying Openbadges\n\t\tPart of https://github.com/PrincessPi3/general-scripts-and-system-ssssssetup Files\n\tUsage:\n\t\tcheckbadge <string credential (email or phone number)> <string path to openbadge file>\n\t\tExample:\n\t\t\tcheckbadge 'my@email.com' mybadgefile.png\n\t Requires:\n\t\t* coreutils (sha256sum)\n\t\t* jq\n\t\t* exiftool"
# sum silliness so you can get help with retcode 0 with -h, -help, --help, --h, help, h, etc so lnog as the first arg starts with -?-?h (case insensitive) and arg two is empty
if [[ "$1" =~ ^[-]{0,2}[hH] ]]; then
if [ -z "$2" ]; then
echo -e "$halp_str"
exit 0
fi
fi
# maek sure da args are in place or print help and fail
if [ -z "$provided_credential" -o -z "$openbadge_file" ]; then
echo -e "\nERROR: must provide the credential and the file path"
echo -e "$halp_str"
exit 1
fi
# does fiel exist dipshit?
if [ ! -f "$openbadge_file" ]; then
echo -e "\nERROR: $openbadge_file not found"
echo -e "$halp_str"
exit 1
fi
# maek sure its an openbadges fiel
exiftool "$openbadge_file" | grep -q Openbadges
ret=$?
if [ $ret -ne 0 ]; then
echo -e "\nERROR: File $openbadgefile does not seem to be an Openbadge file or it has had its metadata stripped"
echo -e "$halp_str"
exit 1
fi
# gert da json out of da metadata fo da badger
openbadge_json=$(exiftool "$openbadge_file" | grep Openbadges | awk -F ': ' '{print $2}')
# get da values out of dat json
openbadge_url=$(echo $openbadge_json | jq -r '.badge')
openbadge_sha256=$(echo $openbadge_json | jq -r '.recipient.identity' | awk -F '$' '{print $2}')
openbadge_salt=$(echo $openbadge_json | jq -r '.recipient.salt')
openbadge_narrative=$(echo $openbadge_json | jq -r '.narrative')
openbadge_name=$(echo $openbadge_json | jq -r '.extensions.recipientProfile.name')
# generate da checksum from the provided credential and extracted salt
# sha256(<string provided credential><string extracted salt>)
generated_sha256=$(printf "$provided_credential$openbadge_salt" | sha256sum | awk '{print $1}')
# outputter
echo -e "\nTESTING '$provided_credential' AGAINST OPENBADGE FILE '$openbadge_file'\n\nProvided Credential: $provided_credential\nBadge File: $openbadge_file\n\tBadge URL: $openbadge_url\n\tSalt: $openbadge_salt\n\tNarrative: $openbadge_narrative\n\tSHA256 Checksum: $openbadge_sha256\nGenerated SHA256 Checksum: $generated_sha256\n\tFrom: sha256(<string credential><string salt>)"
# do dey maaaatch again>???
# but this time set retcode show succ or failure
if [ "$openbadge_sha256" = "$generated_sha256" ]; then
echo -e "\nSUCCESS: VERIFIED MATCH!"
exit 0
else
echo -e "\nFAIL: NO MATCH!"
exit 1
fi
+69
View File
@@ -0,0 +1,69 @@
#!/bin/bash
# file paths
sha256_file_path=./checksums.sha256
md5_file_path=./checksums.md5
error_log=./checksums_error.log
# text colors
RED='\e[31m'
GREEN='\e[32m'
RESET='\e[0m'
# set these false at the start to be safe
checksha256=false
checkmd5=false
# output errors to error log
exec 2> >(tee -a "$error_log" >&2)
# environment checks
## check for presence of $sha256_file_path, fail with general error on error
if [ ! -f "$sha256_file_path" ]; then
echo -e "\n${RED}FAIL!${RESET} File $sha256_file_path Not Found!\n" >&2
exit 1
fi
## check if $sha256_file_path is writable
if [ ! -r "$sha256_file_path" ]; then
echo -e "\n${RED}FAIL!${RESET} File $sha256_file_path Exists But Not Readable!\n" >&2
exit 1
fi
## check for presence of $md5_file_path, fail with general error on error
if [ ! -f "$md5_file_path" ]; then
echo -e "\nFAIL! File $md5_file_path Not Found!\n" >&2
exit 1
fi
## check if $md5_file_path is writable
if [ ! -r "$md5_file_path" ]; then
echo -e "\n${RED}FAIL!${RESET} File $md5_file_path Exists But Not Readable!\n" >&2
exit 1
fi
# check checksums
## check sha256
if sha256sum -c "$sha256_file_path" 1>/dev/null; then
echo -e "SHA256 Checksums: ${GREEN}OK!${RESET}"
checksha256=true
else
echo -e "\n\nSHA256 Checksums: ${RED}BAD!${RESET}\nDumping SHA256 Checksum Fails:" >&2
sha256sum -c "$sha256_file_path" | grep 'FAILED' >&2
echo -e "\nSHA256 Checksums: ${RED}BAD!${RESET}\n" >&2
fi
## check md5
if md5sum -c "$md5_file_path" 1>/dev/null; then
echo -e "MD5 checksums: ${GREEN}OK!${RESET}"
checkmd5=true
else
echo -e "\n\nFAIL: MD5 Checksums: ${RED}BAD!${RESET}\n\tDumping MD5 Checksum Fails:" >&2
md5sum -c "md5_file_path" | grep 'FAILED' >&2
echo -e "\nMD5 Checksums: ${RED}BAD!${RESET}\n" >&2
fi
# tally checks
if [[ $checksha256 == true && $checkmd5 == true ]]; then
echo -e "\nFile Integrity: VERIFIED! All Checksums: ${GREEN}OK!${RESET}\n"
exit 0 # exit success
else
echo -e "\nFile Integrity Check: ${RED}FAILED!${RESET}\n\tSee Above or See $error_log" >&2
exit 1 # exit general failure
fi
@@ -0,0 +1,40 @@
#!/bin/bash
# file paths
sha256_file_path=./checksums.sha256
md5_file_path=./checksums.md5
error_log=./checksums_error.log
# text colors
RED='\e[31m'
YELLOW='\033[33m'
GREEN='\e[32m'
RESET='\e[0m'
# output errors to error log
exec 2> >(tee -a "$error_log" >&2)
if [ -f "sha256_file_path" ]; then
echo -e "${YELLOW}Warn${RESET}: Existing $sha256_file_path Found, Deleting..."
rm -f "sha256_file_path"
fi
if [ -f "$md5_file_path" ]; then
echo -e "${YELLOW}Warn${RESET}: Existing $md5_file_path Found, Deleting..."
rm -f "$md5_file_path"
fi
if [ -f "$error_log" ]; then
echo -e "${YELLOW}Warn${RESET}: Existing $error_log Found, Deleting..."
rm -f "$error_log"
fi
# notify user
echo "Calculating SHA256 and MD5 Checksums Recursively into $sha256_file_path and $md5_file_path\n\t${YELLOW}This May Take a Long Time!${RESET}"
# exclude git
if find . -type f ! -path "*/.git/*" ! -path "$error_log" ! -path "$md5_file_path" ! -path "$sha256_file_path" ! -path "$0" ! -path "./check_checksums.sh" -exec bash -c "file_path={} && sha256sum \$file_path 1>> $sha256_file_path && md5sum \$file_path 1>> $md5_file_path" \;; then
echo -e "\n${GREEN}SUCCESS!${RESET} Generated SHA256 and MD5 Checksums into $sha256_file_path and $md5_file_path Respectively!\n"
exit 0 # explicitly exit success
else
echo -e "\n${RED}FAIL!${RESET} Failed to Generate SHA256 and MD5 Checksums! Check Error Output or Check Error Log: $error_log\n" >&2
exit 1 # explicitly fail
fi
+5
View File
@@ -0,0 +1,5 @@
sleep 10
curl -L https://github.com/espressif/esp-idf/releases/download/v5.5.1/esp-idf-v5.5.1.zip
oniux curl -s https://canhazip.com
oniux curl -s https://canhazip.com
rm -f /tmp/*.tmp
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
# todo
## pull commands from file with title
commands_to_test=("sudo mount -a" "lsblk" "sha256sum *img")
for command in "${commands_to_test[@]}"; do
memory_avg_bytes_before=$(free --bytes | rg 'Mem:' | awk '{print "Memory Usage (bytes) Before Test\nTotal\tUsed\tFree\tAvailable\n", $2, $3, $4, $6}')
load_avg_before=$(cat /proc/loadavg)
start=$(date +%s)
eval "$command"
retcode=$?
end=$(date +%s)
time=$(($end - $start)) # duration
load_avg_after=$(cat /proc/loadavg) # read da load avg, number of processes, and most recent process
memory_avg_bytes_after=$(free --bytes | rg 'Mem:' | awk '{print "Memory Usage (bytes) After Test\nTotal\tUsed\tFree\tAvailable\n", $2, $3, $4, $6}')
echo -e "${GREEN}Completed $command\n\tTime: $time seconds\n\tStart: $start\n\tEnd: $end\n\tLoad Average Initial: $load_avg_before\n\tLoad Average After $load_avg_after\n\tRetcode $retcode${RESET}"
echo -e "${GREEN}memory before${RESET}"
echo -e "$memory_avg_bytes_before"
echo -e "${GREEN}memory after${RESET}"
echo -e "$memory_avg_bytes_after"
done
+58
View File
@@ -0,0 +1,58 @@
#!/bin/bash
finalDir='/usr/share/customscripts'
fix_perms() {
# fix ownership
echo -e "\nChanging ownership of $finalDir to $username:$username recursively"
sudo chown -R $username:$username $finalDir
# fix perms
echo -e "\nSetting perms of $finalDir and contents to 775"
sudo chmod -R 775 $finalDir
}
# ta get da right usermayhaps
if [[ -z $SUDO_USER ]]; then
echo "Using User $USER"
username="$USER"
else
echo "Using User $SUDO_USER"
username="$SUDO_USER"
fi
echo -e "\nConfigure Discord Webhook Settings"
if [ -f /tmp/tag.txt ] && [ -f /tmp/webhook.txt ]; then
echo -e "\nExisting Webhook and Tag found. Using those values unless you enter new ones.\n"
existing_webhook=$(cat /tmp/webhook.txt)
existing_tag=$(cat /tmp/tag.txt)
echo -e "Existing Webhook URL: $existing_webhook"
echo -e "Existing Tag: $existing_tag\n"
# move em into place
sudo mv /tmp/tag.txt $finalDir/tag.txt
sudo mv /tmp/webhook.txt $finalDir/webhook.txt
# update permissions
fix_perms
exit 0 # exit ok
fi
# get webhook url
echo -e "\nEnter Discord Webhook URL"
read webhook_url
# get tag
echo -e "\nEnter Tag to Notify"
read webhook_tag
# write da files
sudo bash -c "echo '$webhook_url' > $finalDir/webhook.txt"
sudo bash -c "echo '$webhook_tag' > $finalDir/tag.txt"
fix_perms
echo -e "\n\nDone! Restarting shell..."
+40
View File
@@ -0,0 +1,40 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Showing Wifi Interfaces:"
iwconfig
echo "Please Enter Wifi Interface:"
read interface
else
interface="$1"
fi
echo "Scanning Wifi Networks"
nmcli dev wifi list
if [ -z "$2" ]; then
echo "Please Enter SSID"
read ssid
else
ssid="$2"
fi
if [ -z "$3" ]; then
echo "Please Enter Password"
read password
else
password="$2"
fi
echo -e "\n\nConnect to $ssid with password $password on interface $interface \n\n"
pause
echo "Running ./fix-wifi.sh"
sudo bash ./fix-wifi.sh $interface
echo "Rescanning"
nmcli dev wifi rescan
echo "Connecting to $ssid"
nmcli device wifi connect $ssid password $password ifname $interface # --rescan yes
echo -e "\nnyaa mrrp done~ :D\n"
+55
View File
@@ -0,0 +1,55 @@
#!/bin/bash
# set -e
# date strings
start=`date +%s`
isodate=`date -I`
echo -e "\nStarting at `date`!\n"
lsblk
echo -e "\ninput disk full path (like /dev/sdX)"
read disk
echo -e "\ninput tag for image (no spaces or special chars)"
read file_tag
file_string=$isodate-$file_tag
out_dir=$PWD
out_img=$out_dir/$file_string.img
out_xz=$out_dir/$file_string.img.xz
info_log=$out_dir/$file_string.txt
echo -e "\nCOPYAN $disk to $out_img\n"
sudo dd if=$disk of=$out_img bs=4M status=progress
ret=$?
ddd=$(($end - `date +%s`))
echo -e "\nDONE COPYING IN $ddd SECONDS ($ret)!\n\nGetting size of $out_img!\n"
sudo du -h $out_img | tee -a $info_log
sudo du -b $out_img | tee -a $info_log
ret=$?
# ddd=$(($end - `date +%s`))
# echo -e "\nDONE GETTING SIZE IN $ddd SECONDS ($ret)!\n\n! MAKIN SHA256 CHECKSUM OF $out_img"
# sudo sha256sum $out_img | tee -a $info_log
# ret=$?
ddd=$(($end - `date +%s`))
echo -e "\nDONE GETTING SIZE IN $ddd SECONDS LOGGED TO $info_log ($ret)!\n\nRUNNOIG PISHRINK from $out_img to $out_xz\n"
sudo pishrink -Z -a -v $out_img
ret=$?
ddd=$(($end - `date +%s`))
echo -e "\nDONE RUNNING PISHRINK IN $ddd SECONDS ($ret)!\n\nGETTIN SIZE OF $out_xz\n"
sudo du -h $out_xz | tee -a $info_log
sudo du -b $out_xz | tee -a $info_log
ret=$?
ddd=$(($end - `date +%s`))
echo -e "\nDONE GETTING FILE SIZE IN $ddd SECONDS ($ret)!\n\aMAKIN SHA256 CHECKSUM OF $out_xz\n"
sha256sum $out_xz | tee -a $info_log
ddd=$(($end - `date +%s`))
echo -e "ALL DONE IN $ddd SECONDS!"
echo "Duration $duration seconds" >> $info_log
+22
View File
@@ -0,0 +1,22 @@
#!/bin/bash
#Crowdsec Install and config
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
apt -y install crowdsec
truncate -s 0 /var/log/crowdsec.log
#configure bouncers as needed here https://hub.crowdsec.net/browse/#bouncers
apt -y install crowdsec-firewall-bouncer-iptables
cscli collections install crowdsecurity/base-http-scenarios
cscli bouncers add php-bouncer
systemctl reload crowdsec
#cscli bouncers add <nginx-bouncer php-bouncer wordpress-bouncer cloudflare-bouncer> #as needed
# SAVE API KEY, THEY ARE UNRECOVERABLE
#for wordpress: install crowdsec plugin in admin panel
# SAVE API KEY FROM INSTALL
# add API key
# LAPIU URL: http://localhost:8080
#for cpanel
#cscli scenarios install crowdsecurity/cpanel-bf
#unban an IP
#cscli decisions list
#cscli decisions delete --id <id number from list>
+266
View File
@@ -0,0 +1,266 @@
#!/bin/bash
# todo:
## packages to add:
## x enable start services: xrdp apache2 avahi-service
## x run customscripts
## make less interactive
### visudo
### su user
## x reboot
# set safety optinonz
set -o errexit # fail on error
set -o errtrace # run trace on error
set -o pipefail # fail on pipe fail
set -o nounset # fail on unset var
# packages
new_packages=(gawk curl wget git gh build-essential scrypt openssl argon2 qbittorrent xfce4 gparted xrdp xz-utils 7zip zip unzip gzip apache2 php php-cli php-bz2 php-crypt-gpg php-curl php-db php-doc php-email-validator cowsay iotop iptraf-ng gh btop htop screen byobu wget thefuck lynx zip unzip 7zip net-tools clamav php restic cifs-utils detox fdupes ffmpeg ripgrep avahi-daemon libnss-mdns xxd libimage-exiftool-perl ffuf wireshark hashcat snap pipx restic firefox)
# user info
new_username="princesspi"
groups_username=("tty" "dialout" "plugdev" "sudo" "www-data")
home_username="/home/${new_username}"
# services shit
services_to_enable=("ssh" "apache2" "xrdp" "avahi-daemon")
services_to_disable=("nginx")
# save here to use in error_handle function
num_of_args="$#"
all_args="$@"
# Define the cleanup function
error_handle() {
# CRITICAL: Capture the exit status code before ANY other command runs
local exit_code=$?
local script_path="$(realpath $0)"
local hr='===================================================='
echo
echo $hr
echo -e "🚨 \033[0;31m FATAL ERROR DETECTED \033[0m"
echo $hr
echo "-> Script : $0"
echo "-> Num Script Args : $num_of_args"
echo "-> Script Args : $all_args"
echo "-> Shell : $SHELL"
echo "-> Script Path : $script_path"
echo "-> Script (full) : $SHELL $script_path $all_args"
echo "-> User : $USER"
echo "-> Working Directory : $PWD"
echo "-> Failed Command : $BASH_COMMAND"
echo "-> Line Number : $LINENO"
echo "-> Exit Status : $exit_code"
echo "-> Seconds Elapsed : $SECONDS"
echo "-> Date Failed : $(date)"
# Generate a professional, clean stack traceback
echo "-> Stack Trace"
printf "\t" # to intent da stack trace
local frame=0
# Loop backwards through the function execution stack array
while caller $frame; do
printf "\t" # to indenet da stack trace
frame=$((frame + 1))
done
# closing niceties
echo
echo $hr
echo
# exit with last failcode
exit "$exit_code"
}
trap error_handle ERR
# to give pass/fail output from da commmands
## usage like checkcode $?
checkcode () {
if [ -z "$1" ]; then
echo -e "\n\e[31mERROR!\033[0m chkcode missing return code paramater\n"
exit 1
else
retcode=$1
fi
if [ $retcode -ne 0 ]; then
echo -e "\t\e[31mERROR!\033[0m Response Code: $retcode"
else
echo -e '\t\e[1;32mOK!\e[0m'
fi
}
reload_shell() {
echo "reload_shell: START"
echo "reload_shell: sourcing to $home_username/.bashrc"
source "$home_username/.bashrc"
checkcode $?
echo "reload_shell: reloading shell"
exec "$SHELL"
checkcode $?
echo "reload_shell: FINISHED"
}
reset_root() {
echo "reset_root: START"
echo "reset_root: change password"
sudo passwd root
checkcode $?
echo "reset_root: FINISHED"
}
user() {
echo "user: START"
echo "user: create $new_username"
useradd "$new_username"
checkcode $?
echo "user: adding groups"
for group in "${groups_username[@]}"; do
echo "user: adding $new_username to group $group"
usermod -aG $group $new_username &> /dev/null
checkcode $?
done
echo "user: FINISHED"
}
apt() {
echo "apt: START"
echo "apt: updating"
sudo apt update &> /dev/null
checkcode $?
echo "apt: running dist-upgrade"
sudo apt dist-upgrade -y &> /dev/null
checkcode $?
echo "apt: install packages"
sudo apt install -y "${new_packages[@]}" &> /dev/null
checkcode $?
sudo snap install urh
checkcode $?
echo "apt: autoremoving"
sudo apt autoremove -y &> /dev/null
checkcode $?
echo "apt: FINISHED"
}
pyenv() {
echo "pyenv: START"
echo "pyenv: installin"
curl -fsSL https://pyenv.run | bash &> /dev/null
checkcode $?
echo "pyenv: adding exports to $home_username/.bashrc"
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> "$home_username/.bashrc"
checkcode $?
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> "$home_username/.bashrc"
checkcode $?
echo 'eval "$(pyenv init -)"' >> "$home_username/.bashrc"
checkcode $?
echo "pyenv: sourcing to $home_username/.bashrc"
source "$home_username/.bashrc"
checkcode $?
echo "pyenv: installing latest python3"
latest_python=$(pyenv install --list | grep -E '^[[:space:]]*3\.[0-9]+\.[0-9]+$' | tail -1 | tr -d '[:space:]')
if [ -z "$latest_python" ]; then
echo "pyenv: could not detect latest Python 3 version"
exit 1
fi
pyenv install "$latest_python" &> /dev/null
checkcode $?
echo "pyenv: setting latest python3 as global"
pyenv global "$latest_python" &> /dev/null
checkcode $?
reload_shell
echo "pyenv: FINISHED"
}
blesh() {
echo "ble.sh: START"
echo "ble.sh: changing directory to /tmp"
cd /tmp
checkcode $?
echo "ble.sh: downloading"
git clone --recursive --depth 1 --shallow-submodules --single-branch -b master https://github.com/akinomyoga/ble.sh.git &> /dev/null
checkcode $?
echo "ble.sh: building and installing"
make -C ble.sh install PREFIX=$home_username/.local &> /dev/null
checkcode $?
echo "ble.sh: setting up $home_username/.bashrc file"
echo '# ble.sh' >> $home_username/.bashrc
checkcode $?
echo 'source -- $home_username/.local/share/blesh/ble.sh' >> $home_username/.bashrc
checkcode $?
reload_shell
echo "ble.sh: FINISHED"
}
wordists() {
echo "wordlists: START"
echo "wordlists: making $home_username/wordlists dir"
mkdir -p $home_username/wordlists &> /dev/null
checkcode $?
echo "wordlists: downloading seclists to $home_username/wordlists"
git clone --single-branch https://github.com/danielmiessler/SecLists.git $home_username/wordlists/SecLists &> /dev/null
# todo: finish
echo "wordlists: FINISHED"
}
services() {
echo "services: START"
echo "services: disable"
for service in "${services_to_disable[@]}"; do
echo "services: disabling $service"
sudo systemctl disable "$service"
checkcode $?
echo "services: stopping $service"
sudo systemctl stop "$service"
checkcode $?
done
echo "services: enable"
for service in "${services_to_enable[@]}"; do
echo "services: enabling $service"
sudo systemctl enable "$service" &> /dev/null
checkcode $?
echo "services: starting $service"
sudo systemctl start "$service" &> /dev/null
checkcode $?
done
echo "services: FINISHED"
}
customscripts() {
echo "customscripts: START"
script="/tmp/install_script.sh"
echo "customscripts: downloading general-scripts-and-system-ssssssetup installer"
curl -s https://raw.githubusercontent.com/PrincessPi3/general-scripts-and-system-ssssssetup/refs/heads/main/customscripts/install_script.sh > "$script"
checkcode $?
echo "customscripts: making $script executable"
chmod +x "$script"
checkcode $?
echo "customscripts: running $script"
bash -c "$script full"
checkcode $?
echo "customscripts: running configure_webhook.sh full"
bash /usr/share/customscripts/configure_webhook.sh full
checkcode $?
echo "customscripts: updating user .bashrc"
echo 'export PATH="$PATH:/usr/share/customscripts"' >> "$home_username/.bashrc"
checkcode $?
reload_shell
}
reboot() {
echo "reboot: START"
echo "reboot: setting to reboot in one minute"
sudo shutdown -r +1
echo "reboot: FINISHED"
}
# run in order
user
apt
pyenv
blesh
wordlists
services
customscripts
reboot
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Usage
# dirstat <path>
if [ -z "$1" ]; then
path=.
else
path=$1
fi
echo -e "\nPath: $path"
echo "Space used: $(du -h -d 0 $path | awk '{print $1}')"
echo "Files: $(find $path -type f -print | wc -l)"
echo "Directories: $(find $path -type d -print | wc -l)"
uptime
+13
View File
@@ -0,0 +1,13 @@
gcc -o "donut" "donut.c" -lm
if [ $? -ne 0 ];
echo "fuck da compiling failed fuuuck"
else
echo "fixing perms"
sudo chmod 755 /usr/share/customscripts/donut
echo "Fixing ownership"
sudo chown princesspi:princesspi
echo "Cleaning up"
sudo rm -f /usr/share/customscripts/donut
echo "done!"
fi
+23
View File
@@ -0,0 +1,23 @@
#include <stdio.h>
#include <string.h>
int k = 0;double sin()
,cos();int main(){float A=
0,B=0,i,j,z[1760];char b[
1760];printf("\x1b[2J");for(;;
){memset(b,32,1760);memset(z,0,7040)
;for(j=0;6.28>j;j+=0.07)for(i=0;6.28
>i;i+=0.02){float c=sin(i),d=cos(j),e=
sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c*
h*e+f*g+5),l=cos (i),m=cos(B),n=s\
in(B),t=c*h*g-f* e;int x=40+30*D*
(l*h*m-t*n),y= 12+15*D*(l*h*n
+t*m),o=x+80*y, N=8*((f*e-c*d*g
)*m-c*d*e-f*g-l *d*n);if(22>y&&
y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]=
".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/
printf("\x1b[H");for(k=0;1761>k;k++)
putchar(k%80?b[k]:10);A+=0.04;B+=
0.02;}}/*****####*******!!=;:~
~::==!!!**********!!!==::-
.,~~;;;========;;;:~-.
..,--------,*/
+63
View File
@@ -0,0 +1,63 @@
#!/bin/bash
tmp_links_file="/tmp/links.tmp"
tmp_file_download="/tmp/download.tmp"
nano "$tmp_links_file"
read -p "Enter output directory: " outdir
# manually created arrays for file types and extensions
## notes: from twitter downloader mp4 files show as ISO?
types_arr=('MPEG' 'ISO' 'JPEG' 'PNG' 'GIF' 'WebM' 'RIFF')
exts_arr=('mp4' 'mp4' 'jpg' 'png' 'gif' 'webm' 'webp')
# create the out dir if not extant
if [ ! -d "$outdir" ]; then
echo "Output directory does not exist: $outdir Creating"
mkdir "$outdir"
fi
# read the input file and loop through it
cat "$tmp_links_file" | \
while read line; do
# get default basename of downloaded file
file_basename=$(basename "$line")
echo "Downloading $line" # to $outdir/$file_basename"
# download the file to a tmp
curl -s -o "$tmp_file_download" "$line"
# get the file type
type=$(file "$tmp_file_download" | awk '{print $2}')
# md5 hash the file for a deterministic file name
namehash=$(md5sum "$tmp_file_download" | awk '{print $1}')
# map the file type to the corresponding extension
count=0
# loop through types for patch with file type
for item in "${types_arr[@]}"; do
if [[ " ${types_arr[@]} " =~ " ${type} " ]]; then
# if type matches
if [[ "$item" == "$type" ]]; then
# rename the downloaded file
new_name="$outdir/$namehash.$(echo ${exts_arr[$count]})"
echo -e "\tto $new_name"
mv "$tmp_file_download" "$new_name"
if [ $? -ne 0 ]; then
echo -e "\nFailed to rename $tmp_file_download to $new_name\n\turl\n\t$line\n\ttype $type\n\tbase name: $file_basename\n"
fi
fi
else
echo -e "\n$file_basename not a supported format: $type $(file $tmp_file_download)!\n\turl: $line\n\ttype: $type\n\tbase name: $file_basename\n\tfile: $(file $tmp_file_download)\n"
rm -f "$tmp_file_download"
fi
# increment the count regardless
count=$((count + 1))
done
done
# cleanup
rm -f "$tmp_links_file" >/dev/null 2>&1 # suppress errors or output
rm -f "$tmp_file_download" >/dev/null 2>&1 # suppress errors or output
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
links_file_tmp=$(mktemp)
nano "$links_file_tmp"
cat "$links_file_tmp" | \
while read line; do
wget -nc "$line" # nc = no clobber, fail if file exists no rename no overwrite
done
rm -f "$links_file_tmp"
+40
View File
@@ -0,0 +1,40 @@
#!/bin/bash
# todo:
# offline option
## dd raw .img
## enum partitions
### file zero fill empty space of good partitions
### dd zero fill unformatted space and such
### xz compress
# online option
## enum partitions
## attempt to mount all possible
## file zero fill them
## dd zero fill unformatted space
## take offline for xz inline rip
set -e # fail explicitly on any error
# todo: interactive, cli options
# disk=/dev/sda
user=princesspi
# outname="test_disk_image_post0_$(date +%Y-%m-%d-%H%M-%Z)"
outname="$outname.img.xz"
zerofile="/home/$user/0.0"
echo "zeroing out empty space"
sudo if=/dev/zero of="$zerofile" bs=4M status=progress || sudo rf -f "$zerofile"
# do the disk image dump using inline xz
# echo "runnin inline xz on $disk to file $outname"
# sudo dd if=$disk status=progress bs=4M | xz -c > "$outname"
# test xz integrity
# echo "testing disk image integrity"
# xz -t -v "$outname"
# make the sha256 file
# echo "generating sha256 checksum file"
# sha256sum "$outname" | tee "$outname.sha256"
echo "all donesies :3"
@@ -0,0 +1,193 @@
#!/bin/bash
# todo
## x make safe and gay mode optional
## dont re-fuck existing sha256 files ig
## or ig test and leave as is or append new val and date
## x joplin export as pdf
## x git (?)
## x args normalization
# x if args contain FAG (case insensitive) den gay and safe mode enabled
# x if args contain NUKE (case insensitive) den nuke all dem sha256 files
# x if args contain GIT (case insensitive) den ig do da fuckin asshole git b
# x if args contain VALIDATE (case insensitive) then verify sha256 cheksums from pre-calculated files
## nosleep start and stop
## x clean up/create error.log
## test for files missing paired sha256 files, log to error.log
## test for mismatches to sha256 files log to error.log
## x set error trap to ensure all stderr is tee -a'd to terminal and error.log
## fast scan for attributes vs slow scan with sha256
## both scans always running, alongside looping restic backups
## solve any race conditinos
## environment check
## sanity checks
## duplicate/conflict behavior
# date shit
start_date="$(date)" # date ig
# sum text colorz
RED='\033[0;31m' # anmgry red
YELLOW='\033[0;33m' # BOLD yellow :"3
GREEN='\033[1;32m' # bold green :3
RESET='\033[0m' # reset color
echo -e "${GREEN}Script Started at $start_date With $SECONDS Seconds Elapsed on Line number: $LINENO${RESET}"
# get all dem args into one single fuck (space seperated)
argz="$@"
# do you wanna be a safetyfag or be based?
shopt -s nocasematch # magic no case match bs
set -Eeuo pipefail # fail on any error including pipe fail and use error trap
# backup_dir="/mnt/d/Anbernic_Research_Tinkering_Save" # dir to protect
backup_dir="/mnt/c/Users/human/Downloads/tint"
error_log="${backup_dir}/error.log" # errror log path
path_error_log="$error_log" # duplicated cus lazy
exec 2> >(tee -a "$path_error_log" >&2) # output any stderror to both screen and error log
cd "$backup_dir" # enter dir to work in
if [ -f $path_error_log ]; then
echo -e "${GREEN}Found $path_error_log clearing at $(date) With $SECONDS Elapsed At Line Number $LINENO${RESET}"
echo > "$path_error_log" # initialize as empty
else
echo -e "${GREEN}No $path_error_log fiound, creating at $(date) With $SECONDS Elapsed At Line Number $LINENO${RESET}"
touch "$path_error_log" # create and initialize
fi
# on error, fail and dump as much information as possible to terminal, webhook, and error log
# trap error_handler ERR
error_handler () {
infostring="${RED}\n\n\nERROR IN SCRIPT:\n\n\t$SECONDS Seconds Elapsed\n\tDate $(date)\n\tOn Line: $LINENO\n\tUsing command $BASH_COMMAND\n\tReturn Code: $?\n\tError log: $path_error_log\n\tRecorded Args: ${@}${RESET}\n\n"
webhook "$infostring" true # dump data to terminal and webhook
echo -e >> "$path_error_log" # dump data to error log
}
echo -e "${GREEN}Made it past varr declaratgions and such at $(date) With $SECONDS Elapsed At Line Number $LINENO${RESET}"
environment_checks () {
# tests if backup dir is a directory and available
if [ ! -d "$backup_dir" ]; then
echo -e "\n\n\n${RED}Supplied backup dir: $backup_dir not present, not available, out of permissions, or is not a directory"
exit 1
else
echo -e "${GREEN}OK! Backup Dir GOOD${RESET}"
fi
# tests current location
if [[ "$PWD" != "$backup_dir" ]]; then
echo -e "\n\n\n${RED}pwd: $PWD does not match specified dir: $backup Dir, FAIL. Exiting.${RESET}\n\n\n" # notify
exit 1 # exit with error
else
echo -e "${GREEN}OK! Backup Dir IS Current Location!${RESET}"
fi
# test for error log
if [ ! -f "$path_error_log" ]; then
echo -e "\n\n\n${RED}error log at path: $path_error_log not present, not available, out of permissions, or is not a directory${RESET}\n\n\n" # notify
exit 1
else
echo -e "${GREEN}OK! Error Log GOOD${RESET}"
fi
echo -e "${GREEN}Environment Checks GOOD!${RESET}"
}
# if [[ "$argz" =~ "FAG" ]]; then
# echo -e "\n\n\n${RED}OK FAGGOT YOU RAN ARG1 WITH FAG SO NOW YOU GET FUCKFAG SAFE MNODE LIKE THE QUEER U R${RESET}\nOH YE ALL YA GAY LIL ERRORS NOW LOGGIN TO $path_error_log\n\n\n"
# # make da error log for further humiliation\
# # if error log present, delete it and replace with blank file
# if [ -f "$path_error_log" ]; then
# rm -f "$path_error_log" # delete
# touch "$path_error_log" # make empty file
# fi
# # notify the user of what a genuine bitch they are
# fi
# makin a trappy to make sure as fuuuck dat no fucky wucky gets dafuq by meeee
# trap '\033[0;31m webhook "SHIT SHIT SHIT SHIT DA EXIT TRAP FUCKIN SPRUNG FFUUUCK\n\tLine number: $LINENO\n\tFailing on command $BASH_COMMAND\y\tResponse code: $?\n\tStderr shown on screen and logged to $path_error_log ${RESET}\nArgs returned: $@\n\t\n\n\033[0m' EXIT
function generate_sha256_checksums () {
webhook "${GREEN}startin calculatin all dem gay af sha256 files\n\t$SECONDS seconds elapsed\n\tDate: $(date)${RESET}"
# use black magic to generatre da sha256 files
find "$backup_dir" -type f -name "*.sha256" -prune -o -name ".git" -exec bash -c "for f in \"\$@\"; do; sha256sum \$f | tee -a \$f.sha256; done; _ {} +" \; # aeswrfgv
### bash -c "for f in \"\$@\"; do if [ -f \"\${f}.sha256\" ]; then continue; fi; sha256sum -c \"\${f}.sha256\" | tee -a \"${path_error_log}\"; done" _ {} + # sum horrifying shitfuck idk
webhook "${GREEN}finished calculatin all dem gay af sha256 files\n\t$SECONDS seconds elapsed${RESET}"
}
# ig git is unsuited for version controllin fuckhuge fiels ig
## so ig i comment it out
## sum git shit to maintain archive or sum shit
## if arg1 containz GIT then do da gitshit
do_git () {
# notify the user of this bullshit
echo -e "${GREEN}FAggot im doin da fuckin git bullshit even tho is fuckslow${RESET}"
webhook "doin sum git"
# do da git conditionally if need be init
if [ ! -d "${backup_dir}/.git" ]; then # if .git dir not be there, initialize it fag
git -C "$backup_dir" init 2>>"$path_error_log" # init git if da shit aint there
# git -C "$backup_dir" branch -m master # set branch to main (?)
git -C "$backup_dir" add "$backup_dir" 2>>"$path_error_log"
git -C "$backup_dir" commit -m "initial auto archive date: $(date +%s)" 2>>"$path_error_log"
else
git -C "$backup_dir" add "$backup_dir" 2>>"$path_error_log"
git -C "$backup_dir" commit -m "auto archive $(date +%s)" 2>>"$path_error_log" # commit wit date
# notify finished with fuckgit
fi
webhook "done doin sum git"
}
# do da fookin sha256sums first ig
# # if arg1 contains NUKE (case insensititve den nuke dem fuckin sha256 fiels)
# if [[ "$argz" =~ "NUKE" ]]; then
# webhook "startin sha256 clearin\n\t$SECONDS seconds elapsed"
# # notify user that they are a fag
# echo -e "${RED}FAGGOT MODE ENABLED SO IM NUKIN ALL DEM SHA256 FIELS FUCK U${RESET}"
# # nuke da sha256 files finafuckingky
# find "$backup_dir" -prune -o -name ".git" -type f -name "*.sha256" -delete # nuke dem fookan fuckfiels
# # finished nukan math
# webhook "${GREEN}finished clearin sha256 fiels\n\t$SECONDS seconds elapsed${RESET}"
#
# webhook "Now creating new sha256 sums files"
# generate_sha256_checksums
# fi
# check already generated sha256 checksums
# if [[ "$argz" =~ "VALIDATE" ]]; then
check_generate_checksums () {
webhook "Generating new sha256sums files for those that lack one"
generate_sha256_checksums
webhook "\n\nchecking pre-calculated sha256 sums"
# find every sha256 file do the checksum
find "$backup_dir" -prune -o -name ".git" -type f -iname "*.sha256" -exec bash -c "echo -e \"${GREEN}\nstarting check sha256sums of files\n\tcurrent file: {}\n\t total elpapsed: $SECONDS seconds\n\"; sha256sum -c {} | tee -a \"${path_error_log}\"; echo -e \"ARGS: $@\n\n${RESET}\"" \;
}
restic_backups () {
webhook "runnin Anbernic backup restic powershell\n\t$SECONDS seconds elapsed"
# may god have mercy on my soul for mixing powershell and bash
pwsh.exe -File "D:\Anbernic-Hackin-Archive_restic_backup.ps1" # do da restic backup ps1
# finished restic backloops
webhook "finished runnin restic Anbernic shit\n\t$SECONDS seconds elapsed"
}
box_force_shutdown () {
# shutdown by force of powershell huehhuehue
webhook "TIME TO SHUT THE FUCK DOWN WOOOO\n\t$SECONDS Seconds Elapsed\n\tStart Date: $start_date\n\tEnd Date: $(date)" true # true so it pingas mneeee
# hateful cursed powershell call to shut off box ffs
# pwsh.exe -C "Stop-Computer -Force" # i reeally dgaf this is so terribly fuckin cursed
}
environment_checks
# do_git
check_generate_checksums
restic_backups
# box_force_shutdown
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
# tmp links file
tmpfile="/tmp/links.tmp"
# get links
nano "$tmpfile"
# download to .
cat "$tmpfile" | while read line; do
wget "$line"
done
# cleanup
rm -f "$tmpfile" 1>/dev/null 2>&1 # suppress errors or output
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
tmp_file="./exts.tmp"
exts_study_file="./extension_study.txt"
echo "" > "$tmp_file"
find ./files -type f -exec bash -c "echo \"{}\" | awk -F. '{print \$NF}' | tee -a \"$tmp_file\"" \;
cat "$tmp_file" | sort | uniq > "$exts_study_file"
rm -f "$tmp_file"
echo "DONE! Saved to $exts_study_file"
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
if [ -z "$1" -o -z "$2" ]; then
echo -e "usage:\n\tfind_bytes <unicode regex> <path> \n\t\tex. find_bytes '[\x{20}]' /path/to/dir\n\tdocs: https://ugrep.com"
exit
else
# ugrep
# ugrep docs https://ugrep.com
# -W hexdump binary matches, while keeping text matches as text
# -z decompress files if need be to scan them
# -R recursive
# ug -W -z -R <unicode regex> <path>
# bytes in sequence '\x{0d}\x{0a}'
# mix of bytes sans sequence '[\x{0d}\x{0a}]'
# normal regex applies '[\x{0d}\x{0a}]{4,6}'
ug -W -z -R $1 $2
fi
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "Showing Wifi Interfaces:"
iwconfig
echo "Please Enter Wifi Interface:"
read wifi_device
echo "Selected ${wifi_device}"
else
wifi_device="$1"
fi
# wifi_device=$1
echo 'Starting NetworkManager.service'
sudo systemctl restart NetworkManager
echo 'Restarting wpa_supplicant'
sudo systemctl restart wpa_supplicant
echo 'Disconnecting from wifi'
sudo nmcli d disconnect $wifi_device
echo 'Deleting all wifi saved networks'
nmcli connection show | sudo awk '{system("nmcli connection delete " $1)}'
echo 'Bringing down interface'
sudo ifconfig $wifi_device down
echo 'Bringing back up interface'
sudo ifconfig $wifi_device up
echo 'Reloading network manager'
sudo nmcli g reload
echo 'Turning off network manager'
sudo nmcli n off
echo 'Turning on network manager'
sudo nmcli n on
echo 'Changing interface mode to managed'
sudo iwconfig $wifi_device mode managed
echo 'Restarting networking stack'
sudo systemctl restart networking
iwconfig
echo -e "\nDone~ ^w^\n"
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
[ "root" != "$USER" ] && exec sudo $0 "$@"
webdir=/var/www
www_group=www-data
userfriend=princesspi
find "$webdir" -type d -exec chmod 775 {} \;
find "$webdir" -type f -exec chmod 664 {} \;
find "$webdir" -type f -iname "*.sh" -exec chmod 775 {} \;
chown -R $userfriend:$www_group "$webdir"
+28
View File
@@ -0,0 +1,28 @@
#!/bin/bash
set -e # bitchass cant be trusted without handholding
exec 2>/dev/null # fookin thing gonna be error city bec i cbf so null dem
echo "Fixan ya fuckin .ssh perms you useless fagat"
# if ~/.ssh dont exist, maek it
if [ ! -d ~/.ssh ]; then
echo "bitch u dont even have a fuckin ~/.ssh lemme make dat for you fraggot"
mkdir -p ~/.ssh # -p for error control/happydoll
fi
# ~/.ssh dir perms
echo "fixin perms on ~/.ssh because you're too dipshitted to do it yourself"
chmod 700 ~/.ssh
# privkey perms
echo "now im fixin perms on ya asshole private keys you are an embarassmebt to security"
chmod 600 ~/.ssh/id_rsa ~/.ssh/id_ed25519 ~/.ssh/config ~/.ssh/id_edchdsa
# public and less sensititve fiels perms
echo "now im fixin da perms on less sensitive files ig FUCK YOU"
chmod 644 ~/.ssh/authorized_keys ~/.ssh/known_hosts ~/.ssh/*.pub
echo "OK FAGGOT IM FINISHED"
echo "NEVER SPEAK OF THIS SHAME, FAGGOT"
exit 0 # always a friendly exit
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
# usage:
## friendlyfriend [int seconds delay]
## friendlyfriend 30
if [ -z "$1" ]; then
sleep_seconds=5
else
sleep_seconds=$1
fi
while (true); do
clear
ponysay $(polygen /usr/share/polygen/eng/pornsite.grm | awk '{print $3}')
sleep $sleep_seconds
done
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
# packages required: git trufflehog gitsecrets
github='https://github.com/InfoSecREDD/'
out_dir="$PWD/redd_repos"
mkdir -p "$out_dir"
repos=("DWipe" "wifipineapplepager-payloads" "ThreatVis" "RadioRef-Export" "REDDs-PCAP-Uploader" "Uptime-Monitor" "Uni-Adblock" "PolyZip" "CVE-Discord-Notify" "shlt-plugins" "DarkGPT-Lite" "RPT-Installer" "YOURLS-Security-Audit-Plugin" "YOURLS-IP-Info" "InfoSecREDD.github.io" "sharkjack-payloads" "ExPW" "DeLookup" "CheckSim" "sb" "REPG-Community-Payloads" "BTSM-Payloads" "Flip-pi" "InvisInk-Encoder" "REPG" "NET-UP" "Adafruit_WebSerial_ESPTool" "BadPS" "omg-payloads" "k" "Flipper" "REDD-Demo" "SecF0EncKey" "SIN-Main" "sj-webui-patch" "MHS35-lcd-64bit-rpi" "verifymd5" "proxmark3" "DHunter" "termux-pm3-helper" "Proxmark3-Amiibo-Emulate" "Termux-Helper-Script" "NFC-Cloner" "Handshake-Transfer" "shark-files" "rtl8812au" "SharkLib" "rtl8812AU_8821AU_linux" "NET-UP-modules" "boot-dev" "RPi-Tweaks" "auto-ssh" "HoppEye" "bashbunny-payloads" "CPUMINER" "bash-no-ip-updater")
# if [ -d "$out_dir" ]; then
# printf "deleting existing $out_dir..."
# rm -rf "$out_dir" > /dev/null 2>&1
# printf "$?\n"
#
# printf "remaking $out_dir..."
# mkdir -p "$out_dir"
# printf "$?\n"
# fi
#
# for repo in "${repos[@]}"; do
# printf "cloning $repo into $out_dir/$repo..."
# git clone --recursive "$github/$repo" "$out_dir/$repo" > /dev/null 2>&1
# printf "$?\n"
# done
for repo in "${repos[@]}"; do
cd "$out_dir/$repo"
trufflehog git file://. --relative
gitleaks detect -v
cd -
done
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
set -e # die on any error
# get current directory name without the path
reponame=${PWD##*/}
# init to main branch (github default)
git init -b main
git add .
git commit -m "initial commit via gitinitshit"
# use github cli to create repo with the dir name
gh repo create "$thisdirname" --public --source=. --remote=upstream --push
# print git link and url
git remote -v | sed -n -e 1p | awk '{print "\ngit link:", $2; gsub(".git", "", $2); print "repo url:", $2, "\n"}'
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
set -e # fail on error
if [ -f './version.txt' ]; then
message=$(cat './version.txt')
else
if [ -z "$1" ]; then
message="$(annoy_the_fuck_out_of_commit_message_nerds)"
else
message="$*"
fi
fi
git add .
git commit -m "$message"
git push
+72
View File
@@ -0,0 +1,72 @@
#!/bin/bash
# sync a local git repo with a remote one over ssh
# usage: gitsync <remote_host> <remote_dir>
# defaults pi3 and /var/www/html/Media-Viewer
# handle defaultz
handle_args () {
if [ -z $1 ]; then
remote_host="pi3"
else
remote_host="$1"
fi
if [ -z $2 ]; then
remote_dir="/var/www/html/Media-Viewer"
else
remote_dir="$2"
fi
}
syncstatus () {
# view local and remote status before proceeding
echo -e "\nLOCAL status\n"
git status
echo -e "\nREMOTE status\n"
ssh $remote_host "/bin/bash -c \"git -C $remote_dir status\""
}
# synchronize git repos on local and remote
gitsync () {
echo "INFO | Starting gitsync"
# run on remote
ssh $remote_host "git -C \"$remote_dir\" pull"
echo "REMOTE | Finished git pull on $remote_host:$remote_dir" $?
ssh $remote_host "git -C \"$remote_dir\" add ."
echo "REMOTE | Finished git adding on $remote_host:$remote_dir" $?
ssh $remote_host "git -C \"$remote_dir\" commit -m \"autosync at $(date +%s)\""
echo "REMOTE | Finished git commit on $remote_host:$remote_dir" $?
ssh $remote_host "git -C \"$remote_dir\" push"
echo "REMOTE | Finished git push on $remote_host:$remote_dir" $?
ssh $remote_host "git -C \"$remote_dir\" status"
echo "REMOTE | Finished git status on $remote_host:$remote_dir" $?
# run on local
git pull
echo "LOCAL | Finished git pulling" $?
git add .
echo "LOCAL | Finished git adding" $?
git commit -m "autosync at $(date +%s)"
echo "LOCAL | Finished git comitting" $?
git push
echo "LOCAL | Finished git pushing" $?
git status
echo "LOCAL | Finished git status" $?
echo "INFO | Finished gitsync"
}
handle_args
syncstatus
gitsync
syncstatus
+22
View File
@@ -0,0 +1,22 @@
#!/bin/bash
max=65535 # FFFF
txtfile="/mnt/e/2025-12-17_hibp_sha1.txt"
outdir="/mnt/e/hibp_parsed"
if [ ! -d "$outdir" ]; then
echo "creating $outdir"
mkdir "$outdir"
else
echo "clearing $outdir"
rm -f "$outdir/*"
fi
# remove the carriage returns from file
# sed -i "s/\x0d//g" "$txtfile"
for ((i = 0; i <= $max; i++)); do
HEX_VAL=$(printf "%04X" $i) # %04X to give padding 0s up to four
echo "$HEX_VAL"
rg -N "^$HEX_VAL" "$txtfile" >> "$outdir/$HEX_VAL.txt"
echo $?
done
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
# from https://askubuntu.com/questions/3299/how-to-run-cron-job-when-network-is-up
# usage in root cron
## @reboot bash /usr/share/customscripts/ifnet "/usr/share/customscripts/webhook bootup"
# Configurable values
## How many times we should check if we're online - this prevents infinite looping
MAX_CHECKS=10
## Seconds to sleep per loop
SLEEP_SECONDS=10
## error log
ERROR_LOG="/var/log/cron.error.log"
## any high availability host
HA_HOST="www.cloudflare.com"
# do da checcc
check_online () {
# check if HA_HOST is reachable, echo 1 if online 0 if offline
netcat -z -w 5 $HA_HOST 80 2>/dev/null && echo 1 || echo 0
}
# initial values
## Initial starting value for checks
CHECKS=1
## Initial check to see if we are online
IS_ONLINE=$(check_online)
# Loop while we're not online.
while [[ $IS_ONLINE -eq 0 ]]; do
echo "$HA_HOST unreachable, loop $CHECKS/$MAX_CHECKS every $SLEEP_SECONDS seconds to run command \"$1\"" # only shows on manual run
sleep $SLEEP_SECONDS # eepies
IS_ONLINE=$(check_online) # recheck and update IS_ONLINE
CHECKS=$(($CHECKS + 1))
if [ $CHECKS -gt $MAX_CHECKS ]; then # if checks is over max, break loop
break
fi
done
# only reach this point after being checked in loop, check for 0 again for failure mode
if [[ $IS_ONLINE -eq 0 ]]; then
# We never were able to get online. Kill script.
sudo bash -c "echo \"$(date) | Failed to connect to $HA_HOST after $MAX_CHECKS attempts of $SLEEP_SECONDS seconds\" | tee -a $ERROR_LOG"
exit
fi
sudo bash $1 2>> $ERROR_LOG # execute the bash script and log errors to the error log
+132
View File
@@ -0,0 +1,132 @@
#!/bin/bash
# todo:
## x environment checks for webhook, xz-tools, and pishrink
### install if not found
## sanity checks in cleanup error trap to make sure nothing is wrongly deleted
## x ERR/TERMINATE traps
### x NO cleanup trap on EXIT
## x finish the pi query
## x add filename query
set -euo pipefail # fail on fuckups to iterate fasterrr :pope: strict fuk u mode :3
timestamp="$(date +%Y-%m-%d-%H%M-%Z)"
# disk=""
# log="${timestamp}_img_dump_testin.log"
# img_name="${timestamp}_Kali-Pi5-1TB-Working.img"
check_command() {
if ! command -v "$1" >/dev/null 2>&1; then
# output as error to stderr, and append to log only if defined
echo "Required command '$1' not found. Install it and retry." >&2
if [ -n "${log:-}" ]; then
echo "Required command '$1' not found. Install it and retry." >>"$log"
fi
exit 1
fi
}
# check da needed cmds~
for cmd in webhook xz pishrink sha256sum sudo lsblk dd; do
check_command "$cmd"
done
# trap function cleanup
cleanup () {
webhook "$0 errored! Cleaning up! seconds: $SECONDS line: $LINENO command: $BASH_COMMAND" true
# supress errors if they not there
# to save me from testing each one or writing a fun :poe:
for file in "$img_name" "$img_name.sha256" "$img_name.xz" "$img_name.xz.sha256" "$log"; do
if [ -f "$file" ]; then
echo "Deleting $file"
sudo rm -f "$file" 2>/dev/null
fi
done
}
# cleanup any errant files on error/termination
## disable dis shit fo now
# trap cleanup ERR
# trap cleanup SIGINT
# trap cleanup SIGTERM
echo -e "\n\n\nSTARTING DUMP OPS\n\n\n"
# get disk
lsblk
read -p "Enter Disk Name (ex. sda, sdb no /dev or anything else) " disk_choice
if [ -z "${disk_choice:-}" ]; then
echo "ERROR: No disk entered." >&2
exit 1
fi
disk="/dev/$disk_choice"
if [ ! -e "$disk" ]; then
echo "ERROR: $disk is not a device." >&2
exit 1
fi
read -p "For Raspberry Pi? y\n default y" picheck
# set default to 'y' when empty
picheck=${picheck:-y}
# for when ask for tag
read -p "Input File Tag" filetag
# sanity check it
if [ -z "$filetag" ]; then
echo "ERROR! File Tag is Empty!" >&2
exit 1
fi
log="${timestamp}_${filetag}.log"
echo > "$log" # initialize to empty
img_name="${timestamp}_${filetag}.img"
clear
# logging optinos to log file
webhook "Selections! filetag: $filetag disk: $disk picheck: $picheck log: $log img_name: $img_name (Script Has Run $SECONDS Seconds Date $(date))" | tee -a "$log"
webhook "runnan raw dd img on $disk at to $img_name using 4M bs size (Script Has Run $SECONDS Seconds Date $(date))"
sudo dd if="$disk" of="$img_name" status=progress bs=4M 2>&1 | tee -a "$log"
webhook "Changing perms abd ownership on $img_name (Script has run $SECONDS seconds date $(date))"
sudo chown princesspi:princesspi "$img_name"
sudo chmod 660 "$img_name"
# fuckin nope rn
# webhook "generating sha256 checksum of $img_name (from $disk) to $img_name.sha256 (Script Has Run $SECONDS Seconds Date $(date))"
# sha256sum "$img_name" | tee -a "$img_name.sha256"
if [[ "$picheck" =~ [nN] ]]; then
webhook "Doing non-pi xz compression on $img_name into $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))"
xz -v -k "$img_name" | tee -a "$log" # keeping for now so fiddle wit later
else
# pishrink
## -v verbose
## -r use advanced filesystem repair option if the normal one fails
## -Z xz compression
## -a compress using multiple cores
## -n disable update check
## disavble upgrade check
webhook "Doing pi compress using pishrink from $img_name ($disk) to $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))"
sudo pishrink -v -r -Z -a -n "$img_name" | tee -a "$log"
fi
# fuck yourself
# webhook "testing xz integrity: $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))"
# xz -t -v "$img_name.xz" | tee -a "$log"
# webhook "xz integrity response code: $?"
msg="Generating sha256 checksums of $img_name.xz to $img_name.xz.sha256"
webhook "$msg"
echo "$msg" >>"$log"
webhook "testing xz integrity: $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))"
sha256sum "$img_name.xz" > "$img_name.xz.sha256"
# do not fuckin deletee this shit till it works right
# if [ -f "$img_name" ]; then
# webhook "testing xz integrity: $img_name.xz (Script Has Run $SECONDS Seconds Date $(date))"
# webhook "$img_name still there! Deleting by force!"
# sudo rm -f "$img_name"
# fi
webhook "\n\n\nFUCKING FINAALLY ITS OVER\n\n\n\t$SECONDS Seconds Elapsed\n\tDateTime Started: $timestamp DateTime Finished: $(date +%Y-%m-%d-%H%M-%Z)"
+144
View File
@@ -0,0 +1,144 @@
#!/bin/bash
# usage: by its self or with nuke
# bash improved_file_management.sh
# bash improved_file_management.sh nuke
## "nuke" is not case sensitive
start_date="$(date)"
args="$@"
backup_dir="/mnt/d/Anbernic_Research_Tinkering_Save"
#backup_dir="/mnt/c/Users/human/Downloads/tint"
#vbackup_dir="/mnt/c/Users/human/Downloads/tint"
error_log="${backup_dir}/error.log" # errror log path
cd "$backup_dir" # slide on in
# make errros get logged and also displayed to the terminal
exec 2> >(tee -a "$error_log" >&2)
# sum text colorz
RED='\033[0;31m' # anmgry red
YELLOW='\033[0;33m' # BOLD yellow :"3
GREEN='\033[1;32m' # bold green :3
RESET='\033[0m' # reset color
check_error_log () {
if [ -f "$error_log" ]; then
echo -e "${GREEN}Found $error_log clearing at $(date) With $SECONDS Elapsed At Line Number $LINENO${RESET}"
echo > "$error_log" # initialize as empty
else
echo -e "${GREEN}No $error_log fiound, creating at $(date) With $SECONDS Elapsed At Line Number $LINENO${RESET}"
touch "$error_log" # create and initialize
fi
}
environment_checks () {
# tests if backup dir is a directory and available
if [ ! -d "$backup_dir" ]; then
echo -e "\n\n\n${RED}Supplied backup dir: $backup_dir not present, not available, out of permissions, or is not a directory"
exit 1
else
echo -e "${GREEN}OK! Backup Dir GOOD${RESET}"
fi
# tests current location
if [[ "$PWD" != "$backup_dir" ]]; then
echo -e "\n\n\n${RED}pwd: $PWD does not match specified dir: $backup Dir, FAIL. Exiting.${RESET}\n\n\n" # notify
exit 1 # exit with error
else
echo -e "${GREEN}OK! Backup Dir IS Current Location!${RESET}"
fi
echo -e "\n${GREEN}Environment Checks GOOD!${RESET}\n"
}
greet () {
echo -e "\n\n\n${GREEN}WELCOME TO DURABLE, PROVABLE FILE HANDLING${RESET}\n\n\n"
}
when_done () {
echo -e "\n\n\n${GREEN}DONE :3 nyaa~!${RESET}\n\n\n"
}
delete_sha256_files () {
echo -e "${GREEN}Nuking all .sha256 files in $backup_dir${RESET}\n"
find . -type f -name "*.sha256" -not -path "*.git*" -delete
}
verify_sha256_files() {
echo -e "${GREEN}verifying file's checksums${RESET}"
local file
local failed=0
find "${1:-.}" -type f -name '*.sha256' -not -path "*.git*" -print0 |
while IFS= read -r -d '' file; do
echo "Checking: $file"
if ! sha256sum -c "$file"; then
# here is where i can handle bad checksums
echo -e "FAILED: $file" >&2
failed=1
fi
done
return "$failed"
}
generate_sha256_checksums () {
# make any new checksums
find . -type f -not -path "*.git*" -exec sh -c '
for file; do
if [[ "$file" =~ .sha256 ]]; then
echo "Skipping $file"
continue
else
echo -e "${GREEN}making checksum of $file${RESET}"
sha256sum "$file" | tee "$file.sha256"
fi
done
' sh {} + \; # idk what this hippie bullshit voodoo witchcraft this syntax is, kill nme now
}
do_git () {
if [ ! -d ".git" ]; then
echo -e "${GREEN}Not a Git Directory, initiating a git repo${RESET}"
git init
git add .
git commit -m "First Autoinit at $(date)"
else
echo -e "${GREEN}archiving everything to git${RESET}"
git add .
git commit -m "Autoarchive at $(date)"
fi
}
# to trigger an archival via restic
run_backup () {
echo -e "\n\n${GREEN}Starting Restic Backup${RESET}\n\n"
# unholy call restic script from powershell
pwsh.exe -File "D:\Anbernic-Hackin-Archive_restic_backup.ps1" # do da restic backup ps1
}
# shutdown by force of powershell huehhuehue
box_force_shutdown () {
webhook "TIME TO SHUT THE FUCK DOWN WOOOO\n\t$SECONDS Seconds Elapsed\n\tStart Date: $start_date\n\tEnd Date: $(date)" true # true so it pingas mneeee
# hateful cursed powershell call to shut off box ffs
pwsh.exe -C "Stop-Computer -Force" # i reeally dgaf this is so terribly fuckin cursed
}
greet # welcome msg
environment_checks # test environment for working
if [[ "$args" =~ nuke ]]; then
delete_sha256_files # delete all *.sha256 files
fi
check_error_log # verify error log faggot
while true; do # do an infinite loop to keep em all running and operating at all times :3
verify_sha256_files # check files against their sha256 checksum
generate_sha256_checksums # create the checksums from the files to generate each file its own *.sha256 buddy \o/
do_git # archive for version controll
run_backup # do multiple redndant backups using restic
done
when_done # goodbye msg
+256
View File
@@ -0,0 +1,256 @@
#!/bin/bash
# install without upfate and package install
## script=/tmp/install_script.sh && curl -s https://raw.githubusercontent.com/PrincessPi3/general-scripts-and-system-ssssssetup/refs/heads/main/customscripts/install_script.sh > $script && chmod +x $script && $SHELL -c "$script" && $SHELL /usr/share/customscripts/configure_webhook.sh full && exec $SHELL
# install with package install
## script=/tmp/install_script.sh && curl -s https://raw.githubusercontent.com/PrincessPi3/general-scripts-and-system-ssssssetup/refs/heads/main/customscripts/install_script.sh > $script && chmod +x $script && $SHELL -c "$script full" && $SHELL /usr/share/customscripts/configure_webhook.sh full && exec $SHELL
# set -e # make sure da silly thing dont continue when there be errorZ
# configs
gitRepo='https://git.thecoven.info/PrincessPi/general-scripts-and-system-ssssssetup.git'
tmpDir='/tmp/generalssss'
tmp_customscripts_dir="$tmpDir/customscripts"
finalDir='/usr/share/customscripts'
packages="7zip apache2 argon2 avahi-daemon btop build-essential byobu cargo cifs-utils clamav cmake cowsay cracklib-runtime detox docker.io exiftool fdupes ffuf gcc-arm-none-eabi grc gzip iotop iptraf-ng jq kpartx libnss-mdns libnewlib-arm-none-eabi librust-git2+openssl-probe-dev libstdc++-arm-none-eabi-newlib locales lynx net-tools nginx openssl php polygen polygen-data procps python3 python3-scapy resolvconf restic ripgrep samba screen seclists snapd thefuck unzip wget xrdp xxd xz-utils zip kali-linux-default"
# packages="grc kpartx openssl cracklib-runtime argon2 jq polygen polygen-data apache2 seclists cmake locales python3 build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib librust-git2+openssl-probe-dev cargo nginx build-essential cowsay iotop iptraf-ng btop screen byobu thefuck wget lynx zip unzip 7zip xz-utils gzip net-tools clamav php restic cifs-utils detox fdupes ripgrep avahi-daemon libnss-mdns xxd xrdp libimage-exiftool-perl kali-tools-hardware kali-tools-crypto-stego kali-tools-fuzzing kali-tools-bluetooth kali-tools-rfid kali-tools-sdr kali-tools-voip kali-tools-802-11 kali-tools-forensics samba procps snapd"
echo -e "\nSTARTING!\n\tUsing Shell $SHELL\n"
# ta get da right usermayhaps
if [[ -z $SUDO_USER ]]; then
echo -e "\nUsing User $USER\n"
username="$USER"
else
echo -n "\nUsing User $SUDO_USER\n"
username="$SUDO_USER"
fi
# home dir
userhome=/home/$username
# figure oot da sehell
# if [[ "$SHELL" =~ bash$ ]]; then
rcfile="$userhome/.bashrc"
# elif [[ "$SHELL" =~ zsh$ ]]; then
# rcfile="$userhome/.zshrc"
# else
# echo -e "Die: Unsupported Shell";
# exit 1
# fi
echo -e "\nusing rcfile $rcfile\n"
if [ ! -z "$1" ]; then
echo -e "\nFULL MODE SELECTED FULL UPGRADE AND INSTALL PACKAGES!\n"
# update and upgrade
echo -e "\nUpdating software lists\n"
sudo apt update
echo -e "\nDoin full-upgrade\n"
sudo apt full-upgrade -y
echo "installan packages"
echo -e "\nInstallan my packages\n"
sudo bash -c "apt install $packages -y"
# source $rcfile
# dotnet conditional install
# if [ ! $(which dotnet) ]; then
# echo -e "\ndotnet not found, installing\n"
# wget https://dot.net/v1/dotnet-install.sh -O /tmp/dotnet-install.sh
# chmod +x /tmp/dotnet-install.sh
# /tmp/dotnet-install.sh --channel STS # latest stable, optinoally LTS
# echo -e "## dotnet\nPATH=\$PATH:$userhome/.dotnet:$userhome/.dotnet/tools" >> $rcfile
# source $rcfile
# else
# echo -e "\ndotnet installed, skipping install of repo\n"
# source $rcfile
# fi
### dotnet
### haveibeenpwned-downloader
# if ! which haveibeenpwned-downloader; then
# echo -e "\nhaveibeenpwned-downloader not found, installing with dotnet\n"
# dotnet tool install --create-manifest-if-needed haveibeenpwned-downloader
# else
# echo -e "\nhaveibeenpwned-downloader installed, skipping install\n"
# fi
# homebrew
# if [ ! $(which brew) ]; then
# ## install homebrew
# echo -e "\nlinuxbrew not found, installing\n"
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# ### add to rcfile
# if ! grep -q 'linuxbrew' $rcfile; then
# # echo "adding linuxbrew to $rcfile"
# # echo "# linuxbrew (homebrew/brew)" >> $rcfile
# # echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> $rcfile
# else
# echo "linuxbrew already in $rcfile skipping"
# fi
#
# # source $rcfile
# else
# echo -e "\nlinuxbrew installed, skipping install\n"
# # source $rcfile
# fi
# ### install ponysay
# if [ ! $(which ponysay) ]; then
# echo -e "\nponysay not fonud, installiing\n"
# brew install ponysay
# if ! grep 'ponysay fix' $rcfile; then
# # echo "adding ponysay fix to $rcfile"
# # echo -e "# ponysay fix\nexport PYTHONWARNINGS=ignore::SyntaxWarning" >> $rcfile
# # source $rcfile
# else
# # echo "ponysay fix already in $rcfile skipping"
# # source $rcfile
# fi
# else
# echo -e "\nponysay already installed, skipping\n"
# fi
# cargo
## oniux
echo -e "\nINSTALLIN TOR ONIUX\n"
if [ -f /usr/local/bin/oniux ]; then
echo -e "\nexisting oniux found, skipping\n"
else
echo -e "\nexisting oniux not found, installing\n"
cargo install --git https://gitlab.torproject.org/tpo/core/oniux --tag v0.6.1 oniux
fi
else
echo -e "\nskipping package install\n"
fi
# get the existing tag and webhooks if any
if [ -f $finalDir/tag.txt ]; then
echo -e "\nFound existing tag.txt, backing up\n"
cp $finalDir/tag.txt /tmp/tag.txt
else
echo -e "\nno existing tag.txt, skipping backup of it\n"
fi
# backup webhook if present
if [ -f $finalDir/webhook.txt ]; then
echo -e "\nFound existing webhook.txt, backing up\n"
cp $finalDir/webhook.txt /tmp/webhook.txt
else
echo -e "\nno existing webhook.txt, skipping backup of it\n"
fi
# clean up any exisiting repo dir
if [[ -d "$tmpDir" ]]; then
echo "\nCleaning Up Existing $tmpDir\n"
rm -rf "$tmpDir"
else
echo -e "\n$tmpDir not found, skipping deleting it\n"
fi
# clean up any existing install
if [[ -d "$finalDir" ]]; then
echo -e "\nCleaning Up Existing $finalDir\n"
sudo rm -rf "$finalDir"
else
echo -e "\n$finalDir not found, will create\n"
fi
# ddownload repo
echo -e "\nCloning Repo $gitRepo\n"
git clone $gitRepo $tmpDir --single-branch --depth 1
# donut
echo -e "\nCompiling donut\n"
gcc -o "$tmp_customscripts_dir/donut" "$tmp_customscripts_dir/donut.c" -lm # 2>/dev/null
# put the customscripts dir into place
echo -e "\nPlacing in $finalDir\n"
sudo mv "$tmp_customscripts_dir" "$finalDir"
# fix ownership
echo -e "\nChanging ownership of $finalDir and $userhome/Rice to $username:$username recursively\n"
sudo chown -R $username:$username "$finalDir"
sudo chown -R $username:$username $userhome/Rice
# fix perms
echo -e "\nSetting perms of $finalDir and contents to 775\n"
sudo chmod -R 775 "$finalDir"
# check if $finalDir is in $rcfile
grep -q $finalDir $rcfile
pathgrep=$?
if [ $pathgrep -eq 0 ]; then
echo -e "\n$finalDir Already in \$PATH Skipping Append\n"
fi
# else
# echo -e "\nAdding $finalDir to $username's \$PATH by Appending to $rcfile\n"
# echo -e "\n\n# automatically added by customscripts installer\nexport PATH=\"\$PATH:$finalDir\"" >> "$rcfile"
# fi
# install pishrink if not there
if [ ! -f /usr/local/bin/pishrink ]; then
echo -e "\npishrink not found, installing\n"
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
mv pishrink.sh pishrink
chmod +x pishrink
sudo mv pishrink /usr/local/bin
else
echo -e "\nPishrink already installed, skipping\n"
fi
# install ble.sh if not there
if [ ! -d $userhome/.local/share/blesh ]; then
# install ble.sh
echo -e "\nble.sh not found, installing\n"
cd /tmp
git clone --recursive --depth 1 --shallow-submodules --single-branch -b master https://github.com/akinomyoga/ble.sh.git
make -C ble.sh install PREFIX=~/.local
# echo '# ble.sh' >> $rcfile
# echo "source -- ~/.local/share/blesh/ble.sh" >> $rcfile
# source $rcfile
# exec "$SHELL"
fi
# else
# echo -e "\nble.sh already installed, skippping\n"
# source $rcfile
# fi
$SHELL -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)"' >> "$rcfile"
# appeend thefuck to rcfile if not present
grep -q thefuck $rcfile
thefuck_present=$?
if [ $thefuck_present -ne 0 ]; then
echo -e "\nthefuck alias not fonud in $rcfile, adding\n"
# echo -e "# thefuck\neval \$(thefuck --alias fuck)" >> $rcfile
# source $rcfile
else
echo -e "\nthefuck is already in $rcfile, skipping\n"
fi
# copy rice if not present
if [ ! -d $userhome/Rice ]; then
echo -e "\n$userhome/Rice not found, adding\n"
mv $tmpDir/Rice $userhome
else
echo -e "\nRice found not copying again\n"
fi
# cleanup
echo -e "\ncleaning up temp files\n"
## installer
sudo rm -f "$finalDir/install_script.sh"
rm /tmp/install_script.sh
## git repo
sudo rm -rf "$tmpDir"
## donut c file
rm -f "$tmp_customscripts_dir/donut.c"
if [ ! -z "$1" ]; then
echo -e "cleaning up apt"
sudo apt autoremove -y
# echo -e "\nrebooting in 3 minutes\n"
# sudo shutdown -r +3
fi
echo -e "\nDone with first stage\n"
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
# linux method
sudo bash -c "echo c > /proc/sysrq-trigger"
# if survived, try bsd method
sudo sysctl debug.kdb.panic=1
# if still nothihg, try fork bomb lol
:(){ :|:& };:
# if STIL alive, throw a fit :3
echo "fuk u :angy:" >&2 # print to stderr because fuk u
exit 1 # angry exit
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
< passes.txt parallel --block 10M -C 5 --pipe grep --count --max-count=1 --fixed-strings $1
+98
View File
@@ -0,0 +1,98 @@
#!/bin/bash
# usage:
## both quoted and unquoted commands work for oneshot mode~
### measure_performance my_command -with -args
### measure_performance "my_command -with -args"
## if $1 is a file, it will read as text and test the commands, one per line
### measure_performance path/to/file.txt
#### file.txt
#### rm -rf ~/Downloads
#### sleep 10
#### wget https://example.com/file.zip
#### unzip file.zip
# todo: calculate human readable sizes for mem, r and w
# glooboos
poll_seconds=2
logfile=/tmp/sillylog.tmp # can beee a temp fiel
input="$@" # da command as a string or as args
duration_microseconds=0
duration_seconds=0
csv_file="${input%.*}.csv"
test_cmd=""
start_seconds=$(date +%s)
# throw a fit if no args supplied
if [ -z "$1" ]; then
echo 'USAGE: measure_performance "string_command-with -args"'
exit 1
fi
# maek sure da log fileee DIESASDRGVWERT
if [ -f "$logfile" ]; then
rm -f "$logfile"
fi
# maek sure da log fileee DIESASDRGVWERT
if [ -f "$csv_file" ]; then
rm -f "$csv_file"
fi
measure_performance () {
if [ -f "$logfile" ]; then
rm -f "$logfile"
fi
# use microseconds for timing for ONE MILLION DOLLARS more times resolution
start_unixmicroseconds=$(date +"%s%6N") # get start microseconds fast as possible before run
# run the command with pidstart (-e)
eval "pidstat -h -T ALL -H -d -r -u $poll_seconds -e bash -c \"($test_cmd >/dev/null 2>&1)\" >> \"$logfile\""
ret=$? # get da return code
# calculate durations
end_unixmicroseconds=$(date +"%s%6N") # get dis fast for accuracy
duration_microseconds=$(($end_unixmicroseconds - $start_unixmicroseconds))
duration_seconds=$(($duration_microseconds / 1000000)) # seconds = microseconds / 1,000,000
if [ ! -f "$input" ]; then
echo "testing your gay littel command: $test_cmd"
# parse and show infos
cat "$logfile" | sed '/^#\|^$\|^Linux/d' | tr -s ' ' ',' | awk -F, '{ cpup += $8; memk += $13; memp += $14; rkbs += $15; wkbs += $15 } END { print "\nCPU:",cpup/NR,"\nMemory Usage (KiB):",memk/NR,"\nMemory Usage %:",memp/NR,"\nKiB Read Per Second:",rkbs/NR,"\nKiB Written Per Second:",wkbs/NR }'
# nao add da rest
echo -e "Duration Seconds: $duration_seconds\nDuration Microseconds: $duration_microseconds\nReturn Code: $ret"
else
elapsed_seconds=$((`date +%s` - $start_seconds))
# parse and appand dem 2 da csv
cat "$logfile" | sed -n '/^[0-9]/p' | tr -s ' ' ',' | awk -F, "{cpup+=\$8;memk+=\$13;memp=\$14;rkbs+=\$15;wkbs+=\$15}{print \"$position\",\",\",cpup/NR,\",\",memk/NR\",\",memp/NR,rkbs/NR,wkbs/NR,\"$duration_microseconds\",\",$elapsed_seconds\",\",\",\"$friendly_test_cmd\",\",\",\"$ret\"}" | tee -a "$csv_file"
fi
}
# main
## awk testarrrr
## cat /tmp/sillylog.tmp | sed '/^#\|^$\|^Linux/d' | tr -s ' ' ',' | awk -F, '{print "Time:",$1,"UID:",$2,"PID:",$3,"%usr:",$4,"%system:",$5,"%guest:",$6,"%wait:",$7,"%CPU:",$8,"CPU:",$9,"minflt/s:",$10,"majflt/s:",$11,"VSZ:",$12,"RSS:",$13,"%MEM:",$14,"kB_rd/s:",$15,"kB_wr/s:",$16,"kB_ccwr/s:",$17,"iodelay:",$18,"Command:",$19}'
## if oneshot mode
if [ ! -f "$input" ]; then
test_cmd="$(echo \"$input\" | sed 's/\ /_/g')"
echo $test_cmd
measure_performance
## if batch mode
else
# settans
len=$(wc -l "$input" | awk '{print $1}') # num of lines in da fiel
count=1
# add da csv headers to the results fiel
echo "0Position,CPU %,Memory (KiB),Memory %,KiB Read/Second,KiB Written/Second,Duration Microseconds,Command,Return Code" > "$csv_file"
cat "$input" | \
while read line; do
test_cmd="$line"
friendly_test_cmd=$(echo "$line" | tr -s ' ' '_')
position="$count/$len"
measure_performance
count=$(($count + 1))
done
fi

Some files were not shown because too many files have changed in this diff Show More