From 2c7488efadcf9cd58d906a96149d636a454e4aa9 Mon Sep 17 00:00:00 2001 From: Josh Ashton Date: Tue, 20 Aug 2024 08:20:56 -0600 Subject: [PATCH] syncing --- goto | 79 +++++++++------- mark | Bin 18696 -> 16160 bytes mkmp3 | 16 ++++ src/goto | 52 ++++++++++ src/goto.asm | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/goto.c | 73 ++++++++++++++ src/mark.c | 89 +++++++++++++++++ update-bl | 22 +++++ update-vol | 22 +++++ 9 files changed, 584 insertions(+), 32 deletions(-) create mode 100755 mkmp3 create mode 100644 src/goto create mode 100644 src/goto.asm create mode 100644 src/goto.c create mode 100644 src/mark.c create mode 100755 update-bl create mode 100755 update-vol diff --git a/goto b/goto index a8f32cf..1b93d21 100755 --- a/goto +++ b/goto @@ -1,40 +1,55 @@ #!/bin/zsh -# Dependencies: -# quaxlyqueen/scripts/mark +# Define the location of the bookmarks file +bookmarks_file="$HOME/.bookmarks" -BOOKMARKS_FILE=~/.bookmarks +# Function to display usage information +help() { + echo "\nQuickly navigate to saved bookmarks in the terminal.\n" + echo "Usage:" + echo " goto downloads" + echo " goto school" + echo " goto portfolio" + echo " goto -h" + echo " goto --help" +} -# Catch any invalid input. -if [[ $# -eq 0 || $# -gt 1 ]]; then - echo "\nImproper usage. Try:" - echo "\ngoto [keyword]" - echo " goto downloads" - echo " goto school" - echo " goto portfolio" - echo " goto -h" - echo " goto --help" +# Function to validate and change directory +validate_dir() { + local target_dir=$1 -# Display help. -elif [[ $1 == "-h" || $1 == "--help" ]]; then - echo "goto [keyword]" - echo " goto downloads" - echo " goto school" - echo " goto portfolio" - echo " goto -h" - echo " goto --help" + # Check if bookmarks file exists + if ! test -f "$bookmarks_file"; then + echo "Error accessing bookmarks file: $bookmarks_file" + return + fi -else - - # Locate the bookmark. - if [ $(grep -c "$1" $BOOKMARKS_FILE) -gt 0 ]; then - - # Go to the bookmark - cd $(grep "$1" $BOOKMARKS_FILE | head -n 1) - - # List bookmarks if bookmark was not found. - else - echo "Bookmark not found. Available bookmarks:" - mark -ls + # Read each line in the bookmarks file + while IFS= read -r line; do + # Check if the line contains the target directory + if [[ $line == *$target_dir* ]]; then + # Change directory and exit + cd "$line" + return fi + done < "$bookmarks_file" + + # Target directory not found in bookmarks + echo "Directory '$target_dir' not found in bookmarks." + return +} + +# Check for valid number of arguments +if [[ $# -ne 1 ]]; then + echo "Invalid usage. See 'goto --help' for details." + return +elif [[ $1 == "-h" || $1 == "--help" ]]; then + help + return fi + +# Validate and change directory based on argument +validate_dir $1 + +# Exit script (should be reached after successful directory change) +return diff --git a/mark b/mark index a5c021d59548fd34edf8811fd02140d0c3f91ad3..e3ad289c62ec809ffa932f8b0274e47d34048f46 100755 GIT binary patch literal 16160 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 Bj?n-B literal 18696 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 diff --git a/mkmp3 b/mkmp3 new file mode 100755 index 0000000..ed54aad --- /dev/null +++ b/mkmp3 @@ -0,0 +1,16 @@ +#!/bin/zsh + +TARGET=$1 + +if [[ -e $TARGET.mkv ]]; then + ffmpeg -i $TARGET.mkv -n $TARGET.mp3 + rm $TARGET.mkv +elif [[ -e $TARGET.webm ]]; then + ffmpeg -i $TARGET.webm -n $TARGET.mp3 + rm $TARGET.webm +elif [[ -e $TARGET.mp4 ]]; then + ffmpeg -i $TARGET.mp4 -n $TARGET.mp3 + rm $TARGET.mp4 +else + echo "file not found" +fi diff --git a/src/goto b/src/goto new file mode 100644 index 0000000..46728ec --- /dev/null +++ b/src/goto @@ -0,0 +1,52 @@ +#!/bin/zsh + +# Define the location of the bookmarks file +bookmarks_file="$HOME/.bookmarks" + +# Function to display usage information +help() { + echo "\nQuickly navigate to saved bookmarks in the terminal.\n" + echo "Usage:" + echo " goto downloads" + echo " goto school" + echo " goto portfolio" + echo " goto -h" + echo " goto --help" +} + +# Function to validate and change directory +validate_dir() { + local target_dir="$1" + + # Check if bookmarks file exists + if ! test -f "$bookmarks_file"; then + echo "Error accessing bookmarks file: $bookmarks_file" + exit 1 + fi + + # Read each line in the bookmarks file + while IFS= read -r line; do + # Check if the line contains the target directory + if [[ $line == *$target_dir* ]]; then + # Change directory and exit + cd "$line" + return 0 + fi + done < "$bookmarks_file" + + # Target directory not found in bookmarks + echo "Directory '$target_dir' not found in bookmarks." + return 1 +} + +# Check for valid number of arguments +if [[ $# -ne 1 ]]; then + echo "Invalid usage. See 'goto --help' for details." + exit 1 +fi + +# Validate and change directory based on argument +validate_dir "$1" + +# Exit script (should be reached after successful directory change) +exit 0 diff --git a/src/goto.asm b/src/goto.asm new file mode 100644 index 0000000..d0567dd --- /dev/null +++ b/src/goto.asm @@ -0,0 +1,263 @@ +goto: file format elf64-x86-64 + + +Disassembly of section .init: + +0000000000001000 <_init>: + 1000: f3 0f 1e fa endbr64 + 1004: 48 83 ec 08 sub $0x8,%rsp + 1008: 48 8b 05 c1 2f 00 00 mov 0x2fc1(%rip),%rax # 3fd0 <__gmon_start__@Base> + 100f: 48 85 c0 test %rax,%rax + 1012: 74 02 je 1016 <_init+0x16> + 1014: ff d0 call *%rax + 1016: 48 83 c4 08 add $0x8,%rsp + 101a: c3 ret + +Disassembly of section .plt: + +0000000000001020 : + 1020: ff 35 ca 2f 00 00 push 0x2fca(%rip) # 3ff0 <_GLOBAL_OFFSET_TABLE_+0x8> + 1026: ff 25 cc 2f 00 00 jmp *0x2fcc(%rip) # 3ff8 <_GLOBAL_OFFSET_TABLE_+0x10> + 102c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000001030 : + 1030: ff 25 ca 2f 00 00 jmp *0x2fca(%rip) # 4000 + 1036: 68 00 00 00 00 push $0x0 + 103b: e9 e0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001040 : + 1040: ff 25 c2 2f 00 00 jmp *0x2fc2(%rip) # 4008 + 1046: 68 01 00 00 00 push $0x1 + 104b: e9 d0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001050 : + 1050: ff 25 ba 2f 00 00 jmp *0x2fba(%rip) # 4010 + 1056: 68 02 00 00 00 push $0x2 + 105b: e9 c0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001060 <__stack_chk_fail@plt>: + 1060: ff 25 b2 2f 00 00 jmp *0x2fb2(%rip) # 4018 <__stack_chk_fail@GLIBC_2.4> + 1066: 68 03 00 00 00 push $0x3 + 106b: e9 b0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001070 : + 1070: ff 25 aa 2f 00 00 jmp *0x2faa(%rip) # 4020 + 1076: 68 04 00 00 00 push $0x4 + 107b: e9 a0 ff ff ff jmp 1020 <_init+0x20> + +0000000000001080 : + 1080: ff 25 a2 2f 00 00 jmp *0x2fa2(%rip) # 4028 + 1086: 68 05 00 00 00 push $0x5 + 108b: e9 90 ff ff ff jmp 1020 <_init+0x20> + +0000000000001090 : + 1090: ff 25 9a 2f 00 00 jmp *0x2f9a(%rip) # 4030 + 1096: 68 06 00 00 00 push $0x6 + 109b: e9 80 ff ff ff jmp 1020 <_init+0x20> + +00000000000010a0 : + 10a0: ff 25 92 2f 00 00 jmp *0x2f92(%rip) # 4038 + 10a6: 68 07 00 00 00 push $0x7 + 10ab: e9 70 ff ff ff jmp 1020 <_init+0x20> + +00000000000010b0 : + 10b0: ff 25 8a 2f 00 00 jmp *0x2f8a(%rip) # 4040 + 10b6: 68 08 00 00 00 push $0x8 + 10bb: e9 60 ff ff ff jmp 1020 <_init+0x20> + +00000000000010c0 : + 10c0: ff 25 82 2f 00 00 jmp *0x2f82(%rip) # 4048 + 10c6: 68 09 00 00 00 push $0x9 + 10cb: e9 50 ff ff ff jmp 1020 <_init+0x20> + +00000000000010d0 : + 10d0: ff 25 7a 2f 00 00 jmp *0x2f7a(%rip) # 4050 + 10d6: 68 0a 00 00 00 push $0xa + 10db: e9 40 ff ff ff jmp 1020 <_init+0x20> + +Disassembly of section .text: + +00000000000010e0 <_start>: + 10e0: f3 0f 1e fa endbr64 + 10e4: 31 ed xor %ebp,%ebp + 10e6: 49 89 d1 mov %rdx,%r9 + 10e9: 5e pop %rsi + 10ea: 48 89 e2 mov %rsp,%rdx + 10ed: 48 83 e4 f0 and $0xfffffffffffffff0,%rsp + 10f1: 50 push %rax + 10f2: 54 push %rsp + 10f3: 45 31 c0 xor %r8d,%r8d + 10f6: 31 c9 xor %ecx,%ecx + 10f8: 48 8d 3d 1d 02 00 00 lea 0x21d(%rip),%rdi # 131c
+ 10ff: ff 15 bb 2e 00 00 call *0x2ebb(%rip) # 3fc0 <__libc_start_main@GLIBC_2.34> + 1105: f4 hlt + 1106: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 110d: 00 00 00 + 1110: 48 8d 3d 51 2f 00 00 lea 0x2f51(%rip),%rdi # 4068 <__TMC_END__> + 1117: 48 8d 05 4a 2f 00 00 lea 0x2f4a(%rip),%rax # 4068 <__TMC_END__> + 111e: 48 39 f8 cmp %rdi,%rax + 1121: 74 15 je 1138 <_start+0x58> + 1123: 48 8b 05 9e 2e 00 00 mov 0x2e9e(%rip),%rax # 3fc8 <_ITM_deregisterTMCloneTable@Base> + 112a: 48 85 c0 test %rax,%rax + 112d: 74 09 je 1138 <_start+0x58> + 112f: ff e0 jmp *%rax + 1131: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 1138: c3 ret + 1139: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 1140: 48 8d 3d 21 2f 00 00 lea 0x2f21(%rip),%rdi # 4068 <__TMC_END__> + 1147: 48 8d 35 1a 2f 00 00 lea 0x2f1a(%rip),%rsi # 4068 <__TMC_END__> + 114e: 48 29 fe sub %rdi,%rsi + 1151: 48 89 f0 mov %rsi,%rax + 1154: 48 c1 ee 3f shr $0x3f,%rsi + 1158: 48 c1 f8 03 sar $0x3,%rax + 115c: 48 01 c6 add %rax,%rsi + 115f: 48 d1 fe sar $1,%rsi + 1162: 74 14 je 1178 <_start+0x98> + 1164: 48 8b 05 6d 2e 00 00 mov 0x2e6d(%rip),%rax # 3fd8 <_ITM_registerTMCloneTable@Base> + 116b: 48 85 c0 test %rax,%rax + 116e: 74 08 je 1178 <_start+0x98> + 1170: ff e0 jmp *%rax + 1172: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + 1178: c3 ret + 1179: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + 1180: f3 0f 1e fa endbr64 + 1184: 80 3d dd 2e 00 00 00 cmpb $0x0,0x2edd(%rip) # 4068 <__TMC_END__> + 118b: 75 33 jne 11c0 <_start+0xe0> + 118d: 55 push %rbp + 118e: 48 83 3d 4a 2e 00 00 cmpq $0x0,0x2e4a(%rip) # 3fe0 <__cxa_finalize@GLIBC_2.2.5> + 1195: 00 + 1196: 48 89 e5 mov %rsp,%rbp + 1199: 74 0d je 11a8 <_start+0xc8> + 119b: 48 8b 3d be 2e 00 00 mov 0x2ebe(%rip),%rdi # 4060 <__dso_handle> + 11a2: ff 15 38 2e 00 00 call *0x2e38(%rip) # 3fe0 <__cxa_finalize@GLIBC_2.2.5> + 11a8: e8 63 ff ff ff call 1110 <_start+0x30> + 11ad: c6 05 b4 2e 00 00 01 movb $0x1,0x2eb4(%rip) # 4068 <__TMC_END__> + 11b4: 5d pop %rbp + 11b5: c3 ret + 11b6: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) + 11bd: 00 00 00 + 11c0: c3 ret + 11c1: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 11c8: 00 00 00 00 + 11cc: 0f 1f 40 00 nopl 0x0(%rax) + 11d0: f3 0f 1e fa endbr64 + 11d4: e9 67 ff ff ff jmp 1140 <_start+0x60> + +00000000000011d9 : + 11d9: 41 54 push %r12 + 11db: 55 push %rbp + 11dc: 53 push %rbx + 11dd: 48 81 ec 20 10 00 00 sub $0x1020,%rsp + 11e4: 49 89 fc mov %rdi,%r12 + 11e7: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax + 11ee: 00 00 + 11f0: 48 89 84 24 18 10 00 mov %rax,0x1018(%rsp) + 11f7: 00 + 11f8: 31 c0 xor %eax,%eax + 11fa: 48 8d 3d 03 0e 00 00 lea 0xe03(%rip),%rdi # 2004 <_IO_stdin_used+0x4> + 1201: e8 2a fe ff ff call 1030 + 1206: 48 89 c3 mov %rax,%rbx + 1209: 48 89 c7 mov %rax,%rdi + 120c: e8 2f fe ff ff call 1040 + 1211: 48 01 d8 add %rbx,%rax + 1214: 48 b9 2f 2e 62 6f 6f movabs $0x616d6b6f6f622e2f,%rcx + 121b: 6b 6d 61 + 121e: 48 89 08 mov %rcx,(%rax) + 1221: c7 40 08 72 6b 73 00 movl $0x736b72,0x8(%rax) + 1228: 48 8d 35 ea 0d 00 00 lea 0xdea(%rip),%rsi # 2019 <_IO_stdin_used+0x19> + 122f: 48 89 df mov %rbx,%rdi + 1232: e8 69 fe ff ff call 10a0 + 1237: 48 85 c0 test %rax,%rax + 123a: 0f 84 b9 00 00 00 je 12f9 + 1240: 48 89 c5 mov %rax,%rbp + 1243: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi + 1248: be 00 10 00 00 mov $0x1000,%esi + 124d: e8 2e fe ff ff call 1080 + 1252: 48 85 c0 test %rax,%rax + 1255: 74 16 je 126d + 1257: 48 8d 74 24 10 lea 0x10(%rsp),%rsi + 125c: 48 8d 3d a6 0d 00 00 lea 0xda6(%rip),%rdi # 2009 <_IO_stdin_used+0x9> + 1263: b8 00 00 00 00 mov $0x0,%eax + 1268: e8 03 fe ff ff call 1070 + 126d: 48 c7 04 24 00 00 00 movq $0x0,(%rsp) + 1274: 00 + 1275: 48 c7 44 24 08 00 00 movq $0x0,0x8(%rsp) + 127c: 00 00 + 127e: 48 8d 74 24 08 lea 0x8(%rsp),%rsi + 1283: 48 89 e7 mov %rsp,%rdi + 1286: 48 89 ea mov %rbp,%rdx + 1289: e8 22 fe ff ff call 10b0 + 128e: 48 83 f8 ff cmp $0xffffffffffffffff,%rax + 1292: 74 46 je 12da + 1294: 48 8b 34 24 mov (%rsp),%rsi + 1298: 48 8d 3d 73 0d 00 00 lea 0xd73(%rip),%rdi # 2012 <_IO_stdin_used+0x12> + 129f: b8 00 00 00 00 mov $0x0,%eax + 12a4: e8 c7 fd ff ff call 1070 + 12a9: 48 8b 1c 24 mov (%rsp),%rbx + 12ad: 4c 89 e6 mov %r12,%rsi + 12b0: 48 89 df mov %rbx,%rdi + 12b3: e8 18 fe ff ff call 10d0 + 12b8: 48 85 c0 test %rax,%rax + 12bb: 74 c1 je 127e + 12bd: 48 89 de mov %rbx,%rsi + 12c0: 48 8d 3d 4b 0d 00 00 lea 0xd4b(%rip),%rdi # 2012 <_IO_stdin_used+0x12> + 12c7: b8 00 00 00 00 mov $0x0,%eax + 12cc: e8 9f fd ff ff call 1070 + 12d1: 48 8b 3c 24 mov (%rsp),%rdi + 12d5: e8 76 fd ff ff call 1050 + 12da: 48 8b 84 24 18 10 00 mov 0x1018(%rsp),%rax + 12e1: 00 + 12e2: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax + 12e9: 00 00 + 12eb: 75 2a jne 1317 + 12ed: 48 81 c4 20 10 00 00 add $0x1020,%rsp + 12f4: 5b pop %rbx + 12f5: 5d pop %rbp + 12f6: 41 5c pop %r12 + 12f8: c3 ret + 12f9: 48 89 de mov %rbx,%rsi + 12fc: 48 8d 3d 25 0d 00 00 lea 0xd25(%rip),%rdi # 2028 <_IO_stdin_used+0x28> + 1303: b8 00 00 00 00 mov $0x0,%eax + 1308: e8 63 fd ff ff call 1070 + 130d: bf 02 00 00 00 mov $0x2,%edi + 1312: e8 a9 fd ff ff call 10c0 + 1317: e8 44 fd ff ff call 1060 <__stack_chk_fail@plt> + +000000000000131c
: + 131c: 53 push %rbx + 131d: 83 ff 02 cmp $0x2,%edi + 1320: 75 42 jne 1364 + 1322: 48 8b 5e 08 mov 0x8(%rsi),%rbx + 1326: 48 8d 35 ee 0c 00 00 lea 0xcee(%rip),%rsi # 201b <_IO_stdin_used+0x1b> + 132d: 48 89 df mov %rbx,%rdi + 1330: e8 5b fd ff ff call 1090 + 1335: 85 c0 test %eax,%eax + 1337: 74 13 je 134c + 1339: 48 8d 35 de 0c 00 00 lea 0xcde(%rip),%rsi # 201e <_IO_stdin_used+0x1e> + 1340: 48 89 df mov %rbx,%rdi + 1343: e8 48 fd ff ff call 1090 + 1348: 85 c0 test %eax,%eax + 134a: 75 30 jne 137c + 134c: 48 8d 3d cd 0c 00 00 lea 0xccd(%rip),%rdi # 2020 <_IO_stdin_used+0x20> + 1353: b8 00 00 00 00 mov $0x0,%eax + 1358: e8 13 fd ff ff call 1070 + 135d: b8 00 00 00 00 mov $0x0,%eax + 1362: 5b pop %rbx + 1363: c3 ret + 1364: 48 8d 3d aa 0c 00 00 lea 0xcaa(%rip),%rdi # 2015 <_IO_stdin_used+0x15> + 136b: b8 00 00 00 00 mov $0x0,%eax + 1370: e8 fb fc ff ff call 1070 + 1375: b8 01 00 00 00 mov $0x1,%eax + 137a: eb e6 jmp 1362 + 137c: 48 89 df mov %rbx,%rdi + 137f: e8 55 fe ff ff call 11d9 + 1384: b8 00 00 00 00 mov $0x0,%eax + 1389: eb d7 jmp 1362 + +Disassembly of section .fini: + +000000000000138c <_fini>: + 138c: f3 0f 1e fa endbr64 + 1390: 48 83 ec 08 sub $0x8,%rsp + 1394: 48 83 c4 08 add $0x8,%rsp + 1398: c3 ret diff --git a/src/goto.c b/src/goto.c new file mode 100644 index 0000000..9b38f7c --- /dev/null +++ b/src/goto.c @@ -0,0 +1,73 @@ +#include +#include +#include +#include +#include + +/* +void error() { + printf("\nImproper usage: goto[ keyword ]\n" + " Usage:\n" + " goto downloads\n" + " goto school\n" + " goto portfolio\n" + " goto -h\n" + " goto --help"); +} + +void help() { + printf("\nQuickly navigate to saved bookmarks in the terminal.\n" + " Usage:\n" + " goto downloads\n" + " goto school\n" + " goto portfolio\n" + " goto -h\n" + " goto --help"); +} +*/ + +void validateDir(char input[]) { + char *bookmarksFile = strcat(getenv("HOME"), "/.bookmarks"); + // char *bookmarksFile = "/home/jashton/.bookmarks"; + FILE *f = fopen(bookmarksFile, "r"); + // Unable to access file. + if (f == NULL) { + printf("Error accessing file located at %s.\n", bookmarksFile); + exit(2); + } else { + char cwd[PATH_MAX]; + if (getcwd(cwd, sizeof(cwd)) != NULL) { + printf("cwd: %s\n", cwd); + } + + char *line = NULL; + size_t len = 0; + ssize_t read; + + while ((read = getline(&line, &len, f)) != -1) { + printf("%s", line); + if (strstr(line, input) != NULL) { + printf("%s", line); + chdir(line); + return; + } + } + } +} + +int main(int argc, char *argv[]) { + // Invalid number of arguments. + if (argc != 2) { + // error(); + printf("error"); + return 1; + } + + // Display help. + if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0) + printf("help"); + else + validateDir(argv[1]); + + return 0; +} diff --git a/src/mark.c b/src/mark.c new file mode 100644 index 0000000..2545ba6 --- /dev/null +++ b/src/mark.c @@ -0,0 +1,89 @@ +#include +#include +#include +#include +#include + +// Displays error message upon improper usage. +void error() { + printf("\nImproper usage: mark { -ls | -rm [ keyword(s) ] }\n" + " Usage:\n" + " mark\n" + " mark -ls\n" + " mark -rm [ keyword ]\n" + " mark -h\n" + " mark --help"); +} + +// Displays help message. +void help() { + printf("\nCreate and manage persistent bookmarks in the terminal.\n" + "Usage:\n" + " mark\n" + " mark -ls\n" + " mark -rm [ keyword ]\n" + " mark -h\n" + " mark --help"); +} + +// Lists all bookmarks in file. +void list(FILE *f) { + int c; + printf("Bookmarks:\n"); + while (1) { + c = fgetc(f); + if (feof(f)) + break; + printf("%c", c); + } +} + +// Removes a bookmark from the file. +void removeMark(FILE *f, char *argv[]) { + printf("remove mark function not implemented. received input to remove: %s.", + argv[2]); // TODO: Need to implement. +} + +int main(int argc, char *argv[]) { + char *bookmarksFile = strcat(getenv("HOME"), "/.bookmarks"); + FILE *f = fopen(bookmarksFile, "a+"); + + // Unable to access file. + if (f == NULL) { + printf("Error accessing file located at %s.", bookmarksFile); + return 1; + } + + // Invalid number of arguments. + else if (argc > 2 && strcmp(argv[1], "-rm") != 0) { + error(); + return 1; + } + + // Append the current directory to the bookmarks file. + else if (argc == 1) { + char cwd[PATH_MAX]; + fprintf(f, "\n%s", getcwd(cwd, sizeof(cwd))); + printf("Successfully bookmarked %s.", cwd); + } + + // Display help. + else if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0) + help(); + + // List bookmarks. + else if (strcmp(argv[1], "-ls") == 0) + list(f); + + else if (strcmp(argv[1], "-rm") == 0) + removeMark(f, argv); + + // Invalid argument. + else { + error(); + return 1; + } + + fclose(f); + return 0; +} diff --git a/update-bl b/update-bl new file mode 100755 index 0000000..d6d4129 --- /dev/null +++ b/update-bl @@ -0,0 +1,22 @@ +#!/bin/zsh + +tail -f ~/.config/xob/xobpipe | xob -s volume & +if [[ $# -eq 2 ]]; then + CHANGE=$1 + TARGET_FILE=$2 +elif [[ $# -eq 3 ]]; then + CHANGE=`expr 0 - $2` + TARGET_FILE=$3 +else + echo "Improper usage. To increase a value in a file,\nupdate-bl [change] [target_file]." + echo "To decrease a value in a file,\nupdate-bl --decrease [change] [target_file]." +fi + +OLDNUM=`cut -f1 $TARGET_FILE` +NEWNUM=`expr $OLDNUM + $CHANGE` + +if [[ $NEWNUM -le 100 && $NEWNUM -ge 0 ]]; then + sed -i "s/$OLDNUM/$NEWNUM/g" $TARGET_FILE + brightnessctl set $NEWNUM% + echo $NEWNUM >> ~/.config/xob/xobpipe +fi diff --git a/update-vol b/update-vol new file mode 100755 index 0000000..6d9641f --- /dev/null +++ b/update-vol @@ -0,0 +1,22 @@ +#!/bin/zsh + +tail -f ~/.config/xob/xobpipe | xob -s volume & +if [[ $# -eq 2 ]]; then + CHANGE=$1 + TARGET_FILE=$2 +elif [[ $# -eq 3 ]]; then + CHANGE=`expr 0 - $2` + TARGET_FILE=$3 +else + echo "Improper usage. To increase a value in a file,\nupdate-val [change] [target_file]." + echo "To decrease a value in a file,\nupdate-val --decrease [change] [target_file]." +fi + +OLDNUM=`cut -f1 $TARGET_FILE` +NEWNUM=`expr $OLDNUM + $CHANGE` + +if [[ $NEWNUM -le 100 && $NEWNUM -ge 0 ]]; then + sed -i "s/$OLDNUM/$NEWNUM/g" $TARGET_FILE + pactl set-sink-volume @DEFAULT_SINK@ $NEWNUM% + echo $NEWNUM >> ~/.config/xob/xobpipe +fi