Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have a batch file which I use to create an .apk file on my Windows machine. Now I need to be able to create the .apk file in Ubuntu but I don't know how translate my .bat file to a script to be able to run it on Ubuntu.

Below is the batch file which works fine on Windows. Will you please give me some hints on how I can run it on Ubuntu?

@echo off
set PAUSE_ERRORS=0
:user_configuration

:: Path to Flex SDK 
set FLEX_SDK=C:\sdk\flex_sdk_4.5.1.21328

:: Path to Android SDK
set ANDROID_SDK=C:\sdk\android

:validation
if not exist "%FLEX_SDK%\bin" goto flexsdk
if not exist "%ANDROID_SDK%\platform-tools" goto androidsdk
goto succeed

:validation
if not exist "%FLEX_SDK%\bin" goto flexsdk
if not exist "%ANDROID_SDK%\platform-tools" goto androidsdk
goto succeed

:flexsdk
echo.
echo ERROR: incorrect path to Flex SDK
echo.
if %PAUSE_ERRORS%==1 pause
exit

:androidsdk
echo.
echo ERROR: incorrect path to Android SDK in 'bat\SetupSDK.bat'
echo.

if %PAUSE_ERRORS%==1 pause
exit

:succeed
set PATH=%PATH%;%FLEX_SDK%\bin
set PATH=%PATH%;%ANDROID_SDK%\platform-tools

:: Android packaging
set AND_CERT_NAME="PeymanApp"
set AND_CERT_PASS=fd
set AND_CERT_FILE=cert\SampleApp.p12
set AND_ICONS=icons/android

set AND_SIGNING_OPTIONS=-storetype pkcs12 -keystore "%AND_CERT_FILE%" -storepass     %AND_CERT_PASS%

:: Application descriptor
set APP_XML=application.xml

:: Files to package
set APP_DIR=bin
set FILE_OR_DIR=-C %APP_DIR% .

:: Your application ID (must match <id> of Application descriptor)
set APP_ID=air.com.doitflash.SampleApp

:: Output packages
set DIST_PATH=dist
set DIST_NAME=PeymanApp

:validation
%SystemRoot%\System32\find /C "<id>%APP_ID%</id>" "%APP_XML%" > NUL
if errorlevel 1 goto badid
goto end_validation

:badid
echo.
echo ERROR: Application ID (APP_ID) does NOT match Application descriptor '%APP_XML%'     (id)

echo.

:end_validation

set TARGET=
set PLATFORM=android

::call bat\Packager.bat
if "%PLATFORM%"=="android" goto android-config

:android-config
set CERT_FILE=%AND_CERT_FILE%
set SIGNING_OPTIONS=%AND_SIGNING_OPTIONS%
set ICONS=%AND_ICONS%
set DIST_EXT=apk
set TYPE=apk
goto start

:start
if not exist "%CERT_FILE%" goto certificate
:: Output file
set FILE_OR_DIR=%FILE_OR_DIR% -C "%ICONS%" .
if not exist "%DIST_PATH%" md "%DIST_PATH%"
set OUTPUT=%DIST_PATH%\%DIST_NAME%%TARGET%.%DIST_EXT%
:: Package

echo true
echo.
call adt -package -target %TYPE%%TARGET% %OPTIONS% %SIGNING_OPTIONS% "%OUTPUT%"     "%APP_XML%" %FILE_OR_DIR% -extdir lib/
echo.
if errorlevel 1 goto failed
goto end

:certificate
echo Certificate not found: %CERT_FILE%
echo.

if %PAUSE_ERRORS%==1 pause
exit

:failed
echo APK setup creation FAILED.

if %PAUSE_ERRORS%==1 pause
exit

:end
share|improve this question

4 Answers 4

You need to learn to write bash scripts. These are the Linux equivalent of windows batch files. The syntax isn't too difficult to get your head around. I suggest googling as there are many great freely accessible tutorials.

I suggest BASH Programming - Introduction HOW-TO

Note that you will need to change your windows-style paths to Linux style. E.g.

my_drive_letter:\my_folder\myfile

becomes

/media/my_drive_label/my_folder/my_file
share|improve this answer

I can't help with recoding but there is a document that explains how shell-scripting works and what commands you need to use. I guess it should be sifficient to rewrite your script:

http://linuxcommand.org/writing_shell_scripts.php

share|improve this answer

Make sure you have installed wine Install wine, then do the following command in a terminal:

wine cmd

This will open up a Windows command prompt. Start your .bat from there.

share|improve this answer

Learn python

You might want to learn python.

It's easy to learn and more readable than some other scripting language... ;-)

share|improve this answer
1  
Python is a venerable programming message, powerful, but simple and easy to understand at the same time. –  RPi_Awesomeness Oct 10 '13 at 11:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.