acme/bin/t2s

43 lines
574 B
Text
Raw Normal View History

2017-08-19 17:38:08 +03:00
#!/usr/bin/env bash
2017-01-26 19:29:57 +03:00
2017-08-19 17:38:08 +03:00
awk -v n_spaces="$1" '
2017-01-26 19:29:57 +03:00
2017-08-19 17:38:08 +03:00
BEGIN {
tab = " "
space = " "
2017-01-26 19:29:57 +03:00
2017-08-19 17:38:08 +03:00
if (n_spaces < 1) {
n_spaces = 4
}
2017-01-26 19:29:57 +03:00
2017-08-19 17:38:08 +03:00
spaces_per_tab = ""
for (i = 1; i <= n_spaces; i += 1) {
spaces_per_tab = spaces_per_tab space
}
}
2017-01-26 19:29:57 +03:00
2017-08-19 17:38:08 +03:00
function spaces_for_n_tabs(n) {
spaces = ""
while (n--) {
spaces = spaces spaces_per_tab
}
return spaces
}
2017-08-19 17:38:08 +03:00
function tabs_to_spaces(line) {
n_tabs = 0
for (i = 1; i <= length(line); i += 1) {
if (substr(line, i, 1) != tab) {
break
}
n_tabs += 1
}
return spaces_for_n_tabs(n_tabs) substr(line, i)
}
2017-08-19 17:38:08 +03:00
{
print tabs_to_spaces($0)
}
'