Ruby run shell command not working (for facebook app) - ruby

I am trying to run a system call which will post an activity to a user on facebook.
When I run this on the command line, everything works fine but on my RoR controller, I don't get any result. I have all the permissions required to post an activity for a user and I've already tried using system(), backticks(`), exec() and %x but still no luck.
Any idea on this? here's my code:
post = "curl -F 'access_token=#{session[:access_token]}' -F 'achievement=https://example.com/main/fbobject' 'https://graph.facebook.com/me/app_fb:send'"
system(post)

It's working fine now. For references, here's the solution.
On the server settings under directives,
I have:
SetEnv PATH /usr/local/bin
SetEnv LD_LIBRARY_PATH /usr/local/lib
and added:
SetEnv PATH /usr/local/bin:/usr/bin/
SetEnv LD_LIBRARY_PATH /usr/local/lib:/usr/bin/lib
I've included :/usr/bin/ and :/usr/bin/lib since curl command is located there.

Related

Cd command is not working in shell script

I am trying to do cd command and i can see there is not change in path after that,not knowing what is the reason
I checked workarounds available in internet telling to give whole path,use alias etc but nothing worked out ,when i try manually doing cd its working and i tried giving this command in other dummy script there its working
But in my shell script even if i create one director and try to change also its not happening,code is actually getting stuck there and not going to other lines
Please suggest me what else i can so with this

Shell build script with ember

I am attempting to write a build script to be used with Facebook watchman and my ember-cli application.
My build script is:
#!/bin/sh
cd ..
ember build
cd ..
cp ./ember-app/dist/index.html ./slim-app/app/templates/app.php
cp -r ./ember-app/dist/assets/ ./slim-app/public/assets/
And my watchman command is:
watchman -- trigger $PWD/ember-app/app 'ember-build' '**' -- sh $PWD/build.sh
Watchman triggers and finds my script fine but when I look at the log I get an error saying ember cannot be found. I'm not really sure why because when i run sh build.sh everything works fine.
Is there any way I could do something like which ember to determine the path to ember and use it directly? I know I can just do which ember and copy and paste that path into the script but I really don't want to do that because I want the build script to work no matter which version of node/nvm I am using.
I'm also open to suggestions to a better way of doing this.
Sounds like a PATH problem. When watchman is first started it captures your PATH environment variable, except on OS X at the moment, due to a bug in our launchd integration.
https://github.com/facebook/watchman/issues/68 has some suggestions for an awkward workaround.
Another possibility is to simply put a line in your build script to set the PATH:
# Add the path to ember in here somewhere
PATH=/usr/local/bin:$PATH

-bash: sencha command not found

I installed Sencha SDK and Sencha command on my mac-mini and done with some sample app.. but suddenly after some time when I tried to run sencha command on terminal, I got the response as '-bash: sencha command not found', I don't know why this was happened. Earlier I didn't find such type of response but now I got this error. Please tell me what are the possible scenarios for this thing to be happened.. Thanks for your help
Alens-Mac-mini:touch-2.2.0 SenchaTools$ sencha
-bash: sencha: command not found
You should procede that way:
Verify if this command is contained in PATH. PATH is an environment variable holded by bash and initialized when a new user is logged in (.bash_profile file for all user and the corrispective into home for single user). So check what echo $PATH told you and verify if this command is contained into those folder
Probably, from step 1, the answer will be "No, it isn't". So you have to procede this way: use whereis command to search this command (that will be an executable script) and once you find it, you have two possibilities: one is to use it directly by specifying full path (returned from whereis command).
If you want to run simply it with sencha -arguments you have to add executable path returned by whereis ($PATH=$PATH:/returned/path/by/whereis) into file .bash_profile
In that way you should be able to execute your command from any "point" in your filesystem
The Sencha installer expects you to use bash as shell. It fails, if you use any other (like the nice zsh). You need to copy the content of .bash_profile to your shell startup-file (.zprofile in my case), save it and open a new terminal window.
Add PATH and VAR manually in .bash_profile file at the root of your user folder,
export SENCHA_CMD_3_0_0="/Users/you/Path/To/Sencha/Cmd/3.0.0.XXX"
export PATH=/Users/you/Path/To/Sencha/Cmd/3.0.0.188:$PATH
Find out more about this issue at sencha forum https://www.sencha.com/forum/showthread.php?245243-Command-not-found-mac-OSX-mountain-lion

How to add something to bash path without messing up existing bash commands?

I'm doing some Android development and want to access the command line tools from anywhere.
There wasn't an existing .bash_profile file in my home directory so I created one and added the following line:
export PATH="/Users/Me/desktop/Android/Android SDK bundle/sdk/platform-tools"
I can now access the Android tools from terminal, however the ls command has stopped working, though cd still works. I get
-bash: ls: command not found
What should I do to get it to work again (and why has ls stopped working but cd still works?).
Try:
export PATH=$PATH:"/Users/Me/desktop/Android/Android SDK bundle/sdk/platform-tools"
It will append to the current PATH your sdk directory.
As for the later question, it stopped working because you overwritten your PATH variable, so bash can't find your binaries. However cdis a builtin command (http://linux.about.com/library/cmd/blcmdl1_builtin.htm) it doesn't need a path to be located and executed.

mac os environment variable set

Last week, when I am trying to install gcc_select on my macbook, I went through several commands,I did remember I just cd to a certain directory and made some modifications using the root. Everything seems fine, however, I found that when I open the terminal and trying to compile a program by using gcc or g++, it keeps saying that the "command not found".I have to manually to type the :" export PATH=$PATH:/Developer/usr/bin" in order to make the gcc or g++ command run.
My question is , is there anyone please tell me how to permanently change that, so that I don't need to type the same command again and again.
Append
export PATH=$PATH:/Developer/usr/bin
in the .profile file in your home directory. If it does not exit, create it. Better way would be the one user57368 gave in the comment though.

Resources