Commit ed365a61 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

better asset.sh

parent 44fa2e6f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -86,7 +86,10 @@ set(FNORDMETRIC_SOURCES
    ../src/fnordmetric/sql/svalue.cc)

set_source_files_properties(fnordmetric-assets PROPERTIES GENERATED true)
add_custom_target(fnordmetric-assets COMMAND ASSETS_FILE=${CMAKE_BINARY_DIR}/fnordmetric-assets.cc ./cmake/assets.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..)

add_custom_target(fnordmetric-assets
    COMMAND ./src/libfnord/fnord-base/assets.sh ${CMAKE_BINARY_DIR}/fnordmetric-assets.cc < ./cmake/assets.txt
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..)

#add_executable(fnordmetric-cli ${FNORDMETRIC_SOURCES} ../src/fnordmetric/cli.cc)
#target_link_libraries(fnordmetric-cli m)

cmake/assets.sh

deleted100755 → 0
+0 −49
Original line number Diff line number Diff line
#/bin/bash
set -e
source $(dirname $0)/../src/libfnord/fnord-base/assets.sh

fn_assets_init
fn_assets_add "fnord/fnord.js" "src/libfnord/fnord-webcomponents/fnord.js"
fn_assets_add "fnord/3rdparty/codemirror.js" "src/libfnord/fnord-webcomponents/3rdparty/codemirror.js"
fn_assets_add "fnord/3rdparty/fontawesome.woff" "src/libfnord/fnord-webcomponents/3rdparty/fontawesome.woff"
fn_assets_add "fnord/3rdparty/fontawesome.css" "src/libfnord/fnord-webcomponents/3rdparty/fontawesome.css"
fn_assets_add "fnord/3rdparty/reset.css" "src/libfnord/fnord-webcomponents/3rdparty/reset.css"
fn_assets_add "fnord/components/fn-table.css" "src/libfnord/fnord-webcomponents/components/fn-table.css"
fn_assets_add "fnord/components/fn-button.css" "src/libfnord/fnord-webcomponents/components/fn-button.css"
fn_assets_add "fnord/components/fn-modal.css" "src/libfnord/fnord-webcomponents/components/fn-modal.css"
fn_assets_add "fnord/components/fn-tabbar.css" "src/libfnord/fnord-webcomponents/components/fn-tabbar.css"
fn_assets_add "fnord/components/fn-message.css" "src/libfnord/fnord-webcomponents/components/fn-message.css"
fn_assets_add "fnord/components/fn-tooltip.css" "src/libfnord/fnord-webcomponents/components/fn-tooltip.css"
fn_assets_add "fnord/themes/midnight-blue.css" "src/libfnord/fnord-webcomponents/themes/midnight-blue.css"
fn_assets_add "fnord/components/fn-appbar.html" "src/libfnord/fnord-webcomponents/components/fn-appbar.html"
fn_assets_add "fnord/components/fn-button.html" "src/libfnord/fnord-webcomponents/components/fn-button.html"
fn_assets_add "fnord/components/fn-button-group.html" "src/libfnord/fnord-webcomponents/components/fn-button-group.html"
fn_assets_add "fnord/components/fn-icon.html" "src/libfnord/fnord-webcomponents/components/fn-icon.html"
fn_assets_add "fnord/components/fn-input.html" "src/libfnord/fnord-webcomponents/components/fn-input.html"
fn_assets_add "fnord/components/fn-loader.html" "src/libfnord/fnord-webcomponents/components/fn-loader.html"
fn_assets_add "fnord/components/fn-menu.html" "src/libfnord/fnord-webcomponents/components/fn-menu.html"
fn_assets_add "fnord/components/fn-search.html" "src/libfnord/fnord-webcomponents/components/fn-search.html"
fn_assets_add "fnord/components/fn-table.html" "src/libfnord/fnord-webcomponents/components/fn-table.html"
fn_assets_add "fnord/components/fn-splitpane.html" "src/libfnord/fnord-webcomponents/components/fn-splitpane.html"
fn_assets_add "fnord/components/fn-codeeditor.html" "src/libfnord/fnord-webcomponents/components/fn-codeeditor.html"
fn_assets_add "fnord/components/fn-dropdown.html" "src/libfnord/fnord-webcomponents/components/fn-dropdown.html"
fn_assets_add "fnord/components/fn-datepicker.html" "src/libfnord/fnord-webcomponents/components/fn-datepicker.html"
fn_assets_add "fnord/components/fn-timeinput.html" "src/libfnord/fnord-webcomponents/components/fn-timeinput.html"
fn_assets_add "fnord/components/fn-daterangepicker.html" "src/libfnord/fnord-webcomponents/components/fn-daterangepicker.html"
fn_assets_add "fnord/components/fn-tabbar.html" "src/libfnord/fnord-webcomponents/components/fn-tabbar.html"
fn_assets_add "fnord/components/fn-modal.html" "src/libfnord/fnord-webcomponents/components/fn-modal.html"
fn_assets_add "fnord/components/fn-pager.html" "src/libfnord/fnord-webcomponents/components/fn-pager.html"
fn_assets_add "fnord/components/fn-tooltip.html" "src/libfnord/fnord-webcomponents/components/fn-tooltip.html"
fn_assets_add "fnord/components/fn-flexbox.html" "src/libfnord/fnord-webcomponents/components/fn-flexbox.html"
fn_assets_add "fnordmetric/fnordmetric-app.html" "src/fnordmetric/webui/fnordmetric-app.html"
fn_assets_add "fnordmetric/fnordmetric-console.html" "src/fnordmetric/webui/fnordmetric-console.html"
fn_assets_add "fnordmetric/fnordmetric-metric-list.html" "src/fnordmetric/webui/fnordmetric-metric-list.html"
fn_assets_add "fnordmetric/fnordmetric-search.html" "src/fnordmetric/webui/fnordmetric-search.html"
fn_assets_add "fnordmetric/fnordmetric-query-editor.html" "src/fnordmetric/webui/fnordmetric-query-editor.html"
fn_assets_add "fnordmetric/fnordmetric-metric-preview.html" "src/fnordmetric/webui/fnordmetric-metric-preview.html"
fn_assets_add "fnordmetric/fnordmetric-controls.html" "src/fnordmetric/webui/fnordmetric-controls.html"
fn_assets_add "fnordmetric/fnordmetric-time-controls.html" "src/fnordmetric/webui/fnordmetric-time-controls.html"
fn_assets_add "fnordmetric/fnordmetric-webui.html" "src/fnordmetric/webui/fnordmetric-webui.html"
fn_assets_add "fnordmetric/fnordmetric-webui.css" "src/fnordmetric/webui/fnordmetric-webui.css"
fn_assets_add "fnordmetric/fnordmetric-webui-util.js" "src/fnordmetric/webui/fnordmetric-webui-util.js"
fn_assets_add "fnordmetric/fnordmetric-embed-query-popup.html" "src/fnordmetric/webui/fnordmetric-embed-query-popup.html"

cmake/assets.txt

0 → 100644
+44 −0
Original line number Diff line number Diff line
fnord/fnord.js:src/libfnord/fnord-webcomponents/fnord.js
fnord/3rdparty/codemirror.js:src/libfnord/fnord-webcomponents/3rdparty/codemirror.js
fnord/3rdparty/fontawesome.woff:src/libfnord/fnord-webcomponents/3rdparty/fontawesome.woff
fnord/3rdparty/fontawesome.css:src/libfnord/fnord-webcomponents/3rdparty/fontawesome.css
fnord/3rdparty/reset.css:src/libfnord/fnord-webcomponents/3rdparty/reset.css
fnord/components/fn-table.css:src/libfnord/fnord-webcomponents/components/fn-table.css
fnord/components/fn-button.css:src/libfnord/fnord-webcomponents/components/fn-button.css
fnord/components/fn-modal.css:src/libfnord/fnord-webcomponents/components/fn-modal.css
fnord/components/fn-tabbar.css:src/libfnord/fnord-webcomponents/components/fn-tabbar.css
fnord/components/fn-message.css:src/libfnord/fnord-webcomponents/components/fn-message.css
fnord/components/fn-tooltip.css:src/libfnord/fnord-webcomponents/components/fn-tooltip.css
fnord/themes/midnight-blue.css:src/libfnord/fnord-webcomponents/themes/midnight-blue.css
fnord/components/fn-appbar.html:src/libfnord/fnord-webcomponents/components/fn-appbar.html
fnord/components/fn-button.html:src/libfnord/fnord-webcomponents/components/fn-button.html
fnord/components/fn-button-group.html:src/libfnord/fnord-webcomponents/components/fn-button-group.html
fnord/components/fn-icon.html:src/libfnord/fnord-webcomponents/components/fn-icon.html
fnord/components/fn-input.html:src/libfnord/fnord-webcomponents/components/fn-input.html
fnord/components/fn-loader.html:src/libfnord/fnord-webcomponents/components/fn-loader.html
fnord/components/fn-menu.html:src/libfnord/fnord-webcomponents/components/fn-menu.html
fnord/components/fn-search.html:src/libfnord/fnord-webcomponents/components/fn-search.html
fnord/components/fn-table.html:src/libfnord/fnord-webcomponents/components/fn-table.html
fnord/components/fn-splitpane.html:src/libfnord/fnord-webcomponents/components/fn-splitpane.html
fnord/components/fn-codeeditor.html:src/libfnord/fnord-webcomponents/components/fn-codeeditor.html
fnord/components/fn-dropdown.html:src/libfnord/fnord-webcomponents/components/fn-dropdown.html
fnord/components/fn-datepicker.html:src/libfnord/fnord-webcomponents/components/fn-datepicker.html
fnord/components/fn-timeinput.html:src/libfnord/fnord-webcomponents/components/fn-timeinput.html
fnord/components/fn-daterangepicker.html:src/libfnord/fnord-webcomponents/components/fn-daterangepicker.html
fnord/components/fn-tabbar.html:src/libfnord/fnord-webcomponents/components/fn-tabbar.html
fnord/components/fn-modal.html:src/libfnord/fnord-webcomponents/components/fn-modal.html
fnord/components/fn-pager.html:src/libfnord/fnord-webcomponents/components/fn-pager.html
fnord/components/fn-tooltip.html:src/libfnord/fnord-webcomponents/components/fn-tooltip.html
fnord/components/fn-flexbox.html:src/libfnord/fnord-webcomponents/components/fn-flexbox.html
fnordmetric/fnordmetric-app.html:src/fnordmetric/webui/fnordmetric-app.html
fnordmetric/fnordmetric-console.html:src/fnordmetric/webui/fnordmetric-console.html
fnordmetric/fnordmetric-metric-list.html:src/fnordmetric/webui/fnordmetric-metric-list.html
fnordmetric/fnordmetric-search.html:src/fnordmetric/webui/fnordmetric-search.html
fnordmetric/fnordmetric-query-editor.html:src/fnordmetric/webui/fnordmetric-query-editor.html
fnordmetric/fnordmetric-metric-preview.html:src/fnordmetric/webui/fnordmetric-metric-preview.html
fnordmetric/fnordmetric-controls.html:src/fnordmetric/webui/fnordmetric-controls.html
fnordmetric/fnordmetric-time-controls.html:src/fnordmetric/webui/fnordmetric-time-controls.html
fnordmetric/fnordmetric-webui.html:src/fnordmetric/webui/fnordmetric-webui.html
fnordmetric/fnordmetric-webui.css:src/fnordmetric/webui/fnordmetric-webui.css
fnordmetric/fnordmetric-webui-util.js:src/fnordmetric/webui/fnordmetric-webui-util.js
fnordmetric/fnordmetric-embed-query-popup.html:src/fnordmetric/webui/fnordmetric-embed-query-popup.html
+16 −19
Original line number Diff line number Diff line
#/bin/bash
# usage:
#   echo "myasset.ext:/path/to/real/myasset.ext" | assets.sh output_asset_pack.cc
set -e

fn_assets_init() {
ASSETS_FILE=$1

if [[ -z $ASSETS_FILE ]]; then
    echo "ASSETS_FILE env var must be set"
  echo "usage: $0 [output_asset_pack.cc]"
  exit 1
fi;

echo "#include <fnord-base/assets.h>" > $ASSETS_FILE
}

# $1 => asset logical/fake path
# $2 => asset real path
fn_assets_add() {
  if [[ -z $ASSETS_FILE ]]; then
    echo "ASSETS_FILE env var must be set"
    exit 1
  fi;

  uniq=$(echo $1 | sed -e 's/[^a-zA-Z0-9]/_/g')
while read line; do
  logical_path=$(echo $line | sed -e 's/:.*//')
  real_path=$(echo $line | sed -e 's/.*://')
  uniq=$(echo $logical_path | sed -e 's/[^a-zA-Z0-9]/_/g')

  echo "Packing asset: $1"
  echo "Packing asset: $logical_path"

  (
    echo "static const unsigned char __${uniq}_data[] = {"
    (cat $2 | xxd -i)
    (cat $real_path | xxd -i)
    echo "};"
    echo "static fnord::Assets::AssetFile __${uniq}(\"$1\", __${uniq}_data, sizeof(__${uniq}_data));"
    echo "static fnord::Assets::AssetFile __${uniq}(\"$logical_path\", __${uniq}_data, sizeof(__${uniq}_data));"
  ) >> $ASSETS_FILE
}
done
−252 KiB

File deleted.