initial commit
This commit is contained in:
commit
f56ffe480d
8
Makefile
Normal file
8
Makefile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
DEST ?= $(HOME)/.local
|
||||||
|
install:
|
||||||
|
cp -r ./textmagicscripts $(DEST)/bin/
|
||||||
|
cp ./tm $(DEST)/bin/
|
||||||
|
uninstall:
|
||||||
|
rm -r $(DEST)/bin/textmagicsripts
|
||||||
|
rm $(DEST)/bin/tm
|
||||||
|
|
||||||
11
textmagicscripts/edit
Executable file
11
textmagicscripts/edit
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
cat > /tmp/hollorol_edit
|
||||||
|
|
||||||
|
st -e nvim /tmp/hollorol_edit
|
||||||
|
|
||||||
|
cat /tmp/hollorol_edit
|
||||||
|
|
||||||
|
|
||||||
7
textmagicscripts/google_link_to_wget
Executable file
7
textmagicscripts/google_link_to_wget
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
while read LINK; do
|
||||||
|
DOCNAME=$(curl -s "$LINK" | grep -oP "'title': '.*?'" | sed -E "s/'title': '(.*)'/\1/")
|
||||||
|
DOCID=$(echo "$LINK" | sed -E 's/.*d\/(.*)\/view.*/\1/')
|
||||||
|
echo "wget -O $DOCNAME \"https://drive.usercontent.google.com/download?id=$DOCID""&confirm=t\""
|
||||||
|
done
|
||||||
7
textmagicscripts/lower
Executable file
7
textmagicscripts/lower
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
for line in sys.stdin:
|
||||||
|
print(line.lower(),end='')
|
||||||
42
textmagicscripts/mtalign
Executable file
42
textmagicscripts/mtalign
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import copy
|
||||||
|
|
||||||
|
ISPIPE = re.compile(r'(?<!\\)\|')
|
||||||
|
|
||||||
|
def calc_colnums(rows):
|
||||||
|
colsizes = [0]
|
||||||
|
for row in rows:
|
||||||
|
for ind,cell in enumerate(row):
|
||||||
|
if (len(colsizes) -1) < ind:
|
||||||
|
colsizes.append(0)
|
||||||
|
cell_size = len(cell.strip())
|
||||||
|
if cell_size > colsizes[ind]:
|
||||||
|
colsizes[ind] = cell_size
|
||||||
|
return colsizes
|
||||||
|
|
||||||
|
def pad_cells_and_center(rows):
|
||||||
|
pad = 1
|
||||||
|
cells_to_pad = copy.deepcopy(rows)
|
||||||
|
colsizes = calc_colnums(rows)
|
||||||
|
for row_id,row in enumerate(cells_to_pad):
|
||||||
|
for col_ind,cell in enumerate(row):
|
||||||
|
cell_size = len(cell.strip())
|
||||||
|
numspaces = (colsizes[col_ind] - cell_size) + pad
|
||||||
|
if row_id == 1:
|
||||||
|
cells_to_pad[row_id][col_ind] = ' ' * pad + '-' * colsizes[col_ind] + ' ' * pad
|
||||||
|
continue
|
||||||
|
cells_to_pad[row_id][col_ind] = ' ' * pad + cell.strip() + ' '* numspaces
|
||||||
|
return(cells_to_pad)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
table = []
|
||||||
|
for row_string in sys.stdin:
|
||||||
|
table.append(ISPIPE.split(row_string.strip())[1:-1])
|
||||||
|
table = pad_cells_and_center(table)
|
||||||
|
for row in ['|' + '|'.join(r) + '|' for r in table]:
|
||||||
|
print(row)
|
||||||
|
|
||||||
3
textmagicscripts/number_line
Executable file
3
textmagicscripts/number_line
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
nl -s ". "
|
||||||
8
textmagicscripts/regex
Executable file
8
textmagicscripts/regex
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
cat > /tmp/regex_tmp_hr
|
||||||
|
regex=$(rofi -dmenu -window-title 'regular expression')
|
||||||
|
|
||||||
|
</tmp/regex_tmp_hr sed "$regex"
|
||||||
40
textmagicscripts/sanitize
Executable file
40
textmagicscripts/sanitize
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
"""
|
||||||
|
This is a very-very simple filename sanitizer program written in python
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys # argv
|
||||||
|
import os # rename
|
||||||
|
import unicodedata as unid # normalize
|
||||||
|
sys.tracebacklimit = 0
|
||||||
|
|
||||||
|
def test_special_char(my_char):
|
||||||
|
"""
|
||||||
|
Test if a character is special in terms of filename
|
||||||
|
"""
|
||||||
|
char_num = ord(my_char)
|
||||||
|
if char_num > 127: # case ß
|
||||||
|
return False
|
||||||
|
|
||||||
|
return (
|
||||||
|
my_char.isalnum() or
|
||||||
|
char_num == 95 or
|
||||||
|
char_num == 47 or
|
||||||
|
char_num == 46 or
|
||||||
|
char_num == 45
|
||||||
|
) and (char_num < 127)
|
||||||
|
|
||||||
|
|
||||||
|
def sanitize(filename):
|
||||||
|
"""
|
||||||
|
A simple filename sanitizer
|
||||||
|
"""
|
||||||
|
spaceless_unicode = ["_" if i == " " else i for i in filename]
|
||||||
|
spaceless_unicode = unid.normalize("NFKD", "".join(spaceless_unicode))
|
||||||
|
ret = [i if test_special_char(i) else "" for i in spaceless_unicode]
|
||||||
|
return "".join(ret)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
for row in sys.stdin:
|
||||||
|
print(sanitize(row))
|
||||||
8
textmagicscripts/snake-to-cammel/Makefile
Normal file
8
textmagicscripts/snake-to-cammel/Makefile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
DEST=$(HOME)/.local/bin
|
||||||
|
SRC=snake-to-cammel.c
|
||||||
|
OUT=../snake_to_cammel
|
||||||
|
|
||||||
|
$(OUT): $(SRC)
|
||||||
|
gcc -pedantic -Wall -Wextra $(SRC) -o $(OUT)
|
||||||
|
install:
|
||||||
|
cp $(OUT) $(DEST)
|
||||||
43
textmagicscripts/snake-to-cammel/snake-to-cammel.c
Normal file
43
textmagicscripts/snake-to-cammel/snake-to-cammel.c
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* This simple program is created by Roland Hollós (hollorol@rolandhollos.net)
|
||||||
|
*/
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
#define MAX_LINE_LEN 10000
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
char s[MAX_LINE_LEN];
|
||||||
|
char out[MAX_LINE_LEN];
|
||||||
|
while(fgets(s, MAX_LINE_LEN, stdin) != NULL){
|
||||||
|
int string_length = strlen(s);
|
||||||
|
int k = 0;
|
||||||
|
int under = 0;
|
||||||
|
for(int i = 0; i < string_length; ++i)
|
||||||
|
{
|
||||||
|
/* if((s[i] >= 65) && (s[i] <= 90)) */
|
||||||
|
if((s[i] == '_') && !under){
|
||||||
|
under = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if((s[i] <= 122) && (s[i] >= 90) && under)
|
||||||
|
{
|
||||||
|
out[k] = s[i] - 32;
|
||||||
|
k++;
|
||||||
|
under = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
out[k] = s[i];
|
||||||
|
k++;
|
||||||
|
under = 0;
|
||||||
|
}
|
||||||
|
out[k] = '\0';
|
||||||
|
printf("%s", out);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
BIN
textmagicscripts/snake_to_cammel
Executable file
BIN
textmagicscripts/snake_to_cammel
Executable file
Binary file not shown.
8
textmagicscripts/space-to-snake/Makefile
Normal file
8
textmagicscripts/space-to-snake/Makefile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
DEST=$(HOME)/.local/bin
|
||||||
|
SRC=space-to-snake.c
|
||||||
|
OUT=space_to_snake
|
||||||
|
|
||||||
|
../$(OUT): $(SRC)
|
||||||
|
gcc -pedantic -Wall -Wextra $(SRC) -o ../$(OUT)
|
||||||
|
install:
|
||||||
|
cp ../$(OUT) $(DEST)
|
||||||
39
textmagicscripts/space-to-snake/space-to-snake.c
Normal file
39
textmagicscripts/space-to-snake/space-to-snake.c
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* This simple program is created by Roland Hollós (hollorol@rolandhollos.net)
|
||||||
|
* It is works like this:
|
||||||
|
* ez itt egy nagyon hosszu valtozo == ez_itt_egy_nagyon_hosszu_valtozo_
|
||||||
|
*/
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
#define MAX_LINE_LEN 10000
|
||||||
|
|
||||||
|
int
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
char s[MAX_LINE_LEN];
|
||||||
|
char out[MAX_LINE_LEN];
|
||||||
|
|
||||||
|
while(fgets(s, MAX_LINE_LEN, stdin) != NULL){
|
||||||
|
int string_length = strlen(s);
|
||||||
|
for(int i = 0; i < string_length; ++i)
|
||||||
|
{
|
||||||
|
/* if((s[i] >= 65) && (s[i] <= 90)) */
|
||||||
|
if(s[i] == ' '){
|
||||||
|
out[i] = '_';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if((s[i] >= 65) && (s[i] <= 90))
|
||||||
|
{
|
||||||
|
out[i] = s[i] + 32;
|
||||||
|
}
|
||||||
|
out[i] = s[i];
|
||||||
|
|
||||||
|
}
|
||||||
|
out[string_length] = '\0';
|
||||||
|
printf("%s", out);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
BIN
textmagicscripts/space_to_snake
Executable file
BIN
textmagicscripts/space_to_snake
Executable file
Binary file not shown.
7
textmagicscripts/upper
Executable file
7
textmagicscripts/upper
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
for line in sys.stdin:
|
||||||
|
print(line.upper(),end='')
|
||||||
44
tm
Executable file
44
tm
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
SCRIPTLOC="$HOME/.local/bin/textmagicscripts"
|
||||||
|
|
||||||
|
printResult () {
|
||||||
|
scriptname="$1"
|
||||||
|
script=$(echo $scriptname | head -c -3)
|
||||||
|
eval "xclip -o | $SCRIPTLOC"/"$script | xclip -sel c"
|
||||||
|
active_window_id=$(xdotool getactivewindow)
|
||||||
|
if [ -z "$(xprop -id $active_window_id WM_CLASS | grep -o terminal | head -n 1)" ]
|
||||||
|
then
|
||||||
|
xdotool key ctrl+v
|
||||||
|
else
|
||||||
|
xdotool key ctrl+shift+v
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export -f printResult
|
||||||
|
|
||||||
|
|
||||||
|
find $SCRIPTLOC -maxdepth 1 -type f -exec basename {} \; | while read line;
|
||||||
|
do
|
||||||
|
for i in {p,c}
|
||||||
|
do
|
||||||
|
echo ${line}_$i
|
||||||
|
done
|
||||||
|
done | \
|
||||||
|
rofi -dmenu --window-title "TexMagics" -matching regex | \
|
||||||
|
while read scriptname;
|
||||||
|
do
|
||||||
|
insertmode=$(echo $scriptname | tail -c 2)
|
||||||
|
|
||||||
|
case $insertmode in
|
||||||
|
p)
|
||||||
|
printResult $scriptname;;
|
||||||
|
c)
|
||||||
|
script=$(echo $scriptname | head -c -3)
|
||||||
|
eval "xclip -o | $SCRIPTLOC"/"$script | xclip -sel c";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user