Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Program nelze spustit mimo adresář z gitu #16

Open
ghost opened this issue May 26, 2021 · 2 comments
Open

Program nelze spustit mimo adresář z gitu #16

ghost opened this issue May 26, 2021 · 2 comments

Comments

@ghost
Copy link

ghost commented May 26, 2021

Mám na PC složku, ve které mám soubor CURRENT.cyp s OSTRAJava programem. Složku staženou z githubu jsem si dal do /usr/lib/OSTRAJava, aby byla přístupná odkudkoliv. Na kompilaci jsem si vytvořil jednoduchý skript:

#!/bin/sh

clear
echo "\n\n\nKompiluji..."

cesta=$(pwd)
cd /usr/bin/OSTRAJava/
./ostrajavac -d "$cesta/" "$cesta/CURRENT.cyp" "$cesta/znaky.txt"

echo "Spouštím..."

./ostrajava "$cesta/"

Ve složce $cesta mám soubor, ze kterého chcu, aby OJ četla. Problém je, že program ostrajava sice spouští program ve složce $cesta, ale spouští ho z adresáře /usr/bin/OSTRAJava/. A program $cesta tudíž na soubor v adresáři $cesta nevidí.
Mohl bych příkaz ./ostrajava "$cesta/" nahradit příkazy cd "$cesta" a /usr/lib/OSTRAJava/ostrajava ., jenže program ostrajava má očividně nějaké podivné závislosti.

Jak to mám vyřešit? Nesouvisí s tímto problémem trochu toto?
Děkuji

@ghost
Copy link
Author

ghost commented May 28, 2021

Tl;dr
Relativní cesty v programu se nepočítají od místa, kde daný program je, ale od místa, kde je stažený OJ interpreter.

@Binto86
Copy link

Binto86 commented Jun 26, 2022

Měl jsem stejný problém, napsal jsem script co to řeší

#!/bin/bash

#načti cesty
in_dir=$(pwd)
out_dir=$(pwd)/out

#pokud out dir existuje tak ho vyčisti
if [[ -d $out_dir ]]
then
    rm -R $out_dir
fi

#vytvoř znova out dir
mkdir $out_dir

#přesuň se do adresáře OstraJavy
cd $(dirname "$(readlink -f "$0")")

#zkompiluj
ostrajavac $in_dir -d $out_dir
#spust
ostrajava -h 1024 -f 256 -s 128 $out_dir "$@"

#přesuň zpět
cd $in_dir

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant