+ if [ ! -d $OUTDIR/bin/public/ref ]; then
+ echo "No assemblies to read. Build TizenFX first."
+ exit 1
+ fi
+ mkdir -p $OUTDIR/bin/dummy
+ dotnet $SCRIPT_DIR/tools/bin/APITool.dll \
+ dummy $OUTDIR/bin/public/ref $OUTDIR/bin/dummy
+}
+
+cmd_pack() {
+ VERSION=$1
+ if [ -z "$VERSION" ]; then
+ pushd $SCRIPT_DIR > /dev/null
+ VERSION=$VERSION_PREFIX.$((10000+$(git rev-list --count HEAD)))
+ popd > /dev/null
+ fi
+
+ restore $SCRIPT_DIR/build/pack.csproj
+ nuspecs=$(find $SCRIPT_DIR/pkg/ -name "*.nuspec")
+ for nuspec in $nuspecs; do
+ dotnet pack --no-restore --no-build --nologo -o $OUTDIR \
+ $SCRIPT_DIR/build/pack.csproj \
+ /p:Version=$VERSION \
+ /p:NuspecFile=$(readlink -f $nuspec)
+ done
+}
+
+cmd_install() {
+ DEVICE_ID=$1
+
+ RUNTIME_ASSEMBLIES="$OUTDIR/bin/public/*.dll $OUTDIR/bin/internal/*.dll"
+
+ device_cnt=$(sdb devices | grep -v "List" | wc -l)
+
+ if [ $device_cnt -eq 0 ]; then
+ echo "No connected devices"
+ exit 1
+ fi
+
+ if [ $device_cnt -gt 1 ] && [ -z "$DEVICE_ID" ]; then
+ echo "Multiple devices are connected. Specify the device. (ex: ./build.sh install [device-id])"
+ sdb devices
+ exit 1
+ fi
+
+ SDB_OPTIONS=""
+ if [ -n "$DEVICE_ID" ]; then
+ SDB_OPTIONS="-s $DEVICE_ID"
+ fi
+
+ sdb $SDB_OPTIONS root on
+ sdb $SDB_OPTIONS shell mount -o remount,rw /
+ sdb $SDB_OPTIONS push $RUNTIME_ASSEMBLIES $TARGET_ASSEMBLY_DIR
+
+ nifile_cnt=$(sdb $SDB_OPTIONS shell find $TARGET_ASSEMBLY_DIR -name '*.ni.dll' | wc -l)
+ if [ $nifile_cnt -gt 0 ]; then
+ sdb $SDB_OPTIONS shell "rm -f $TARGET_ASSEMBLY_DIR/*.ni.dll"
+ sdb $SDB_OPTIONS shell nitool --system
+ sdb $SDB_OPTIONS shell nitool --regen-all-app
+ fi
+
+ sdb $SDB_OPTIONS shell chsmack -a '_' $TARGET_ASSEMBLY_DIR/*