My core question is how to reduce the required time and diskusage (if/where possible) on the reduce-the-list issue.
Code:
# Get full list of all functions
local list_raw="$(swarm.eu.function.list )
# Remove swarm.{sanity,eu] and init.* functions, as they are for internal use only
local list=$(
for l in $list_raw;do
(
$ECHO "${l}" | $GREP -q 'swarm.sanity' || \
$ECHO "${l}" | $GREP -q 'swarm.eu' || \
$ECHO "${l}" | $GREP -q 'init.'
) || $PRINTF "$l "
done ; )
EDIT:
/* The search pattern inside the swarm.eu.function.list function is ^[:space:]funcname() { # comments. */
Code:
swarm.eu.function.list() { # [FILE]
# Prints a list of properly declared functions
# see ./docs/{MANUAL,SYNTAX}.md for details
swarm.protect "$FUNCNAME" "${@}" && exit 1
local tmp_oldpwd="${PWD:-$($PWD_EXEC)}"
local tmp_file="${1##*/}"
local tmp_dir=${1/$tmp_file}
local target="${tmp_dir:-$SWARM_DIR_LIBS}/$tmp_file"
if [[ -n "$tmp_file" ]] && [[ -f "$target" ]]
then # There is a specific file passed to parse
cd "${tmp_dir:-$SWARM_DIR_LIBS}"
$GREP "() { #" "$1"| \
$GREP -v GREP | \
$AWK -v FS='() ' '{print $1}' | \
$SED s,'()',' ',g
cd "$tmp_oldpwd"
else # Just parse all files in SWARM_DIR_LIBS ; default
raw_output() {
(
cd "$SWARM_DIR_LIBS"
$GREP init.*"() {" * | $GREP -v GREP
$GREP cfg.*"() {" * | $GREP -v GREP
# Yes, I could remove these functions here, but I'd like to keep my options
# for a possible 'internal' section for the help menu
$GREP swarm.*"() {" * | $GREP -v GREP | $GREP -v '.os.' #| $GREP -v sanity | $GREP -v '\.eu\.'
cd "$tmp_oldpwd"
) | while IFS=": " read _ funcname _
do
# The IFS takes care of the GREP filenames
# and this variable-regex takes care of the 'function definition'
$PRINTF '%s\n' "${funcname/()}"
done
}
# Show data
raw_output | sort -u
unset -f raw_output
fi
}
EDIT X'th:
Some code fixes, as I did post the code too early as is - while it was in modification.
And while I completed this, I forgot that I wanted to support multiple dirs (SWARM_DIR_LIBS , SWARM_USER_DIR_LIBS) so it could be used for private scripts as well.
And now alot more ideas come up, and I need to go to bed...
Stay healthy and thank you in advance for any suggestions
Moderator's Comments:
Deleted PHP highlighting tags for shell script. Please do not do abuse the BBCODE tags.
Hi
I need to search for matching strings in a database and I want to print out all files that matches in "detail", which means that I want the output to contain datum of last saving. I only get the grep function tp print the actual file names which is not enough since the database is to large... (14 Replies)
I'm currently fixing a bug in a C program in which I need to check to make sure another specific application is up and running before continuing.
Are there any SunOS API functions that can provide me with a list of currently running processes on the system? I'd like to avoid using 'ps' with a... (1 Reply)
I created a large file list using:
find . -type f -mtime +540 > test2.txt
..which searched recursively down the directory tree searching for any file older than 540 days.
I would like to filter the results removing the directory name and the "/" character, resulting in only a list of the... (3 Replies)
Hi I have 2 files a.c and a.bak where I changed long to int using awk script.
I want to get the list of functions whose parameters got modified
for eg: fun ( long a, long b ) might be changed to fun ( int a, int b ) (1 Reply)
Hello
I have a problem with retreiving network interface list using IOCTLs. I have 4 interfaces:
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope... (1 Reply)
I have a situation where I would like to retrieve a list of ids on AIX 5.3 server, which do not have proper gecos information. The need is to fix all of these ids before it gets flagged as an audit exposure. Can someone please help me with a command/script to retrieve this list?
G (3 Replies)
I'm looking for some suggestions on a command line utility I am making. I would like to use 'find' to locate some files and index the results so the user can choose the correct results from the list and push that input into an open command. A simple example below:
... (2 Replies)
Hello,
I think there's an easier way to do this but can't seem to recall but given an array of animals and an initial value is a random index in the array, here it's 3.
3,4,5,4,3,2,1,0,1,2,3,4,5,4,3,2,1,0... inifinite repeat
a quick brute force solution i came up with was two functions, i... (6 Replies)