Hex Artifact Content

Artifact 833dbdb173b215b7c77a83778cd8f900e3a353c2:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 62 61 73 68 0a 0a 63 64 20 22 24 28 64 69 72 6e  bash..cd "$(dirn
0020: 61 6d 65 20 22 24 7b 42 41 53 48 5f 53 4f 55 52  ame "${BASH_SOUR
0030: 43 45 5b 30 5d 7d 22 29 22 20 7c 7c 20 65 78 69  CE[0]}")" || exi
0040: 74 20 31 0a 0a 63 61 74 20 6c 69 62 63 61 63 6b  t 1..cat libcack
0050: 65 79 5f 77 72 61 70 2e 63 2e 69 6e 0a 0a 67 72  ey_wrap.c.in..gr
0060: 65 70 20 27 5e 43 4b 5f 44 45 46 49 4e 45 5f 46  ep '^CK_DEFINE_F
0070: 55 4e 43 54 49 4f 4e 27 20 2e 2e 2f 63 61 63 6b  UNCTION' ../cack
0080: 65 79 2e 63 20 7c 20 77 68 69 6c 65 20 49 46 53  ey.c | while IFS
0090: 3d 27 27 20 72 65 61 64 20 2d 72 20 6c 69 6e 65  ='' read -r line
00a0: 3b 20 64 6f 0a 09 66 75 6e 63 74 69 6f 6e 3d 22  ; do..function="
00b0: 24 28 65 63 68 6f 20 22 24 7b 6c 69 6e 65 7d 22  $(echo "${line}"
00c0: 20 7c 20 63 75 74 20 2d 66 20 32 20 2d 64 20 2c   | cut -f 2 -d ,
00d0: 20 7c 20 63 75 74 20 2d 66 20 31 20 2d 64 20 27   | cut -f 1 -d '
00e0: 29 27 20 7c 20 73 65 64 20 27 73 40 20 2a 40 40  )' | sed 's@ *@@
00f0: 67 27 29 22 0a 09 61 72 67 73 3d 22 24 28 65 63  g')"..args="$(ec
0100: 68 6f 20 22 24 7b 6c 69 6e 65 7d 22 20 7c 20 63  ho "${line}" | c
0110: 75 74 20 2d 66 20 33 20 2d 64 20 27 28 27 20 7c  ut -f 3 -d '(' |
0120: 20 63 75 74 20 2d 66 20 31 20 2d 64 20 27 29 27   cut -f 1 -d ')'
0130: 20 7c 20 74 72 20 27 2c 27 20 24 27 5c 6e 27 20   | tr ',' $'\n' 
0140: 7c 20 73 65 64 20 27 73 40 5e 20 2a 40 40 27 29  | sed 's@^ *@@')
0150: 22 0a 09 61 72 67 4e 61 6d 65 73 3d 28 29 0a 09  "..argNames=()..
0160: 77 68 69 6c 65 20 72 65 61 64 20 61 72 67 54 79  while read argTy
0170: 70 65 20 61 72 67 4e 61 6d 65 3b 20 64 6f 0a 09  pe argName; do..
0180: 09 61 72 67 4e 61 6d 65 73 3d 28 22 24 7b 61 72  .argNames=("${ar
0190: 67 4e 61 6d 65 73 5b 40 5d 7d 22 20 22 24 7b 61  gNames[@]}" "${a
01a0: 72 67 4e 61 6d 65 7d 22 29 0a 09 64 6f 6e 65 20  rgName}")..done 
01b0: 3c 3c 3c 22 24 7b 61 72 67 73 7d 22 0a 0a 09 61  <<<"${args}"...a
01c0: 72 67 4e 61 6d 65 73 4c 69 73 74 3d 27 27 0a 09  rgNamesList=''..
01d0: 66 6f 72 20 61 72 67 4e 61 6d 65 20 69 6e 20 22  for argName in "
01e0: 24 7b 61 72 67 4e 61 6d 65 73 5b 40 5d 7d 22 3b  ${argNames[@]}";
01f0: 20 64 6f 0a 09 09 61 72 67 4e 61 6d 65 73 4c 69   do...argNamesLi
0200: 73 74 3d 22 24 7b 61 72 67 4e 61 6d 65 73 4c 69  st="${argNamesLi
0210: 73 74 7d 2c 20 24 7b 61 72 67 4e 61 6d 65 7d 22  st}, ${argName}"
0220: 0a 09 64 6f 6e 65 0a 09 61 72 67 4e 61 6d 65 73  ..done..argNames
0230: 4c 69 73 74 3d 22 24 28 65 63 68 6f 20 22 24 7b  List="$(echo "${
0240: 61 72 67 4e 61 6d 65 73 4c 69 73 74 7d 22 20 7c  argNamesList}" |
0250: 20 63 75 74 20 2d 63 20 33 2d 29 22 0a 0a 09 65   cut -c 3-)"...e
0260: 63 68 6f 20 27 27 0a 09 65 63 68 6f 20 22 24 7b  cho ''..echo "${
0270: 6c 69 6e 65 7d 22 0a 09 65 63 68 6f 20 24 27 5c  line}"..echo $'\
0280: 74 27 22 43 4b 5f 52 56 20 28 2a 66 75 6e 63 29  t'"CK_RV (*func)
0290: 28 24 28 65 63 68 6f 20 22 24 7b 61 72 67 73 7d  ($(echo "${args}
02a0: 22 20 7c 20 74 72 20 24 27 5c 6e 27 20 27 2c 27  " | tr $'\n' ','
02b0: 20 7c 20 73 65 64 20 27 73 40 2c 2a 24 40 40 3b   | sed 's@,*$@@;
02c0: 73 40 2c 40 2c 20 40 67 27 29 29 3b 22 0a 09 65  s@,@, @g'));"..e
02d0: 63 68 6f 20 27 27 0a 09 65 63 68 6f 20 24 27 5c  cho ''..echo $'\
02e0: 74 27 27 6c 69 62 63 61 63 6b 65 79 5f 77 72 61  t''libcackey_wra
02f0: 70 5f 69 6e 69 74 28 29 3b 27 0a 09 65 63 68 6f  p_init();'..echo
0300: 20 27 27 0a 09 65 63 68 6f 20 24 27 5c 74 27 22   ''..echo $'\t'"
0310: 66 75 6e 63 20 3d 20 64 6c 73 79 6d 28 6c 69 62  func = dlsym(lib
0320: 63 61 63 6b 65 79 5f 77 72 61 70 5f 68 61 6e 64  cackey_wrap_hand
0330: 6c 65 2c 20 5c 22 24 7b 66 75 6e 63 74 69 6f 6e  le, \"${function
0340: 7d 5c 22 29 3b 22 0a 09 65 63 68 6f 20 27 27 0a  }\");"..echo ''.
0350: 09 65 63 68 6f 20 24 27 5c 74 27 22 72 65 74 75  .echo $'\t'"retu
0360: 72 6e 28 66 75 6e 63 28 24 61 72 67 4e 61 6d 65  rn(func($argName
0370: 73 4c 69 73 74 29 29 3b 22 0a 09 65 63 68 6f 20  sList));"..echo 
0380: 27 7d 27 0a 64 6f 6e 65 0a                       '}'.done.